UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

1 lines 1.57 kB
{"version":3,"sources":["../../../src/primitives/actionBar/ActionBarSpeak.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useMessage, useMessageRuntime } from \"../../context\";\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\n\nconst useActionBarSpeak = () => {\n const messageRuntime = useMessageRuntime();\n const callback = useCallback(async () => {\n messageRuntime.speak();\n }, [messageRuntime]);\n\n const hasSpeakableContent = useMessage((m) => {\n return (\n (m.role !== \"assistant\" || m.status.type !== \"running\") &&\n m.content.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n\n if (!hasSpeakableContent) return null;\n return callback;\n};\n\nexport namespace ActionBarPrimitiveSpeak {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useActionBarSpeak>;\n}\n\nexport const ActionBarPrimitiveSpeak = createActionButton(\n \"ActionBarPrimitive.Speak\",\n useActionBarSpeak,\n);\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,SAAS,YAAY,yBAAyB;AAC9C;AAAA,EAGE;AAAA,OACK;AAEP,IAAM,oBAAoB,MAAM;AAC9B,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,WAAW,YAAY,YAAY;AACvC,mBAAe,MAAM;AAAA,EACvB,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,sBAAsB,WAAW,CAAC,MAAM;AAC5C,YACG,EAAE,SAAS,eAAe,EAAE,OAAO,SAAS,cAC7C,EAAE,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC;AAAA,EAEhE,CAAC;AAED,MAAI,CAAC,oBAAqB,QAAO;AACjC,SAAO;AACT;AAOO,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AACF;","names":[]}