@repzo/widget-react-native 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +482 -0
- package/lib/commonjs/agent-ui-blocks.js +159 -0
- package/lib/commonjs/agent-ui-blocks.js.map +1 -0
- package/lib/commonjs/api/client.js +267 -0
- package/lib/commonjs/api/client.js.map +1 -0
- package/lib/commonjs/api/realtime.js +193 -0
- package/lib/commonjs/api/realtime.js.map +1 -0
- package/lib/commonjs/api/sse-parser.js +58 -0
- package/lib/commonjs/api/sse-parser.js.map +1 -0
- package/lib/commonjs/controller.js +23 -0
- package/lib/commonjs/controller.js.map +1 -0
- package/lib/commonjs/device-id.js +75 -0
- package/lib/commonjs/device-id.js.map +1 -0
- package/lib/commonjs/events.js +49 -0
- package/lib/commonjs/events.js.map +1 -0
- package/lib/commonjs/i18n.js +106 -0
- package/lib/commonjs/i18n.js.map +1 -0
- package/lib/commonjs/index.js +98 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/locales.js +85 -0
- package/lib/commonjs/locales.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/push/push-notifications.js +208 -0
- package/lib/commonjs/push/push-notifications.js.map +1 -0
- package/lib/commonjs/state/use-widget-state.js +23 -0
- package/lib/commonjs/state/use-widget-state.js.map +1 -0
- package/lib/commonjs/state/widget-store.js +1682 -0
- package/lib/commonjs/state/widget-store.js.map +1 -0
- package/lib/commonjs/storage.js +147 -0
- package/lib/commonjs/storage.js.map +1 -0
- package/lib/commonjs/types.js +44 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/ui/WidgetProvider.js +404 -0
- package/lib/commonjs/ui/WidgetProvider.js.map +1 -0
- package/lib/commonjs/ui/components/AgentUiBlocks.js +864 -0
- package/lib/commonjs/ui/components/AgentUiBlocks.js.map +1 -0
- package/lib/commonjs/ui/components/Avatar.js +76 -0
- package/lib/commonjs/ui/components/Avatar.js.map +1 -0
- package/lib/commonjs/ui/components/ConversationRow.js +155 -0
- package/lib/commonjs/ui/components/ConversationRow.js.map +1 -0
- package/lib/commonjs/ui/components/ErrorBoundary.js +44 -0
- package/lib/commonjs/ui/components/ErrorBoundary.js.map +1 -0
- package/lib/commonjs/ui/components/Gradient.js +168 -0
- package/lib/commonjs/ui/components/Gradient.js.map +1 -0
- package/lib/commonjs/ui/components/Launcher.js +125 -0
- package/lib/commonjs/ui/components/Launcher.js.map +1 -0
- package/lib/commonjs/ui/components/Markdown.js +257 -0
- package/lib/commonjs/ui/components/Markdown.js.map +1 -0
- package/lib/commonjs/ui/components/OutboundMessageCard.js +157 -0
- package/lib/commonjs/ui/components/OutboundMessageCard.js.map +1 -0
- package/lib/commonjs/ui/components/WidgetPanel.js +131 -0
- package/lib/commonjs/ui/components/WidgetPanel.js.map +1 -0
- package/lib/commonjs/ui/components/icons.js +383 -0
- package/lib/commonjs/ui/components/icons.js.map +1 -0
- package/lib/commonjs/ui/hooks/use-keyboard-overlap.js +113 -0
- package/lib/commonjs/ui/hooks/use-keyboard-overlap.js.map +1 -0
- package/lib/commonjs/ui/hooks/use-reduce-motion.js +38 -0
- package/lib/commonjs/ui/hooks/use-reduce-motion.js.map +1 -0
- package/lib/commonjs/ui/hooks/use-widget-insets.js +41 -0
- package/lib/commonjs/ui/hooks/use-widget-insets.js.map +1 -0
- package/lib/commonjs/ui/screens/chat/ChatView.js +590 -0
- package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -0
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js +362 -0
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -0
- package/lib/commonjs/ui/screens/chat/ChatView.types.js +6 -0
- package/lib/commonjs/ui/screens/chat/ChatView.types.js.map +1 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.js +150 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.js.map +1 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.styles.js +118 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.styles.js.map +1 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.types.js +6 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.types.js.map +1 -0
- package/lib/commonjs/ui/screens/home/HomeView.js +336 -0
- package/lib/commonjs/ui/screens/home/HomeView.js.map +1 -0
- package/lib/commonjs/ui/screens/home/HomeView.styles.js +245 -0
- package/lib/commonjs/ui/screens/home/HomeView.styles.js.map +1 -0
- package/lib/commonjs/ui/screens/home/HomeView.types.js +6 -0
- package/lib/commonjs/ui/screens/home/HomeView.types.js.map +1 -0
- package/lib/commonjs/ui/screens/home/greeting.js +49 -0
- package/lib/commonjs/ui/screens/home/greeting.js.map +1 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.js +229 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.js.map +1 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.styles.js +125 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.styles.js.map +1 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.types.js +6 -0
- package/lib/commonjs/ui/screens/pre-chat/PreChatForm.types.js.map +1 -0
- package/lib/commonjs/ui/styles/global.js +55 -0
- package/lib/commonjs/ui/styles/global.js.map +1 -0
- package/lib/commonjs/ui/styles/theme.js +148 -0
- package/lib/commonjs/ui/styles/theme.js.map +1 -0
- package/lib/commonjs/ui/utils/conversations.js +125 -0
- package/lib/commonjs/ui/utils/conversations.js.map +1 -0
- package/lib/commonjs/ui/utils/html.js +44 -0
- package/lib/commonjs/ui/utils/html.js.map +1 -0
- package/lib/commonjs/ui/utils/native-gradient.js +65 -0
- package/lib/commonjs/ui/utils/native-gradient.js.map +1 -0
- package/lib/commonjs/ui/utils/rtl.js +56 -0
- package/lib/commonjs/ui/utils/rtl.js.map +1 -0
- package/lib/commonjs/ui/utils/safe-url.js +67 -0
- package/lib/commonjs/ui/utils/safe-url.js.map +1 -0
- package/lib/module/agent-ui-blocks.js +152 -0
- package/lib/module/agent-ui-blocks.js.map +1 -0
- package/lib/module/api/client.js +261 -0
- package/lib/module/api/client.js.map +1 -0
- package/lib/module/api/realtime.js +189 -0
- package/lib/module/api/realtime.js.map +1 -0
- package/lib/module/api/sse-parser.js +53 -0
- package/lib/module/api/sse-parser.js.map +1 -0
- package/lib/module/controller.js +19 -0
- package/lib/module/controller.js.map +1 -0
- package/lib/module/device-id.js +69 -0
- package/lib/module/device-id.js.map +1 -0
- package/lib/module/events.js +44 -0
- package/lib/module/events.js.map +1 -0
- package/lib/module/i18n.js +99 -0
- package/lib/module/i18n.js.map +1 -0
- package/lib/module/index.js +55 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/locales.js +80 -0
- package/lib/module/locales.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/push/push-notifications.js +204 -0
- package/lib/module/push/push-notifications.js.map +1 -0
- package/lib/module/state/use-widget-state.js +18 -0
- package/lib/module/state/use-widget-state.js.map +1 -0
- package/lib/module/state/widget-store.js +1677 -0
- package/lib/module/state/widget-store.js.map +1 -0
- package/lib/module/storage.js +141 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/types.js +40 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/ui/WidgetProvider.js +400 -0
- package/lib/module/ui/WidgetProvider.js.map +1 -0
- package/lib/module/ui/components/AgentUiBlocks.js +857 -0
- package/lib/module/ui/components/AgentUiBlocks.js.map +1 -0
- package/lib/module/ui/components/Avatar.js +71 -0
- package/lib/module/ui/components/Avatar.js.map +1 -0
- package/lib/module/ui/components/ConversationRow.js +150 -0
- package/lib/module/ui/components/ConversationRow.js.map +1 -0
- package/lib/module/ui/components/ErrorBoundary.js +39 -0
- package/lib/module/ui/components/ErrorBoundary.js.map +1 -0
- package/lib/module/ui/components/Gradient.js +165 -0
- package/lib/module/ui/components/Gradient.js.map +1 -0
- package/lib/module/ui/components/Launcher.js +121 -0
- package/lib/module/ui/components/Launcher.js.map +1 -0
- package/lib/module/ui/components/Markdown.js +253 -0
- package/lib/module/ui/components/Markdown.js.map +1 -0
- package/lib/module/ui/components/OutboundMessageCard.js +153 -0
- package/lib/module/ui/components/OutboundMessageCard.js.map +1 -0
- package/lib/module/ui/components/WidgetPanel.js +127 -0
- package/lib/module/ui/components/WidgetPanel.js.map +1 -0
- package/lib/module/ui/components/icons.js +370 -0
- package/lib/module/ui/components/icons.js.map +1 -0
- package/lib/module/ui/hooks/use-keyboard-overlap.js +109 -0
- package/lib/module/ui/hooks/use-keyboard-overlap.js.map +1 -0
- package/lib/module/ui/hooks/use-reduce-motion.js +34 -0
- package/lib/module/ui/hooks/use-reduce-motion.js.map +1 -0
- package/lib/module/ui/hooks/use-widget-insets.js +37 -0
- package/lib/module/ui/hooks/use-widget-insets.js.map +1 -0
- package/lib/module/ui/screens/chat/ChatView.js +586 -0
- package/lib/module/ui/screens/chat/ChatView.js.map +1 -0
- package/lib/module/ui/screens/chat/ChatView.styles.js +358 -0
- package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -0
- package/lib/module/ui/screens/chat/ChatView.types.js +4 -0
- package/lib/module/ui/screens/chat/ChatView.types.js.map +1 -0
- package/lib/module/ui/screens/conversations/ConversationsList.js +146 -0
- package/lib/module/ui/screens/conversations/ConversationsList.js.map +1 -0
- package/lib/module/ui/screens/conversations/ConversationsList.styles.js +114 -0
- package/lib/module/ui/screens/conversations/ConversationsList.styles.js.map +1 -0
- package/lib/module/ui/screens/conversations/ConversationsList.types.js +4 -0
- package/lib/module/ui/screens/conversations/ConversationsList.types.js.map +1 -0
- package/lib/module/ui/screens/home/HomeView.js +332 -0
- package/lib/module/ui/screens/home/HomeView.js.map +1 -0
- package/lib/module/ui/screens/home/HomeView.styles.js +242 -0
- package/lib/module/ui/screens/home/HomeView.styles.js.map +1 -0
- package/lib/module/ui/screens/home/HomeView.types.js +4 -0
- package/lib/module/ui/screens/home/HomeView.types.js.map +1 -0
- package/lib/module/ui/screens/home/greeting.js +44 -0
- package/lib/module/ui/screens/home/greeting.js.map +1 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.js +225 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.js.map +1 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.styles.js +121 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.styles.js.map +1 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.types.js +4 -0
- package/lib/module/ui/screens/pre-chat/PreChatForm.types.js.map +1 -0
- package/lib/module/ui/styles/global.js +51 -0
- package/lib/module/ui/styles/global.js.map +1 -0
- package/lib/module/ui/styles/theme.js +137 -0
- package/lib/module/ui/styles/theme.js.map +1 -0
- package/lib/module/ui/utils/conversations.js +115 -0
- package/lib/module/ui/utils/conversations.js.map +1 -0
- package/lib/module/ui/utils/html.js +39 -0
- package/lib/module/ui/utils/html.js.map +1 -0
- package/lib/module/ui/utils/native-gradient.js +60 -0
- package/lib/module/ui/utils/native-gradient.js.map +1 -0
- package/lib/module/ui/utils/rtl.js +49 -0
- package/lib/module/ui/utils/rtl.js.map +1 -0
- package/lib/module/ui/utils/safe-url.js +59 -0
- package/lib/module/ui/utils/safe-url.js.map +1 -0
- package/lib/typescript/commonjs/agent-ui-blocks.d.ts +20 -0
- package/lib/typescript/commonjs/agent-ui-blocks.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/client.d.ts +115 -0
- package/lib/typescript/commonjs/api/client.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/realtime.d.ts +39 -0
- package/lib/typescript/commonjs/api/realtime.d.ts.map +1 -0
- package/lib/typescript/commonjs/api/sse-parser.d.ts +13 -0
- package/lib/typescript/commonjs/api/sse-parser.d.ts.map +1 -0
- package/lib/typescript/commonjs/controller.d.ts +15 -0
- package/lib/typescript/commonjs/controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/device-id.d.ts +15 -0
- package/lib/typescript/commonjs/device-id.d.ts.map +1 -0
- package/lib/typescript/commonjs/events.d.ts +41 -0
- package/lib/typescript/commonjs/events.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n.d.ts +78 -0
- package/lib/typescript/commonjs/i18n.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +103 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/locales.d.ts +18 -0
- package/lib/typescript/commonjs/locales.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/push/push-notifications.d.ts +71 -0
- package/lib/typescript/commonjs/push/push-notifications.d.ts.map +1 -0
- package/lib/typescript/commonjs/state/use-widget-state.d.ts +10 -0
- package/lib/typescript/commonjs/state/use-widget-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/state/widget-store.d.ts +227 -0
- package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -0
- package/lib/typescript/commonjs/storage.d.ts +42 -0
- package/lib/typescript/commonjs/storage.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts +391 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/WidgetProvider.d.ts +15 -0
- package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/AgentUiBlocks.d.ts +27 -0
- package/lib/typescript/commonjs/ui/components/AgentUiBlocks.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Avatar.d.ts +19 -0
- package/lib/typescript/commonjs/ui/components/Avatar.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts +26 -0
- package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/ErrorBoundary.d.ts +27 -0
- package/lib/typescript/commonjs/ui/components/ErrorBoundary.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Gradient.d.ts +33 -0
- package/lib/typescript/commonjs/ui/components/Gradient.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Launcher.d.ts +18 -0
- package/lib/typescript/commonjs/ui/components/Launcher.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Markdown.d.ts +19 -0
- package/lib/typescript/commonjs/ui/components/Markdown.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OutboundMessageCard.d.ts +20 -0
- package/lib/typescript/commonjs/ui/components/OutboundMessageCard.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/WidgetPanel.d.ts +26 -0
- package/lib/typescript/commonjs/ui/components/WidgetPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/icons.d.ts +38 -0
- package/lib/typescript/commonjs/ui/components/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/use-keyboard-overlap.d.ts +33 -0
- package/lib/typescript/commonjs/ui/hooks/use-keyboard-overlap.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/use-reduce-motion.d.ts +11 -0
- package/lib/typescript/commonjs/ui/hooks/use-reduce-motion.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/use-widget-insets.d.ts +16 -0
- package/lib/typescript/commonjs/ui/hooks/use-widget-insets.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts +11 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +349 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +48 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts +10 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.styles.d.ts +113 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.styles.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts +31 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts +17 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts +227 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts +40 -0
- package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/home/greeting.d.ts +19 -0
- package/lib/typescript/commonjs/ui/screens/home/greeting.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.d.ts +7 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.styles.d.ts +115 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.styles.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.types.d.ts +20 -0
- package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/styles/global.d.ts +46 -0
- package/lib/typescript/commonjs/ui/styles/global.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/styles/theme.d.ts +103 -0
- package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/conversations.d.ts +41 -0
- package/lib/typescript/commonjs/ui/utils/conversations.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/html.d.ts +10 -0
- package/lib/typescript/commonjs/ui/utils/html.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/native-gradient.d.ts +61 -0
- package/lib/typescript/commonjs/ui/utils/native-gradient.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/rtl.d.ts +33 -0
- package/lib/typescript/commonjs/ui/utils/rtl.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/safe-url.d.ts +21 -0
- package/lib/typescript/commonjs/ui/utils/safe-url.d.ts.map +1 -0
- package/lib/typescript/module/agent-ui-blocks.d.ts +20 -0
- package/lib/typescript/module/agent-ui-blocks.d.ts.map +1 -0
- package/lib/typescript/module/api/client.d.ts +115 -0
- package/lib/typescript/module/api/client.d.ts.map +1 -0
- package/lib/typescript/module/api/realtime.d.ts +39 -0
- package/lib/typescript/module/api/realtime.d.ts.map +1 -0
- package/lib/typescript/module/api/sse-parser.d.ts +13 -0
- package/lib/typescript/module/api/sse-parser.d.ts.map +1 -0
- package/lib/typescript/module/controller.d.ts +15 -0
- package/lib/typescript/module/controller.d.ts.map +1 -0
- package/lib/typescript/module/device-id.d.ts +15 -0
- package/lib/typescript/module/device-id.d.ts.map +1 -0
- package/lib/typescript/module/events.d.ts +41 -0
- package/lib/typescript/module/events.d.ts.map +1 -0
- package/lib/typescript/module/i18n.d.ts +78 -0
- package/lib/typescript/module/i18n.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +103 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/locales.d.ts +18 -0
- package/lib/typescript/module/locales.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/push/push-notifications.d.ts +71 -0
- package/lib/typescript/module/push/push-notifications.d.ts.map +1 -0
- package/lib/typescript/module/state/use-widget-state.d.ts +10 -0
- package/lib/typescript/module/state/use-widget-state.d.ts.map +1 -0
- package/lib/typescript/module/state/widget-store.d.ts +227 -0
- package/lib/typescript/module/state/widget-store.d.ts.map +1 -0
- package/lib/typescript/module/storage.d.ts +42 -0
- package/lib/typescript/module/storage.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts +391 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/lib/typescript/module/ui/WidgetProvider.d.ts +15 -0
- package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/AgentUiBlocks.d.ts +27 -0
- package/lib/typescript/module/ui/components/AgentUiBlocks.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Avatar.d.ts +19 -0
- package/lib/typescript/module/ui/components/Avatar.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/ConversationRow.d.ts +26 -0
- package/lib/typescript/module/ui/components/ConversationRow.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/ErrorBoundary.d.ts +27 -0
- package/lib/typescript/module/ui/components/ErrorBoundary.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Gradient.d.ts +33 -0
- package/lib/typescript/module/ui/components/Gradient.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Launcher.d.ts +18 -0
- package/lib/typescript/module/ui/components/Launcher.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Markdown.d.ts +19 -0
- package/lib/typescript/module/ui/components/Markdown.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OutboundMessageCard.d.ts +20 -0
- package/lib/typescript/module/ui/components/OutboundMessageCard.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/WidgetPanel.d.ts +26 -0
- package/lib/typescript/module/ui/components/WidgetPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/icons.d.ts +38 -0
- package/lib/typescript/module/ui/components/icons.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/use-keyboard-overlap.d.ts +33 -0
- package/lib/typescript/module/ui/hooks/use-keyboard-overlap.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/use-reduce-motion.d.ts +11 -0
- package/lib/typescript/module/ui/hooks/use-reduce-motion.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/use-widget-insets.d.ts +16 -0
- package/lib/typescript/module/ui/hooks/use-widget-insets.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.d.ts +11 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +349 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +48 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts +10 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.styles.d.ts +113 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.styles.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts +31 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/home/HomeView.d.ts +17 -0
- package/lib/typescript/module/ui/screens/home/HomeView.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts +227 -0
- package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts +40 -0
- package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/home/greeting.d.ts +19 -0
- package/lib/typescript/module/ui/screens/home/greeting.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.d.ts +7 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.styles.d.ts +115 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.styles.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.types.d.ts +20 -0
- package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.types.d.ts.map +1 -0
- package/lib/typescript/module/ui/styles/global.d.ts +46 -0
- package/lib/typescript/module/ui/styles/global.d.ts.map +1 -0
- package/lib/typescript/module/ui/styles/theme.d.ts +103 -0
- package/lib/typescript/module/ui/styles/theme.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/conversations.d.ts +41 -0
- package/lib/typescript/module/ui/utils/conversations.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/html.d.ts +10 -0
- package/lib/typescript/module/ui/utils/html.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/native-gradient.d.ts +61 -0
- package/lib/typescript/module/ui/utils/native-gradient.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/rtl.d.ts +33 -0
- package/lib/typescript/module/ui/utils/rtl.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/safe-url.d.ts +21 -0
- package/lib/typescript/module/ui/utils/safe-url.d.ts.map +1 -0
- package/metro.js +40 -0
- package/package.json +116 -0
- package/src/agent-ui-blocks.ts +302 -0
- package/src/api/client.ts +332 -0
- package/src/api/realtime.ts +225 -0
- package/src/api/sse-parser.ts +51 -0
- package/src/controller.ts +20 -0
- package/src/device-id.ts +71 -0
- package/src/events.ts +74 -0
- package/src/i18n.ts +114 -0
- package/src/index.tsx +199 -0
- package/src/locales.ts +80 -0
- package/src/push/push-notifications.ts +254 -0
- package/src/state/use-widget-state.ts +20 -0
- package/src/state/widget-store.ts +1815 -0
- package/src/storage.ts +153 -0
- package/src/types.ts +445 -0
- package/src/ui/WidgetProvider.tsx +434 -0
- package/src/ui/components/AgentUiBlocks.tsx +912 -0
- package/src/ui/components/Avatar.tsx +86 -0
- package/src/ui/components/ConversationRow.tsx +163 -0
- package/src/ui/components/ErrorBoundary.tsx +49 -0
- package/src/ui/components/Gradient.tsx +165 -0
- package/src/ui/components/Launcher.tsx +128 -0
- package/src/ui/components/Markdown.tsx +291 -0
- package/src/ui/components/OutboundMessageCard.tsx +154 -0
- package/src/ui/components/WidgetPanel.tsx +133 -0
- package/src/ui/components/icons.tsx +315 -0
- package/src/ui/hooks/use-keyboard-overlap.ts +134 -0
- package/src/ui/hooks/use-reduce-motion.ts +39 -0
- package/src/ui/hooks/use-widget-insets.ts +44 -0
- package/src/ui/screens/chat/ChatView.styles.ts +357 -0
- package/src/ui/screens/chat/ChatView.tsx +690 -0
- package/src/ui/screens/chat/ChatView.types.ts +46 -0
- package/src/ui/screens/conversations/ConversationsList.styles.ts +111 -0
- package/src/ui/screens/conversations/ConversationsList.tsx +144 -0
- package/src/ui/screens/conversations/ConversationsList.types.ts +33 -0
- package/src/ui/screens/home/HomeView.styles.ts +246 -0
- package/src/ui/screens/home/HomeView.tsx +336 -0
- package/src/ui/screens/home/HomeView.types.ts +42 -0
- package/src/ui/screens/home/greeting.ts +50 -0
- package/src/ui/screens/pre-chat/PreChatForm.styles.ts +120 -0
- package/src/ui/screens/pre-chat/PreChatForm.tsx +221 -0
- package/src/ui/screens/pre-chat/PreChatForm.types.ts +22 -0
- package/src/ui/styles/global.ts +50 -0
- package/src/ui/styles/theme.ts +155 -0
- package/src/ui/utils/conversations.ts +122 -0
- package/src/ui/utils/html.ts +58 -0
- package/src/ui/utils/native-gradient.ts +60 -0
- package/src/ui/utils/rtl.ts +43 -0
- package/src/ui/utils/safe-url.ts +63 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RepzoWidgetEvents = exports.EventEmitter = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Tiny typed event emitter. Pure JS — no NativeEventEmitter, so listeners work
|
|
9
|
+
* identically on iOS, Android and in tests.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const RepzoWidgetEvents = exports.RepzoWidgetEvents = {
|
|
13
|
+
UnreadCountDidChange: 'repzoWidget.unreadCountDidChange',
|
|
14
|
+
MessageDidArrive: 'repzoWidget.messageDidArrive',
|
|
15
|
+
/** The visitor opened a thread — hosts use it to dismiss that conversation's push notification. */
|
|
16
|
+
ConversationDidRead: 'repzoWidget.conversationDidRead',
|
|
17
|
+
WindowDidShow: 'repzoWidget.windowDidShow',
|
|
18
|
+
WindowDidHide: 'repzoWidget.windowDidHide'
|
|
19
|
+
};
|
|
20
|
+
class EventEmitter {
|
|
21
|
+
listeners = new Map();
|
|
22
|
+
addListener(event, listener) {
|
|
23
|
+
const current = this.listeners.get(event) ?? new Set();
|
|
24
|
+
current.add(listener);
|
|
25
|
+
this.listeners.set(event, current);
|
|
26
|
+
return {
|
|
27
|
+
remove: () => {
|
|
28
|
+
this.listeners.get(event)?.delete(listener);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
emit(event, payload) {
|
|
33
|
+
const current = this.listeners.get(event);
|
|
34
|
+
if (!current) return;
|
|
35
|
+
// Copy first: a listener may remove itself while we iterate.
|
|
36
|
+
for (const listener of Array.from(current)) {
|
|
37
|
+
try {
|
|
38
|
+
listener(payload);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.warn('[repzo-widget] event listener threw', error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
removeAllListeners() {
|
|
45
|
+
this.listeners.clear();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.EventEmitter = EventEmitter;
|
|
49
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RepzoWidgetEvents","exports","UnreadCountDidChange","MessageDidArrive","ConversationDidRead","WindowDidShow","WindowDidHide","EventEmitter","listeners","Map","addListener","event","listener","current","get","Set","add","set","remove","delete","emit","payload","Array","from","error","console","warn","removeAllListeners","clear"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAIO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,oBAAoB,EAAE,kCAAkC;EACxDC,gBAAgB,EAAE,8BAA8B;EAChD;EACAC,mBAAmB,EAAE,iCAAiC;EACtDC,aAAa,EAAE,2BAA2B;EAC1CC,aAAa,EAAE;AACjB,CAAU;AAyBH,MAAMC,YAAY,CAAC;EAChBC,SAAS,GAAG,IAAIC,GAAG,CAAwB,CAAC;EAEpDC,WAAWA,CACTC,KAAQ,EACRC,QAAwD,EACrC;IACnB,MAAMC,OAAO,GAAG,IAAI,CAACL,SAAS,CAACM,GAAG,CAACH,KAAK,CAAC,IAAI,IAAII,GAAG,CAAW,CAAC;IAChEF,OAAO,CAACG,GAAG,CAACJ,QAAoB,CAAC;IACjC,IAAI,CAACJ,SAAS,CAACS,GAAG,CAACN,KAAK,EAAEE,OAAO,CAAC;IAElC,OAAO;MACLK,MAAM,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACV,SAAS,CAACM,GAAG,CAACH,KAAK,CAAC,EAAEQ,MAAM,CAACP,QAAoB,CAAC;MACzD;IACF,CAAC;EACH;EAEAQ,IAAIA,CAA6BT,KAAQ,EAAEU,OAAoC,EAAQ;IACrF,MAAMR,OAAO,GAAG,IAAI,CAACL,SAAS,CAACM,GAAG,CAACH,KAAK,CAAC;IACzC,IAAI,CAACE,OAAO,EAAE;IACd;IACA,KAAK,MAAMD,QAAQ,IAAIU,KAAK,CAACC,IAAI,CAACV,OAAO,CAAC,EAAE;MAC1C,IAAI;QACFD,QAAQ,CAACS,OAAO,CAAC;MACnB,CAAC,CAAC,OAAOG,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAEF,KAAK,CAAC;MAC5D;IACF;EACF;EAEAG,kBAAkBA,CAAA,EAAS;IACzB,IAAI,CAACnB,SAAS,CAACoB,KAAK,CAAC,CAAC;EACxB;AACF;AAAC3B,OAAA,CAAAM,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_LABELS = void 0;
|
|
7
|
+
exports.buildLabels = buildLabels;
|
|
8
|
+
exports.createTranslator = createTranslator;
|
|
9
|
+
exports.formatLabel = formatLabel;
|
|
10
|
+
var _locales = require("./locales.js");
|
|
11
|
+
/**
|
|
12
|
+
* Translations come from the widget config (`translations[locale][key]`), with
|
|
13
|
+
* the widget's default locale as the fallback chain — same lookup as the web
|
|
14
|
+
* widget's `t()` in `client/src/widget/App.tsx`.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Resolution order, most specific first: what the workspace configured for the
|
|
19
|
+
* active locale, what the SDK ships for it, then the same pair for the
|
|
20
|
+
* workspace's default locale, and finally the English built-in. Dashboard
|
|
21
|
+
* copy always outranks a bundled translation.
|
|
22
|
+
*/
|
|
23
|
+
function createTranslator(config, locale) {
|
|
24
|
+
const defaultLocale = config?.defaultLocale || 'en';
|
|
25
|
+
const active = (0, _locales.baseLanguage)(locale);
|
|
26
|
+
const fallbackLocale = (0, _locales.baseLanguage)(defaultLocale);
|
|
27
|
+
return (key, fallback) => config?.translations?.[locale]?.[key] || config?.translations?.[active]?.[key] || _locales.BUNDLED_TRANSLATIONS[active]?.[key] || config?.translations?.[defaultLocale]?.[key] || _locales.BUNDLED_TRANSLATIONS[fallbackLocale]?.[key] || fallback;
|
|
28
|
+
}
|
|
29
|
+
const DEFAULT_LABELS = exports.DEFAULT_LABELS = {
|
|
30
|
+
back: 'Back',
|
|
31
|
+
loading: 'Loading...',
|
|
32
|
+
loadEarlier: 'Load earlier messages',
|
|
33
|
+
emptyConversation: 'Send a message to start the conversation',
|
|
34
|
+
messagePlaceholder: 'Type a message...',
|
|
35
|
+
attachFile: 'Attach file',
|
|
36
|
+
failedToSend: 'Failed to send',
|
|
37
|
+
thinking: 'Typing',
|
|
38
|
+
messages: 'Messages',
|
|
39
|
+
noMessages: 'No messages yet',
|
|
40
|
+
historyHidden: 'Conversation history is hidden',
|
|
41
|
+
startBelow: 'Start a conversation below',
|
|
42
|
+
preChatTitle: 'Before we chat',
|
|
43
|
+
preChatSubtitle: 'Let us know a bit about you so we can help you better.',
|
|
44
|
+
preChatSkip: 'Skip',
|
|
45
|
+
preChatSubmit: 'Start chat',
|
|
46
|
+
viewPreviousConversations: 'View previous conversations',
|
|
47
|
+
homeRecentTitle: 'Recent',
|
|
48
|
+
homeViewAllCount: 'View all ({count})',
|
|
49
|
+
homeNoConversations: 'Your conversations will show up here',
|
|
50
|
+
homeStatusOnline: "We're online",
|
|
51
|
+
homeStatusAway: "We're away",
|
|
52
|
+
unreadBadge: '{count} unread',
|
|
53
|
+
team: 'Team',
|
|
54
|
+
home: 'Home',
|
|
55
|
+
close: 'Close',
|
|
56
|
+
retry: 'Retry',
|
|
57
|
+
connectionError: 'We could not load the chat. Please try again.',
|
|
58
|
+
connecting: 'Connecting you to the team',
|
|
59
|
+
// Terminal errors — no Retry, nothing the visitor can fix from here.
|
|
60
|
+
chatUnavailable: 'Chat is not available right now.',
|
|
61
|
+
identityVerificationError: "We couldn't verify your account. Please sign in again.",
|
|
62
|
+
// Shown if the widget's own UI hits a render error.
|
|
63
|
+
widgetCrashed: 'Something went wrong.',
|
|
64
|
+
// Relative timestamps on the conversation lists.
|
|
65
|
+
timeJustNow: 'Just now',
|
|
66
|
+
timeMinutes: '{count}m',
|
|
67
|
+
timeHours: '{count}h',
|
|
68
|
+
timeDays: '{count}d',
|
|
69
|
+
timeMonths: '{count}mo',
|
|
70
|
+
timeYears: '{count}y',
|
|
71
|
+
// Day separators inside a thread.
|
|
72
|
+
today: 'Today',
|
|
73
|
+
yesterday: 'Yesterday',
|
|
74
|
+
conversationUpdated: 'Conversation updated',
|
|
75
|
+
// Forms.
|
|
76
|
+
procedureSend: 'Send details',
|
|
77
|
+
procedureSent: 'Sent',
|
|
78
|
+
fieldRequired: '{field} is required',
|
|
79
|
+
invalidEmail: 'Enter a valid email address',
|
|
80
|
+
working: 'Working...',
|
|
81
|
+
// Proactive card.
|
|
82
|
+
outboundTitle: 'New update',
|
|
83
|
+
outboundCta: 'Learn more',
|
|
84
|
+
dismiss: 'Dismiss',
|
|
85
|
+
// Rich blocks an agent can send.
|
|
86
|
+
blockService: 'Service',
|
|
87
|
+
blockProduct: 'Product',
|
|
88
|
+
blockChooseTime: 'Choose a time',
|
|
89
|
+
blockProfessional: 'Professional',
|
|
90
|
+
blockPriceOffer: 'Price offer'
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Fill `{token}` placeholders in a translated string. Interpolation belongs in
|
|
94
|
+
* the string layer so translators keep control of word order.
|
|
95
|
+
*/
|
|
96
|
+
function formatLabel(template, values) {
|
|
97
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => key in values ? String(values[key]) : match);
|
|
98
|
+
}
|
|
99
|
+
function buildLabels(translate) {
|
|
100
|
+
const labels = {};
|
|
101
|
+
Object.keys(DEFAULT_LABELS).forEach(key => {
|
|
102
|
+
labels[key] = translate(key, DEFAULT_LABELS[key]);
|
|
103
|
+
});
|
|
104
|
+
return labels;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_locales","require","createTranslator","config","locale","defaultLocale","active","baseLanguage","fallbackLocale","key","fallback","translations","BUNDLED_TRANSLATIONS","DEFAULT_LABELS","exports","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","procedureSend","procedureSent","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","formatLabel","template","values","replace","match","String","buildLabels","translate","labels","Object","keys","forEach"],"sourceRoot":"../../src","sources":["i18n.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "DEFAULT_BASE_URL", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _types.DEFAULT_BASE_URL;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Events", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _events.RepzoWidgetEvents;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "RepzoWidgetError", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _client.RepzoWidgetError;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "RepzoWidgetEvents", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _events.RepzoWidgetEvents;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "RepzoWidgetLauncher", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _Launcher.Launcher;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "RepzoWidgetProvider", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _WidgetProvider.RepzoWidgetProvider;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
exports.default = exports.Space = void 0;
|
|
43
|
+
Object.defineProperty(exports, "useWidgetState", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _useWidgetState.useWidgetState;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var _controller = require("./controller.js");
|
|
50
|
+
var _events = require("./events.js");
|
|
51
|
+
var _storage = require("./storage.js");
|
|
52
|
+
var _WidgetProvider = require("./ui/WidgetProvider.js");
|
|
53
|
+
var _Launcher = require("./ui/components/Launcher.js");
|
|
54
|
+
var _client = require("./api/client.js");
|
|
55
|
+
var _types = require("./types.js");
|
|
56
|
+
var _useWidgetState = require("./state/use-widget-state.js");
|
|
57
|
+
/**
|
|
58
|
+
* @repzo/widget-react-native — the Repzo chat widget for React Native.
|
|
59
|
+
*
|
|
60
|
+
* Pure JavaScript: no native modules, no config plugin, no pod install. The
|
|
61
|
+
* public surface mirrors `@intercom/intercom-react-native` so swapping the two
|
|
62
|
+
* is a rename at each call site.
|
|
63
|
+
*/
|
|
64
|
+
/** Spaces the widget can open into — the analogue of Intercom's `Space`. */
|
|
65
|
+
let Space = exports.Space = /*#__PURE__*/function (Space) {
|
|
66
|
+
Space["home"] = "home";
|
|
67
|
+
Space["messages"] = "messages";
|
|
68
|
+
return Space;
|
|
69
|
+
}({});
|
|
70
|
+
const RepzoWidget = {
|
|
71
|
+
boot: options => _controller.controller.store.boot(options),
|
|
72
|
+
loginUnidentifiedUser: () => _controller.controller.store.loginUnidentifiedUser(),
|
|
73
|
+
loginUserWithUserAttributes: user => _controller.controller.store.loginUserWithUserAttributes(user),
|
|
74
|
+
updateUser: attributes => _controller.controller.store.updateUser(attributes),
|
|
75
|
+
logout: () => _controller.controller.store.logout(),
|
|
76
|
+
present: async () => {
|
|
77
|
+
_controller.controller.store.present();
|
|
78
|
+
},
|
|
79
|
+
presentSpace: async space => {
|
|
80
|
+
_controller.controller.store.present(space);
|
|
81
|
+
},
|
|
82
|
+
presentConversation: conversationId => _controller.controller.store.openConversation(conversationId),
|
|
83
|
+
hide: async () => {
|
|
84
|
+
_controller.controller.store.hide();
|
|
85
|
+
},
|
|
86
|
+
getUnreadConversationCount: async () => Object.values(_controller.controller.store.getState().unreadByConversation).filter(count => count > 0).length,
|
|
87
|
+
getUnreadMessageCount: async () => _controller.controller.store.getState().unreadCount,
|
|
88
|
+
logEvent: async (eventName, metadata) => {
|
|
89
|
+
_controller.controller.store.track(eventName, metadata ?? {});
|
|
90
|
+
},
|
|
91
|
+
setLocale: locale => _controller.controller.store.setLocale(locale),
|
|
92
|
+
addEventListener: (event, listener) => _controller.controller.events.addListener(event, listener),
|
|
93
|
+
setStorageAdapter: adapter => (0, _storage.setStorageAdapter)(adapter),
|
|
94
|
+
setSecureStorageAdapter: adapter => (0, _storage.setSecureStorageAdapter)(adapter),
|
|
95
|
+
setPushToken: options => _controller.controller.store.push.setManualToken(options)
|
|
96
|
+
};
|
|
97
|
+
var _default = exports.default = RepzoWidget;
|
|
98
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_controller","require","_events","_storage","_WidgetProvider","_Launcher","_client","_types","_useWidgetState","Space","exports","RepzoWidget","boot","options","controller","store","loginUnidentifiedUser","loginUserWithUserAttributes","user","updateUser","attributes","logout","present","presentSpace","space","presentConversation","conversationId","openConversation","hide","getUnreadConversationCount","Object","values","getState","unreadByConversation","filter","count","length","getUnreadMessageCount","unreadCount","logEvent","eventName","metadata","track","setLocale","locale","addEventListener","event","listener","events","addListener","setStorageAdapter","adapter","setSecureStorageAdapter","setPushToken","push","setManualToken","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AASA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAxBA;AACA;AACA;AACA;AACA;AACA;AACA;AA+CA;AAAA,IACYQ,KAAK,GAAAC,OAAA,CAAAD,KAAA,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;AAiGjB,MAAME,WAA4B,GAAG;EACnCC,IAAI,EAAGC,OAAO,IAAKC,sBAAU,CAACC,KAAK,CAACH,IAAI,CAACC,OAAO,CAAC;EAEjDG,qBAAqB,EAAEA,CAAA,KAAMF,sBAAU,CAACC,KAAK,CAACC,qBAAqB,CAAC,CAAC;EAErEC,2BAA2B,EAAGC,IAAI,IAAKJ,sBAAU,CAACC,KAAK,CAACE,2BAA2B,CAACC,IAAI,CAAC;EAEzFC,UAAU,EAAGC,UAAU,IAAKN,sBAAU,CAACC,KAAK,CAACI,UAAU,CAACC,UAAU,CAAC;EAEnEC,MAAM,EAAEA,CAAA,KAAMP,sBAAU,CAACC,KAAK,CAACM,MAAM,CAAC,CAAC;EAEvCC,OAAO,EAAE,MAAAA,CAAA,KAAY;IACnBR,sBAAU,CAACC,KAAK,CAACO,OAAO,CAAC,CAAC;EAC5B,CAAC;EAEDC,YAAY,EAAE,MAAOC,KAAK,IAAK;IAC7BV,sBAAU,CAACC,KAAK,CAACO,OAAO,CAACE,KAAwB,CAAC;EACpD,CAAC;EAEDC,mBAAmB,EAAGC,cAAc,IAAKZ,sBAAU,CAACC,KAAK,CAACY,gBAAgB,CAACD,cAAc,CAAC;EAE1FE,IAAI,EAAE,MAAAA,CAAA,KAAY;IAChBd,sBAAU,CAACC,KAAK,CAACa,IAAI,CAAC,CAAC;EACzB,CAAC;EAEDC,0BAA0B,EAAE,MAAAA,CAAA,KAC1BC,MAAM,CAACC,MAAM,CAACjB,sBAAU,CAACC,KAAK,CAACiB,QAAQ,CAAC,CAAC,CAACC,oBAAoB,CAAC,CAACC,MAAM,CAAEC,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC,CACzFC,MAAM;EAEXC,qBAAqB,EAAE,MAAAA,CAAA,KAAYvB,sBAAU,CAACC,KAAK,CAACiB,QAAQ,CAAC,CAAC,CAACM,WAAW;EAE1EC,QAAQ,EAAE,MAAAA,CAAOC,SAAS,EAAEC,QAAQ,KAAK;IACvC3B,sBAAU,CAACC,KAAK,CAAC2B,KAAK,CAACF,SAAS,EAAEC,QAAQ,IAAI,CAAC,CAAC,CAAC;EACnD,CAAC;EAEDE,SAAS,EAAGC,MAAM,IAAK9B,sBAAU,CAACC,KAAK,CAAC4B,SAAS,CAACC,MAAM,CAAC;EAEzDC,gBAAgB,EAAEA,CAACC,KAAK,EAAEC,QAAQ,KAAKjC,sBAAU,CAACkC,MAAM,CAACC,WAAW,CAACH,KAAK,EAAEC,QAAQ,CAAC;EAErFG,iBAAiB,EAAGC,OAAO,IAAK,IAAAD,0BAAiB,EAACC,OAAO,CAAC;EAE1DC,uBAAuB,EAAGD,OAAO,IAAK,IAAAC,gCAAuB,EAACD,OAAO,CAAC;EAEtEE,YAAY,EAAGxC,OAAO,IAAKC,sBAAU,CAACC,KAAK,CAACuC,IAAI,CAACC,cAAc,CAAC1C,OAAO;AACzE,CAAC;AAAC,IAAA2C,QAAA,GAAA9C,OAAA,CAAA+C,OAAA,GAEa9C,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BUNDLED_TRANSLATIONS = void 0;
|
|
7
|
+
exports.baseLanguage = baseLanguage;
|
|
8
|
+
/**
|
|
9
|
+
* Translations bundled with the SDK.
|
|
10
|
+
*
|
|
11
|
+
* A workspace can still override any key from the dashboard — those win. These
|
|
12
|
+
* exist so a widget running in a supported language is usable out of the box,
|
|
13
|
+
* instead of falling back to English for every string an admin has not filled
|
|
14
|
+
* in by hand.
|
|
15
|
+
*
|
|
16
|
+
* Keys mirror `DEFAULT_LABELS` in `./i18n`; `{token}` placeholders must be kept
|
|
17
|
+
* so word order stays under the translator's control.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const ar = {
|
|
21
|
+
back: 'رجوع',
|
|
22
|
+
loading: 'جارٍ التحميل...',
|
|
23
|
+
loadEarlier: 'تحميل الرسائل السابقة',
|
|
24
|
+
emptyConversation: 'أرسل رسالة لبدء المحادثة',
|
|
25
|
+
messagePlaceholder: 'اكتب رسالة...',
|
|
26
|
+
attachFile: 'إرفاق ملف',
|
|
27
|
+
failedToSend: 'تعذر الإرسال',
|
|
28
|
+
thinking: 'يكتب',
|
|
29
|
+
messages: 'الرسائل',
|
|
30
|
+
noMessages: 'لا توجد رسائل بعد',
|
|
31
|
+
historyHidden: 'سجل المحادثات مخفي',
|
|
32
|
+
startBelow: 'ابدأ محادثة من الأسفل',
|
|
33
|
+
preChatTitle: 'قبل أن نبدأ',
|
|
34
|
+
preChatSubtitle: 'أخبرنا قليلاً عنك حتى نتمكن من مساعدتك بشكل أفضل.',
|
|
35
|
+
preChatSkip: 'تخطٍ',
|
|
36
|
+
preChatSubmit: 'ابدأ المحادثة',
|
|
37
|
+
viewPreviousConversations: 'عرض المحادثات السابقة',
|
|
38
|
+
homeRecentTitle: 'الأحدث',
|
|
39
|
+
homeViewAllCount: 'عرض الكل ({count})',
|
|
40
|
+
homeNoConversations: 'ستظهر محادثاتك هنا',
|
|
41
|
+
homeStatusOnline: 'نحن متصلون',
|
|
42
|
+
homeStatusAway: 'نحن غير متصلين',
|
|
43
|
+
unreadBadge: '{count} غير مقروءة',
|
|
44
|
+
team: 'الفريق',
|
|
45
|
+
home: 'الرئيسية',
|
|
46
|
+
close: 'إغلاق',
|
|
47
|
+
retry: 'إعادة المحاولة',
|
|
48
|
+
connectionError: 'تعذر تحميل المحادثة. يرجى المحاولة مرة أخرى.',
|
|
49
|
+
connecting: 'جارٍ توصيلك بالفريق',
|
|
50
|
+
chatUnavailable: 'المحادثة غير متاحة حاليًا.',
|
|
51
|
+
identityVerificationError: 'تعذر التحقق من حسابك. يرجى تسجيل الدخول مرة أخرى.',
|
|
52
|
+
widgetCrashed: 'حدث خطأ ما.',
|
|
53
|
+
// Kept short: these sit in a tight row beside the agent's name.
|
|
54
|
+
timeJustNow: 'الآن',
|
|
55
|
+
timeMinutes: '{count} د',
|
|
56
|
+
timeHours: '{count} س',
|
|
57
|
+
timeDays: '{count} ي',
|
|
58
|
+
timeMonths: '{count} شهر',
|
|
59
|
+
timeYears: '{count} سنة',
|
|
60
|
+
today: 'اليوم',
|
|
61
|
+
yesterday: 'أمس',
|
|
62
|
+
conversationUpdated: 'تم تحديث المحادثة',
|
|
63
|
+
procedureSend: 'إرسال التفاصيل',
|
|
64
|
+
procedureSent: 'تم الإرسال',
|
|
65
|
+
fieldRequired: '{field} مطلوب',
|
|
66
|
+
invalidEmail: 'أدخل بريدًا إلكترونيًا صالحًا',
|
|
67
|
+
working: 'جارٍ العمل...',
|
|
68
|
+
outboundTitle: 'تحديث جديد',
|
|
69
|
+
outboundCta: 'اعرف المزيد',
|
|
70
|
+
dismiss: 'تجاهل',
|
|
71
|
+
blockService: 'خدمة',
|
|
72
|
+
blockProduct: 'منتج',
|
|
73
|
+
blockChooseTime: 'اختر وقتًا',
|
|
74
|
+
blockProfessional: 'الموظف',
|
|
75
|
+
blockPriceOffer: 'عرض سعر'
|
|
76
|
+
};
|
|
77
|
+
const BUNDLED_TRANSLATIONS = exports.BUNDLED_TRANSLATIONS = {
|
|
78
|
+
ar
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/** `ar-JO`, `ar_SA` and `AR` all resolve to the `ar` bundle. */
|
|
82
|
+
function baseLanguage(locale) {
|
|
83
|
+
return (locale ?? '').split(/[-_]/)[0]?.toLowerCase() ?? '';
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=locales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ar","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","procedureSend","procedureSent","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","BUNDLED_TRANSLATIONS","exports","baseLanguage","locale","split","toLowerCase"],"sourceRoot":"../../src","sources":["locales.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,EAAY,GAAG;EACnBC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,iBAAiB;EAC1BC,WAAW,EAAE,uBAAuB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,kBAAkB,EAAE,eAAe;EACnCC,UAAU,EAAE,WAAW;EACvBC,YAAY,EAAE,cAAc;EAC5BC,QAAQ,EAAE,MAAM;EAChBC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,mBAAmB;EAC/BC,aAAa,EAAE,oBAAoB;EACnCC,UAAU,EAAE,uBAAuB;EACnCC,YAAY,EAAE,aAAa;EAC3BC,eAAe,EAAE,mDAAmD;EACpEC,WAAW,EAAE,MAAM;EACnBC,aAAa,EAAE,eAAe;EAC9BC,yBAAyB,EAAE,uBAAuB;EAClDC,eAAe,EAAE,QAAQ;EACzBC,gBAAgB,EAAE,oBAAoB;EACtCC,mBAAmB,EAAE,oBAAoB;EACzCC,gBAAgB,EAAE,YAAY;EAC9BC,cAAc,EAAE,gBAAgB;EAChCC,WAAW,EAAE,oBAAoB;EACjCC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,gBAAgB;EACvBC,eAAe,EAAE,8CAA8C;EAC/DC,UAAU,EAAE,qBAAqB;EACjCC,eAAe,EAAE,4BAA4B;EAC7CC,yBAAyB,EAAE,mDAAmD;EAC9EC,aAAa,EAAE,aAAa;EAC5B;EACAC,WAAW,EAAE,MAAM;EACnBC,WAAW,EAAE,WAAW;EACxBC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE,WAAW;EACrBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,aAAa;EACxBC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE,mBAAmB;EACxCC,aAAa,EAAE,gBAAgB;EAC/BC,aAAa,EAAE,YAAY;EAC3BC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,+BAA+B;EAC7CC,OAAO,EAAE,eAAe;EACxBC,aAAa,EAAE,YAAY;EAC3BC,WAAW,EAAE,aAAa;EAC1BC,OAAO,EAAE,OAAO;EAChBC,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,eAAe,EAAE,YAAY;EAC7BC,iBAAiB,EAAE,QAAQ;EAC3BC,eAAe,EAAE;AACnB,CAAC;AAEM,MAAMC,oBAA8C,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAAEvD;AAAG,CAAC;;AAEpE;AACO,SAASyD,YAAYA,CAACC,MAAsB,EAAU;EAC3D,OAAO,CAACA,MAAM,IAAI,EAAE,EAAEC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,IAAI,EAAE;AAC7D","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PushManager = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
/**
|
|
9
|
+
* FCM push notifications — optional.
|
|
10
|
+
*
|
|
11
|
+
* Powered by the HOST app's `@react-native-firebase/messaging` native module,
|
|
12
|
+
* loaded via a dynamic require so the SDK itself stays pure JavaScript. Hosts
|
|
13
|
+
* without Firebase installed get a warn-once no-op; hosts that can't install
|
|
14
|
+
* it can still register a token manually through `RepzoWidget.setPushToken()`.
|
|
15
|
+
*
|
|
16
|
+
* Supports both RNFB API generations: the modular API (`getMessaging()` etc.,
|
|
17
|
+
* the only one left in v26+) and the legacy namespaced `messaging()` factory.
|
|
18
|
+
*
|
|
19
|
+
* The Workstation channel must have its push provider set to FCM — with
|
|
20
|
+
* OneSignal selected these registrations are stored but unused.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/** Version-agnostic view over the host's Firebase messaging module. */
|
|
24
|
+
|
|
25
|
+
function resolveMessaging() {
|
|
26
|
+
try {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
|
|
28
|
+
const mod = require('@react-native-firebase/messaging');
|
|
29
|
+
|
|
30
|
+
// Modular API — the only one in RNFB v26+ (the namespaced default export
|
|
31
|
+
// was removed). Every call takes the messaging instance as its first arg.
|
|
32
|
+
if (typeof mod?.getMessaging === 'function') {
|
|
33
|
+
const instance = mod.getMessaging();
|
|
34
|
+
return {
|
|
35
|
+
requestPermission: () => mod.requestPermission(instance),
|
|
36
|
+
registerDeviceForRemoteMessages: () => typeof mod.registerDeviceForRemoteMessages === 'function' ? mod.registerDeviceForRemoteMessages(instance) : Promise.resolve(),
|
|
37
|
+
getToken: () => mod.getToken(instance),
|
|
38
|
+
onTokenRefresh: cb => mod.onTokenRefresh(instance, cb),
|
|
39
|
+
onNotificationOpenedApp: cb => mod.onNotificationOpenedApp(instance, cb),
|
|
40
|
+
getInitialNotification: () => mod.getInitialNotification(instance)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Legacy namespaced API (RNFB <= v22): default export is a factory.
|
|
45
|
+
const factory = mod?.default ?? mod;
|
|
46
|
+
if (typeof factory !== 'function') return null;
|
|
47
|
+
const instance = factory();
|
|
48
|
+
if (!instance) return null;
|
|
49
|
+
return {
|
|
50
|
+
requestPermission: () => instance.requestPermission?.() ?? Promise.resolve(),
|
|
51
|
+
registerDeviceForRemoteMessages: () => typeof instance.registerDeviceForRemoteMessages === 'function' ? instance.registerDeviceForRemoteMessages() : Promise.resolve(),
|
|
52
|
+
getToken: () => instance.getToken(),
|
|
53
|
+
onTokenRefresh: cb => instance.onTokenRefresh?.(cb),
|
|
54
|
+
onNotificationOpenedApp: cb => instance.onNotificationOpenedApp?.(cb),
|
|
55
|
+
getInitialNotification: () => instance.getInitialNotification?.() ?? Promise.resolve(null)
|
|
56
|
+
};
|
|
57
|
+
} catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
class PushManager {
|
|
62
|
+
options = {};
|
|
63
|
+
listenersWired = false;
|
|
64
|
+
lastToken = null;
|
|
65
|
+
manualToken = null;
|
|
66
|
+
warnedMissingModule = false;
|
|
67
|
+
|
|
68
|
+
/** False while signed out — token refreshes must not register anywhere. */
|
|
69
|
+
active = false;
|
|
70
|
+
|
|
71
|
+
/** Registrations still on the wire; unregister() waits for them. */
|
|
72
|
+
inflight = new Set();
|
|
73
|
+
constructor(client, openConversation) {
|
|
74
|
+
this.client = client;
|
|
75
|
+
this.openConversation = openConversation;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Remember the boot options; actual work happens in start() post-init. */
|
|
79
|
+
configure(options) {
|
|
80
|
+
this.options = options ?? {};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Called after every successful session init — the widget token is valid
|
|
85
|
+
* from here. Re-running after a login switch re-registers the token under
|
|
86
|
+
* the new identity (the server upsert moves it).
|
|
87
|
+
*/
|
|
88
|
+
async start() {
|
|
89
|
+
this.active = true;
|
|
90
|
+
if (this.manualToken) {
|
|
91
|
+
await this.register(this.manualToken);
|
|
92
|
+
}
|
|
93
|
+
if (!this.options.enabled) return;
|
|
94
|
+
const messaging = resolveMessaging();
|
|
95
|
+
if (!messaging) {
|
|
96
|
+
if (!this.warnedMissingModule) {
|
|
97
|
+
this.warnedMissingModule = true;
|
|
98
|
+
console.warn('[repzo-widget] push is enabled but @react-native-firebase/messaging is not installed — ' + 'install it in the app, or provide a token via RepzoWidget.setPushToken()');
|
|
99
|
+
}
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
if (this.options.requestPermission !== false) {
|
|
104
|
+
// A denial isn't an error: getToken still succeeds, the OS just
|
|
105
|
+
// won't display anything until the user flips the setting.
|
|
106
|
+
await messaging.requestPermission();
|
|
107
|
+
}
|
|
108
|
+
} catch {
|
|
109
|
+
// Permission prompt unavailable (e.g. older Android) — keep going.
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Wired once and kept for the app's lifetime — taps must work even while
|
|
113
|
+
// the widget UI is closed, so there is deliberately no teardown.
|
|
114
|
+
if (!this.listenersWired) {
|
|
115
|
+
this.listenersWired = true;
|
|
116
|
+
this.wireTapHandlers(messaging);
|
|
117
|
+
messaging.onTokenRefresh(token => {
|
|
118
|
+
void this.register({
|
|
119
|
+
token
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// iOS needs the APNs registration before an FCM token exists; RNFB
|
|
125
|
+
// auto-registers by default, this covers hosts that turned that off.
|
|
126
|
+
try {
|
|
127
|
+
await messaging.registerDeviceForRemoteMessages();
|
|
128
|
+
} catch {
|
|
129
|
+
// Already registered, or simulator without push support — getToken
|
|
130
|
+
// decides whether that actually matters.
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const token = await messaging.getToken();
|
|
134
|
+
if (token) await this.register({
|
|
135
|
+
token
|
|
136
|
+
});
|
|
137
|
+
} catch (error) {
|
|
138
|
+
console.warn('[repzo-widget] push token fetch failed', error);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** Host-supplied token for apps without the Firebase module. */
|
|
143
|
+
async setManualToken(manual) {
|
|
144
|
+
this.manualToken = manual;
|
|
145
|
+
// Before boot (or after logout) it is only remembered; start() sends it.
|
|
146
|
+
if (this.active) await this.register(manual);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Called by logout with the session's token captured up front: the DELETE
|
|
151
|
+
* is authenticated with it explicitly and never triggers a re-init.
|
|
152
|
+
* Waits for an in-flight registration first so its token is not missed.
|
|
153
|
+
*/
|
|
154
|
+
async unregister(authToken) {
|
|
155
|
+
this.active = false;
|
|
156
|
+
await Promise.all([...this.inflight]);
|
|
157
|
+
const token = this.lastToken;
|
|
158
|
+
this.lastToken = null;
|
|
159
|
+
if (!token || !authToken) return;
|
|
160
|
+
try {
|
|
161
|
+
await this.client.removePushToken(token, {
|
|
162
|
+
authToken,
|
|
163
|
+
skipReauth: true
|
|
164
|
+
});
|
|
165
|
+
} catch (error) {
|
|
166
|
+
console.warn('[repzo-widget] push token removal failed', error);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
register(manual) {
|
|
170
|
+
if (!this.active) return Promise.resolve();
|
|
171
|
+
const run = this.client.registerPushToken({
|
|
172
|
+
token: manual.token,
|
|
173
|
+
platform: manual.platform ?? (_reactNative.Platform.OS === 'ios' ? 'ios' : 'android'),
|
|
174
|
+
bundleId: manual.bundleId ?? this.options.bundleId ?? undefined
|
|
175
|
+
}).then(() => {
|
|
176
|
+
this.lastToken = manual.token;
|
|
177
|
+
}, error => {
|
|
178
|
+
console.warn('[repzo-widget] push token registration failed', error);
|
|
179
|
+
}).finally(() => {
|
|
180
|
+
this.inflight.delete(run);
|
|
181
|
+
});
|
|
182
|
+
this.inflight.add(run);
|
|
183
|
+
return run;
|
|
184
|
+
}
|
|
185
|
+
wireTapHandlers(messaging) {
|
|
186
|
+
// Background → tapped: the app was alive, just not in front.
|
|
187
|
+
messaging.onNotificationOpenedApp(remoteMessage => {
|
|
188
|
+
this.handleTap(remoteMessage);
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
// Killed → tapped: the click that launched the app.
|
|
192
|
+
void messaging.getInitialNotification().then(remoteMessage => {
|
|
193
|
+
if (remoteMessage) this.handleTap(remoteMessage);
|
|
194
|
+
}).catch(() => {});
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** Only widget pushes are ours — host app notifications pass through. */
|
|
198
|
+
handleTap(remoteMessage) {
|
|
199
|
+
const data = remoteMessage?.data;
|
|
200
|
+
if (data?.document_type !== 'widget_message') return;
|
|
201
|
+
const conversationId = data?.document_id;
|
|
202
|
+
if (typeof conversationId === 'string' && conversationId) {
|
|
203
|
+
this.openConversation(conversationId);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.PushManager = PushManager;
|
|
208
|
+
//# sourceMappingURL=push-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","resolveMessaging","mod","getMessaging","instance","requestPermission","registerDeviceForRemoteMessages","Promise","resolve","getToken","onTokenRefresh","cb","onNotificationOpenedApp","getInitialNotification","factory","default","PushManager","options","listenersWired","lastToken","manualToken","warnedMissingModule","active","inflight","Set","constructor","client","openConversation","configure","start","register","enabled","messaging","console","warn","wireTapHandlers","token","error","setManualToken","manual","unregister","authToken","all","removePushToken","skipReauth","run","registerPushToken","platform","Platform","OS","bundleId","undefined","then","finally","delete","add","remoteMessage","handleTap","catch","data","document_type","conversationId","document_id","exports"],"sourceRoot":"../../../src","sources":["push/push-notifications.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useWidgetState = useWidgetState;
|
|
7
|
+
exports.useWidgetStore = useWidgetStore;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _controller = require("../controller.js");
|
|
10
|
+
/**
|
|
11
|
+
* React binding for the store. The store lives in the controller singleton, so
|
|
12
|
+
* the widget keeps its session, SSE stream and unread count even when no
|
|
13
|
+
* component is mounted; this hook only subscribes to it.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
function useWidgetState() {
|
|
17
|
+
const store = _controller.controller.store;
|
|
18
|
+
return (0, _react.useSyncExternalStore)(store.subscribe, store.getState, store.getState);
|
|
19
|
+
}
|
|
20
|
+
function useWidgetStore() {
|
|
21
|
+
return _controller.controller.store;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=use-widget-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_controller","useWidgetState","store","controller","useSyncExternalStore","subscribe","getState","useWidgetStore"],"sourceRoot":"../../../src","sources":["state/use-widget-state.ts"],"mappings":";;;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AARA;AACA;AACA;AACA;AACA;;AAQO,SAASE,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,KAAK,GAAGC,sBAAU,CAACD,KAAK;EAC9B,OAAO,IAAAE,2BAAoB,EAACF,KAAK,CAACG,SAAS,EAAEH,KAAK,CAACI,QAAQ,EAAEJ,KAAK,CAACI,QAAQ,CAAC;AAC9E;AAEO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,OAAOJ,sBAAU,CAACD,KAAK;AACzB","ignoreList":[]}
|