Fejlesztőknek
Kezdj bele
Témák/Chat widget chrome

Chat widget chrome

Vedd saját kézbe az Inbox indítóját és paneljét az src/layout/chat.tsx fájlból a @poltura/theme-sdk/inbox platformelemeivel.

Ezen az oldalon

A webáruház Inbox chat widgetje egy téma chrome, akárcsak a promóciós sáv. A platform kezeli a munkamenetet, az élő kapcsolatot, az üzenetkézbesítést és a csatolmányokat a @poltura/theme-sdk/inbox mögött. A téma dönti el, hogyan rendeződnek el az elemek.

Hol található

Helyezd a widgetet a src/layout/chat.tsx fájlba a fájl alapértelmezett exportjaként. A webáruház erről az útvonalról csatolja be. E fájl nélkül a platform teljes widgetje jelenik meg helyette – ugyanaz, amit az <InboxWidget /> is kirajzol. Az alapértelmezett téma ezt a fájlt tartalmazza:

src/layout/chat.tsx
import {
  InboxChatGlyph,
  InboxComposer,
  InboxConversation,
  InboxLauncher,
  InboxOfflineForm,
  InboxPanel,
  InboxPanelHeader,
  InboxRoot,
  InboxStatusLine,
} from '@poltura/theme-sdk/inbox';

export default function ThemeChatWidget() {
  return (
    <InboxRoot className='pol-chat'>
      <InboxPanel className='pol-chat__panel'>
        <InboxPanelHeader className='pol-chat__header' />
        <InboxConversation className='pol-chat__conversation' />
        <InboxStatusLine className='pol-chat__status' />
        <InboxOfflineForm className='pol-chat__offline' />
        <InboxComposer className='pol-chat__composer' />
      </InboxPanel>
      <InboxLauncher className='pol-chat__launcher'>
        <InboxChatGlyph />
      </InboxLauncher>
    </InboxRoot>
  );
}

Minden elemnek az <InboxRoot> komponensen belül kell megjelennie, amely semmit sem renderel, ha a boltban nincs bekapcsolva a chat. A useInbox() ebből a contextből olvassa ki a nézetet és a műveleteket.

A panel bodyjaként az InboxConversation komponenst rendereld. Ez jeleníti meg az üzenetlistát, és ez mutatja a megnyitott súgócikket is a helyén, amint a vásárló kiválaszt egyet. Ha egy elrendezés közvetlenül az InboxMessageList komponenst rendereli, magának kell átváltania az InboxKnowledgeArticle komponensre, amíg a view.knowledge.article be van állítva – különben a cikk kiválasztásának nem lesz látható eredménye.

Elemek

KomponensPropokSzerep
InboxRootchildren, className?Rögzített wrapper, CSS-változók, állapot és context
InboxWidgetnincsA teljes widget az alábbi elemekből felépítve
InboxLauncherclassName?, children?Gomb; a children felülírja az alapértelmezett ikont
InboxPanelclassName?, childrenDialógus (id="poltura-inbox-panel")
InboxPanelHeaderclassName?, title?, children?Kiemelt header: cím, válaszidő / offline állapot, bezárás ikon
InboxConversationclassName?, renderMessage?Panel bodyja: InboxMessageList vagy a megnyitott cikk a helyén
InboxMessageListclassName?, renderMessage?Görgethető napló, üres állapot üdvözléssel és súgóval, typing indicator, ugrás a legfrissebbhez
InboxMessageBubblemessage, className?Alapértelmezett üzenetbuborék
InboxComposerclassName?, placeholder?Kapszula csatolmánnyal, szöveges mezővel és küldés ikonnal
InboxOfflineFormclassName?E-mail- és üzenetmezők, amikor view.online === false
InboxStatusLineclassName?Újracsatlakozási / előnézeti sáv a beviteli mező felett
InboxChatGlyphsize?, className?Alapértelmezett indítóikon
InboxKnowledgeSearchclassName?, placeholder?Debounce-olt súgócikk-kereső (a bolt tudásbázisa)
InboxKnowledgeArticleclassName?Megnyitott cikk bodyja vissza gombbal
InboxKnowledgeSuggestionsclassName?, limit?Kiemelt cikkek az üdvözlés felett, ha a beszélgetés üres

A useInbox() a { view, actions } objektumot adja vissza:

  • A view.copy tartalmazza a widget szövegezését feloldott formában: először a téma chat szövegeit, majd a platform inbox.* üzeneteit.
  • Az actions.send, attach, removeAttachment és retry az egyedüli chatműveletek, amelyeket a téma meghív. Az actions.open, close és toggle a panelt vezérli.
  • A view.appearance tartalmazza a kereskedő által beállított elhelyezkedést, színmódot és színeket.
  • A bolt súgócikkei a view.knowledge alatt találhatók (enabled, query, results, loading, article), az actions.searchKnowledge, openArticle és closeArticle kíséretében. Az enabled értéke true, ha a bolt rendelkezik legalább egy közzétett cikkel. A cikk a /guides/{category}/{slug} címre mutat, ha az az oldal létezik. Ellenkező esetben a panel beágyazva jeleníti meg a megtisztított bodyját.

A platform widgetje (InboxWidget) az üres beszélgetést egy üdvözlőkártyaként és egy Súgó szekcióként jeleníti meg: egy keresőmező, majd legfeljebb három javasolt cikk. Az InboxMessageList rajzolja ki ezt az üres állapotot, ha a súgócikkek be vannak kapcsolva. Az InboxConversation nyitott cikk esetén a listát az InboxKnowledgeArticle komponensre cseréli. A „Továbbra is segítségre van szükséged? Küldj üzenetet” bezárja a cikket, és a beviteli mezőre állítja a fókuszt. A témaszerkesztőben a súgókereső mintaeredményeket ad vissza. Az indítógomb asztali nézetben nyitott panel mellett is látható marad, de a 640 képpontnál keskenyebb képernyőkön elrejtőzik.

Stabil classok

Formázd újra a src/styles/theme.css fájlból a :where() segítségével, a többi chrome hookhoz hasonlóan. Lásd: Chrome stabil osztályok.

ClassNode
inbox-rootrögzített wrapper (data-poltura-inbox, data-open, data-online, data-connection)
inbox-launcherindítógomb (aria-expanded, data-unread)
inbox-launcher__badgeolvasatlan számláló kapszula az indítón
inbox-paneldialógus
inbox-panel__headerheadersor
inbox-panel__titleheader címe
inbox-panel__statusegysoros válaszidő / offline állapot
inbox-panel__status-dotonline (zöld) / offline (szürke) pont
inbox-panel__closeheader bezárás ikongombja
inbox-messagesrole="log"
inbox-greetingüres beszélgetés üdvözlőkártyája
inbox-helpüres beszélgetés Súgó szekciója (keresés és javaslatok)
inbox-help__labelaz önálló „Súgó” szekciócímke
inbox-message-rowwrapper a szerzővel, buborékkal és metaadatokkal; --system a középre zárt rendszerüzenethez
inbox-messagekizárólag a tényleges buborék; valamint --customer, --staff, --ai
inbox-message__authormunkatárs / AI nevének sora
inbox-message__disclosureAI-tájékoztató sor
inbox-message__metarelatív idő és kézbesítési pipák
inbox-message__timerelatív timestamp
inbox-message__tickskézbesítési szöveg az utolsó vásárlói üzeneten
inbox-dayopcionális napelválasztó a naplóban
inbox-typinghárompontos typing indicator
inbox-jumpugrás a legfrissebbhez vezérlő
inbox-composerbeviteli űrlap
inbox-composer__inputautomatikusan növekvő textarea
inbox-composer__attachgémkapocs gomb
inbox-composer__sendpapírrepülő küldés gomb
inbox-composer__chipfüggőben lévő csatolmány chipje
inbox-statusújracsatlakozási / előnézeti sáv
inbox-offlineoffline rögzítő űrlap
inbox-offline--successaz offline űrlap sikeres beküldési szövege
inbox-knowledge-searchsúgókereső mező és eredmények
inbox-knowledge-suggestionsüres beszélgetés cikksorai
inbox-knowledge-articlemegnyitott cikk panelje
inbox-knowledge-article__bodymegtisztított cikk-HTML
inbox-knowledge-article__backa cikk visszalépés gombja
inbox-knowledge-article__cta„Továbbra is segítségre van szükséged” vezérlő

A színek CSS-változók a root elemen: --inbox-accent, --inbox-accent-text, --inbox-bg és --inbox-text.

Beállítások

A téma chat beállításcsoportja (és a sötét mód színeihez tartozó chat_dark) formázza a widgetet a témaszerkesztőben. Nem ez kapcsolja be a chatet a boltban: az a bolt saját Inbox-beállítása.

BeállításMit csinál
chat.enabledelrejti az indítógombot, ha false (a chat kiválasztása a témaszerkesztőben így is megnyitja)
chat.positionright vagy left
chat.appearance_modeauto, light, dark
chat.accent / accent_text / background / textpanel színei
chat.launcher_label / title / greeting / offline_messageszövegek override-ja

Ha kiválasztod a chatet a témaszerkesztőben, a panel mintaadatokkal nyílik meg. Ezt az InboxRoot intézi, így a témakódban semmit sem kell tenned érte.

További lépések

Utoljára frissítve