Pular para o conteúdo principal

Páginas e layouts

Fique com o widget padrão até precisar de páginas próprias, incorporação inline ou o seu próprio contêiner.

O Support estica bastante antes de você precisar do caminho totalmente sob medida. A maioria das mudanças de layout ainda cabe no ambiente embutido.

Use isto quando

  • você quer outra tela inicial ou uma página a mais
  • quer o suporte dentro da página em vez de flutuando
  • precisa do seu próprio contêiner mas ainda quer o router e o estado do Support

A menor mudança que funciona

Use customPages quando quiser substituir uma página embutida e manter o contêiner padrão.

import { Support, useSupportNavigation } from "@fluxolat/react";
import { PENDING_CONVERSATION_ID } from "@fluxolat/react/utils/id";
 
function CustomHomePage() {
  const { navigate } = useSupportNavigation();
 
  return (
    <div className="flex h-full flex-col gap-4 p-6">
      <h2 className="text-2xl font-semibold">Launch support</h2>
      <p className="text-sm text-zinc-500">
        Keep the default conversation page. Only change the first screen.
      </p>
 
      <button
        className="border px-4 py-3 text-left"
        onClick={() =>
          navigate({
            page: "CONVERSATION",
            params: {
              conversationId: PENDING_CONVERSATION_ID,
              initialMessage: "Help me launch with the React SDK",
            },
          })
        }
        type="button"
      >
        Start a conversation
      </button>
    </div>
  );
}
 
<Support
  customPages={[
    {
      name: "HOME",
      component: CustomHomePage,
    },
  ]}
/>;

O PENDING_CONVERSATION_ID é o único valor sentinela que o SDK trata como uma conversa ainda não criada. Não invente um ID de preenchimento: qualquer outra string é tratada como uma conversa real e pode disparar um pedido de um registro que não existe.

Os exemplos de layout desta página usam utilitários do Tailwind por brevidade. As APIs não exigem Tailwind: troque essas classes pelo seu próprio CSS quando importar @fluxolat/react/styles.css.

Variantes comuns

Incorporar o suporte na página

Use mode="responsive" quando o suporte deve ficar dentro da página em vez de flutuar sobre ela.

import { Support } from "@fluxolat/react";
 
export default function SupportPanel() {
  return (
    <div className="h-[560px] overflow-hidden border">
      <Support mode="responsive" />
    </div>
  );
}

Morning Marc, how can we help?

We run onFluxo Logo

Controle o contêiner com Support.Root

Use a composição completa quando quiser o seu próprio gatilho, o seu invólucro de conteúdo e o seu registro de páginas.

import { Support } from "@fluxolat/react";
 
function LaunchChecklistPage() {
  return <div className="p-6">Your custom page</div>;
}
 
export default function App() {
  return (
    <Support.Root>
      <Support.Trigger asChild>
        <button type="button">Compose support</button>
      </Support.Trigger>
 
      <Support.Content className="border shadow-2xl">
        <Support.Router>
          <Support.Page component={LaunchChecklistPage} name="HOME" />
        </Support.Router>
      </Support.Content>
    </Support.Root>
  );
}

Launch checklist

Pick the quickest path to ship a support widget that matches your product.

Install the package
Wrap your app with SupportProvider
Choose slots or full composition

O Support.Page também funciona com o Support quando você quer manter o widget padrão e registrar uma página extra.

Quando parar por aqui

  • customPages, mode="responsive" ou Support.Root já dão controle suficiente
  • você ainda quer o router, o estado e o fluxo de conversa embutidos
  • não precisa de uma versão headless

Próximo passo

  • Textos e idioma se a próxima mudança for nas palavras
  • Avançado quando quiser deixar o caminho do widget pronto e construir a sua própria interface

Esta página foi útil?

Abra uma issue de documentação já preenchida para que a equipe possa agir.