{"version":3,"sources":["../../../src/primitive-hooks/actionBar/useActionBarCopy.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport {\n  useMessage,\n  useMessageRuntime,\n  useMessageUtils,\n} from \"../../context/react/MessageContext\";\nimport { useComposerRuntime } from \"../../context\";\n\nexport type UseActionBarCopyProps = {\n  copiedDuration?: number | undefined;\n};\n\nexport const useActionBarCopy = ({\n  copiedDuration = 3000,\n}: UseActionBarCopyProps = {}) => {\n  const messageRuntime = useMessageRuntime();\n  const composerRuntime = useComposerRuntime();\n  const setIsCopied = useMessageUtils((s) => s.setIsCopied);\n  const hasCopyableContent = useMessage((message) => {\n    return (\n      (message.role !== \"assistant\" || message.status.type !== \"running\") &&\n      message.content.some((c) => c.type === \"text\" && c.text.length > 0)\n    );\n  });\n\n  const callback = useCallback(() => {\n    const { isEditing, text: composerValue } = composerRuntime.getState();\n\n    const valueToCopy = isEditing\n      ? composerValue\n      : messageRuntime.unstable_getCopyText();\n\n    navigator.clipboard.writeText(valueToCopy).then(() => {\n      setIsCopied(true);\n      setTimeout(() => setIsCopied(false), copiedDuration);\n    });\n  }, [messageRuntime, setIsCopied, composerRuntime, copiedDuration]);\n\n  if (!hasCopyableContent) return null;\n  return callback;\n};\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AAM5B,IAAM,mBAAmB,CAAC;AAAA,EAC/B,iBAAiB;AACnB,IAA2B,CAAC,MAAM;AAChC,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,kBAAkB,mBAAmB;AAC3C,QAAM,cAAc,gBAAgB,CAAC,MAAM,EAAE,WAAW;AACxD,QAAM,qBAAqB,WAAW,CAAC,YAAY;AACjD,YACG,QAAQ,SAAS,eAAe,QAAQ,OAAO,SAAS,cACzD,QAAQ,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC;AAAA,EAEtE,CAAC;AAED,QAAM,WAAW,YAAY,MAAM;AACjC,UAAM,EAAE,WAAW,MAAM,cAAc,IAAI,gBAAgB,SAAS;AAEpE,UAAM,cAAc,YAChB,gBACA,eAAe,qBAAqB;AAExC,cAAU,UAAU,UAAU,WAAW,EAAE,KAAK,MAAM;AACpD,kBAAY,IAAI;AAChB,iBAAW,MAAM,YAAY,KAAK,GAAG,cAAc;AAAA,IACrD,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,aAAa,iBAAiB,cAAc,CAAC;AAEjE,MAAI,CAAC,mBAAoB,QAAO;AAChC,SAAO;AACT;","names":[]}