@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,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Translations bundled with the SDK.
|
|
5
|
+
*
|
|
6
|
+
* A workspace can still override any key from the dashboard — those win. These
|
|
7
|
+
* exist so a widget running in a supported language is usable out of the box,
|
|
8
|
+
* instead of falling back to English for every string an admin has not filled
|
|
9
|
+
* in by hand.
|
|
10
|
+
*
|
|
11
|
+
* Keys mirror `DEFAULT_LABELS` in `./i18n`; `{token}` placeholders must be kept
|
|
12
|
+
* so word order stays under the translator's control.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const ar = {
|
|
16
|
+
back: 'رجوع',
|
|
17
|
+
loading: 'جارٍ التحميل...',
|
|
18
|
+
loadEarlier: 'تحميل الرسائل السابقة',
|
|
19
|
+
emptyConversation: 'أرسل رسالة لبدء المحادثة',
|
|
20
|
+
messagePlaceholder: 'اكتب رسالة...',
|
|
21
|
+
attachFile: 'إرفاق ملف',
|
|
22
|
+
failedToSend: 'تعذر الإرسال',
|
|
23
|
+
thinking: 'يكتب',
|
|
24
|
+
messages: 'الرسائل',
|
|
25
|
+
noMessages: 'لا توجد رسائل بعد',
|
|
26
|
+
historyHidden: 'سجل المحادثات مخفي',
|
|
27
|
+
startBelow: 'ابدأ محادثة من الأسفل',
|
|
28
|
+
preChatTitle: 'قبل أن نبدأ',
|
|
29
|
+
preChatSubtitle: 'أخبرنا قليلاً عنك حتى نتمكن من مساعدتك بشكل أفضل.',
|
|
30
|
+
preChatSkip: 'تخطٍ',
|
|
31
|
+
preChatSubmit: 'ابدأ المحادثة',
|
|
32
|
+
viewPreviousConversations: 'عرض المحادثات السابقة',
|
|
33
|
+
homeRecentTitle: 'الأحدث',
|
|
34
|
+
homeViewAllCount: 'عرض الكل ({count})',
|
|
35
|
+
homeNoConversations: 'ستظهر محادثاتك هنا',
|
|
36
|
+
homeStatusOnline: 'نحن متصلون',
|
|
37
|
+
homeStatusAway: 'نحن غير متصلين',
|
|
38
|
+
unreadBadge: '{count} غير مقروءة',
|
|
39
|
+
team: 'الفريق',
|
|
40
|
+
home: 'الرئيسية',
|
|
41
|
+
close: 'إغلاق',
|
|
42
|
+
retry: 'إعادة المحاولة',
|
|
43
|
+
connectionError: 'تعذر تحميل المحادثة. يرجى المحاولة مرة أخرى.',
|
|
44
|
+
connecting: 'جارٍ توصيلك بالفريق',
|
|
45
|
+
chatUnavailable: 'المحادثة غير متاحة حاليًا.',
|
|
46
|
+
identityVerificationError: 'تعذر التحقق من حسابك. يرجى تسجيل الدخول مرة أخرى.',
|
|
47
|
+
widgetCrashed: 'حدث خطأ ما.',
|
|
48
|
+
// Kept short: these sit in a tight row beside the agent's name.
|
|
49
|
+
timeJustNow: 'الآن',
|
|
50
|
+
timeMinutes: '{count} د',
|
|
51
|
+
timeHours: '{count} س',
|
|
52
|
+
timeDays: '{count} ي',
|
|
53
|
+
timeMonths: '{count} شهر',
|
|
54
|
+
timeYears: '{count} سنة',
|
|
55
|
+
today: 'اليوم',
|
|
56
|
+
yesterday: 'أمس',
|
|
57
|
+
conversationUpdated: 'تم تحديث المحادثة',
|
|
58
|
+
procedureSend: 'إرسال التفاصيل',
|
|
59
|
+
procedureSent: 'تم الإرسال',
|
|
60
|
+
fieldRequired: '{field} مطلوب',
|
|
61
|
+
invalidEmail: 'أدخل بريدًا إلكترونيًا صالحًا',
|
|
62
|
+
working: 'جارٍ العمل...',
|
|
63
|
+
outboundTitle: 'تحديث جديد',
|
|
64
|
+
outboundCta: 'اعرف المزيد',
|
|
65
|
+
dismiss: 'تجاهل',
|
|
66
|
+
blockService: 'خدمة',
|
|
67
|
+
blockProduct: 'منتج',
|
|
68
|
+
blockChooseTime: 'اختر وقتًا',
|
|
69
|
+
blockProfessional: 'الموظف',
|
|
70
|
+
blockPriceOffer: 'عرض سعر'
|
|
71
|
+
};
|
|
72
|
+
export const BUNDLED_TRANSLATIONS = {
|
|
73
|
+
ar
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/** `ar-JO`, `ar_SA` and `AR` all resolve to the `ar` bundle. */
|
|
77
|
+
export function baseLanguage(locale) {
|
|
78
|
+
return (locale ?? '').split(/[-_]/)[0]?.toLowerCase() ?? '';
|
|
79
|
+
}
|
|
80
|
+
//# 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","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;AAED,OAAO,MAAMC,oBAA8C,GAAG;EAAEvD;AAAG,CAAC;;AAEpE;AACA,OAAO,SAASwD,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":"module"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FCM push notifications — optional.
|
|
5
|
+
*
|
|
6
|
+
* Powered by the HOST app's `@react-native-firebase/messaging` native module,
|
|
7
|
+
* loaded via a dynamic require so the SDK itself stays pure JavaScript. Hosts
|
|
8
|
+
* without Firebase installed get a warn-once no-op; hosts that can't install
|
|
9
|
+
* it can still register a token manually through `RepzoWidget.setPushToken()`.
|
|
10
|
+
*
|
|
11
|
+
* Supports both RNFB API generations: the modular API (`getMessaging()` etc.,
|
|
12
|
+
* the only one left in v26+) and the legacy namespaced `messaging()` factory.
|
|
13
|
+
*
|
|
14
|
+
* The Workstation channel must have its push provider set to FCM — with
|
|
15
|
+
* OneSignal selected these registrations are stored but unused.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { Platform } from 'react-native';
|
|
19
|
+
|
|
20
|
+
/** Version-agnostic view over the host's Firebase messaging module. */
|
|
21
|
+
|
|
22
|
+
function resolveMessaging() {
|
|
23
|
+
try {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
|
|
25
|
+
const mod = require('@react-native-firebase/messaging');
|
|
26
|
+
|
|
27
|
+
// Modular API — the only one in RNFB v26+ (the namespaced default export
|
|
28
|
+
// was removed). Every call takes the messaging instance as its first arg.
|
|
29
|
+
if (typeof mod?.getMessaging === 'function') {
|
|
30
|
+
const instance = mod.getMessaging();
|
|
31
|
+
return {
|
|
32
|
+
requestPermission: () => mod.requestPermission(instance),
|
|
33
|
+
registerDeviceForRemoteMessages: () => typeof mod.registerDeviceForRemoteMessages === 'function' ? mod.registerDeviceForRemoteMessages(instance) : Promise.resolve(),
|
|
34
|
+
getToken: () => mod.getToken(instance),
|
|
35
|
+
onTokenRefresh: cb => mod.onTokenRefresh(instance, cb),
|
|
36
|
+
onNotificationOpenedApp: cb => mod.onNotificationOpenedApp(instance, cb),
|
|
37
|
+
getInitialNotification: () => mod.getInitialNotification(instance)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Legacy namespaced API (RNFB <= v22): default export is a factory.
|
|
42
|
+
const factory = mod?.default ?? mod;
|
|
43
|
+
if (typeof factory !== 'function') return null;
|
|
44
|
+
const instance = factory();
|
|
45
|
+
if (!instance) return null;
|
|
46
|
+
return {
|
|
47
|
+
requestPermission: () => instance.requestPermission?.() ?? Promise.resolve(),
|
|
48
|
+
registerDeviceForRemoteMessages: () => typeof instance.registerDeviceForRemoteMessages === 'function' ? instance.registerDeviceForRemoteMessages() : Promise.resolve(),
|
|
49
|
+
getToken: () => instance.getToken(),
|
|
50
|
+
onTokenRefresh: cb => instance.onTokenRefresh?.(cb),
|
|
51
|
+
onNotificationOpenedApp: cb => instance.onNotificationOpenedApp?.(cb),
|
|
52
|
+
getInitialNotification: () => instance.getInitialNotification?.() ?? Promise.resolve(null)
|
|
53
|
+
};
|
|
54
|
+
} catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export class PushManager {
|
|
59
|
+
options = {};
|
|
60
|
+
listenersWired = false;
|
|
61
|
+
lastToken = null;
|
|
62
|
+
manualToken = null;
|
|
63
|
+
warnedMissingModule = false;
|
|
64
|
+
|
|
65
|
+
/** False while signed out — token refreshes must not register anywhere. */
|
|
66
|
+
active = false;
|
|
67
|
+
|
|
68
|
+
/** Registrations still on the wire; unregister() waits for them. */
|
|
69
|
+
inflight = new Set();
|
|
70
|
+
constructor(client, openConversation) {
|
|
71
|
+
this.client = client;
|
|
72
|
+
this.openConversation = openConversation;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Remember the boot options; actual work happens in start() post-init. */
|
|
76
|
+
configure(options) {
|
|
77
|
+
this.options = options ?? {};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Called after every successful session init — the widget token is valid
|
|
82
|
+
* from here. Re-running after a login switch re-registers the token under
|
|
83
|
+
* the new identity (the server upsert moves it).
|
|
84
|
+
*/
|
|
85
|
+
async start() {
|
|
86
|
+
this.active = true;
|
|
87
|
+
if (this.manualToken) {
|
|
88
|
+
await this.register(this.manualToken);
|
|
89
|
+
}
|
|
90
|
+
if (!this.options.enabled) return;
|
|
91
|
+
const messaging = resolveMessaging();
|
|
92
|
+
if (!messaging) {
|
|
93
|
+
if (!this.warnedMissingModule) {
|
|
94
|
+
this.warnedMissingModule = true;
|
|
95
|
+
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()');
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
if (this.options.requestPermission !== false) {
|
|
101
|
+
// A denial isn't an error: getToken still succeeds, the OS just
|
|
102
|
+
// won't display anything until the user flips the setting.
|
|
103
|
+
await messaging.requestPermission();
|
|
104
|
+
}
|
|
105
|
+
} catch {
|
|
106
|
+
// Permission prompt unavailable (e.g. older Android) — keep going.
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Wired once and kept for the app's lifetime — taps must work even while
|
|
110
|
+
// the widget UI is closed, so there is deliberately no teardown.
|
|
111
|
+
if (!this.listenersWired) {
|
|
112
|
+
this.listenersWired = true;
|
|
113
|
+
this.wireTapHandlers(messaging);
|
|
114
|
+
messaging.onTokenRefresh(token => {
|
|
115
|
+
void this.register({
|
|
116
|
+
token
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// iOS needs the APNs registration before an FCM token exists; RNFB
|
|
122
|
+
// auto-registers by default, this covers hosts that turned that off.
|
|
123
|
+
try {
|
|
124
|
+
await messaging.registerDeviceForRemoteMessages();
|
|
125
|
+
} catch {
|
|
126
|
+
// Already registered, or simulator without push support — getToken
|
|
127
|
+
// decides whether that actually matters.
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
const token = await messaging.getToken();
|
|
131
|
+
if (token) await this.register({
|
|
132
|
+
token
|
|
133
|
+
});
|
|
134
|
+
} catch (error) {
|
|
135
|
+
console.warn('[repzo-widget] push token fetch failed', error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** Host-supplied token for apps without the Firebase module. */
|
|
140
|
+
async setManualToken(manual) {
|
|
141
|
+
this.manualToken = manual;
|
|
142
|
+
// Before boot (or after logout) it is only remembered; start() sends it.
|
|
143
|
+
if (this.active) await this.register(manual);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Called by logout with the session's token captured up front: the DELETE
|
|
148
|
+
* is authenticated with it explicitly and never triggers a re-init.
|
|
149
|
+
* Waits for an in-flight registration first so its token is not missed.
|
|
150
|
+
*/
|
|
151
|
+
async unregister(authToken) {
|
|
152
|
+
this.active = false;
|
|
153
|
+
await Promise.all([...this.inflight]);
|
|
154
|
+
const token = this.lastToken;
|
|
155
|
+
this.lastToken = null;
|
|
156
|
+
if (!token || !authToken) return;
|
|
157
|
+
try {
|
|
158
|
+
await this.client.removePushToken(token, {
|
|
159
|
+
authToken,
|
|
160
|
+
skipReauth: true
|
|
161
|
+
});
|
|
162
|
+
} catch (error) {
|
|
163
|
+
console.warn('[repzo-widget] push token removal failed', error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
register(manual) {
|
|
167
|
+
if (!this.active) return Promise.resolve();
|
|
168
|
+
const run = this.client.registerPushToken({
|
|
169
|
+
token: manual.token,
|
|
170
|
+
platform: manual.platform ?? (Platform.OS === 'ios' ? 'ios' : 'android'),
|
|
171
|
+
bundleId: manual.bundleId ?? this.options.bundleId ?? undefined
|
|
172
|
+
}).then(() => {
|
|
173
|
+
this.lastToken = manual.token;
|
|
174
|
+
}, error => {
|
|
175
|
+
console.warn('[repzo-widget] push token registration failed', error);
|
|
176
|
+
}).finally(() => {
|
|
177
|
+
this.inflight.delete(run);
|
|
178
|
+
});
|
|
179
|
+
this.inflight.add(run);
|
|
180
|
+
return run;
|
|
181
|
+
}
|
|
182
|
+
wireTapHandlers(messaging) {
|
|
183
|
+
// Background → tapped: the app was alive, just not in front.
|
|
184
|
+
messaging.onNotificationOpenedApp(remoteMessage => {
|
|
185
|
+
this.handleTap(remoteMessage);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
// Killed → tapped: the click that launched the app.
|
|
189
|
+
void messaging.getInitialNotification().then(remoteMessage => {
|
|
190
|
+
if (remoteMessage) this.handleTap(remoteMessage);
|
|
191
|
+
}).catch(() => {});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/** Only widget pushes are ours — host app notifications pass through. */
|
|
195
|
+
handleTap(remoteMessage) {
|
|
196
|
+
const data = remoteMessage?.data;
|
|
197
|
+
if (data?.document_type !== 'widget_message') return;
|
|
198
|
+
const conversationId = data?.document_id;
|
|
199
|
+
if (typeof conversationId === 'string' && conversationId) {
|
|
200
|
+
this.openConversation(conversationId);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=push-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","resolveMessaging","mod","require","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","OS","bundleId","undefined","then","finally","delete","add","remoteMessage","handleTap","catch","data","document_type","conversationId","document_id"],"sourceRoot":"../../../src","sources":["push/push-notifications.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* React binding for the store. The store lives in the controller singleton, so
|
|
5
|
+
* the widget keeps its session, SSE stream and unread count even when no
|
|
6
|
+
* component is mounted; this hook only subscribes to it.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { useSyncExternalStore } from 'react';
|
|
10
|
+
import { controller } from "../controller.js";
|
|
11
|
+
export function useWidgetState() {
|
|
12
|
+
const store = controller.store;
|
|
13
|
+
return useSyncExternalStore(store.subscribe, store.getState, store.getState);
|
|
14
|
+
}
|
|
15
|
+
export function useWidgetStore() {
|
|
16
|
+
return controller.store;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=use-widget-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSyncExternalStore","controller","useWidgetState","store","subscribe","getState","useWidgetStore"],"sourceRoot":"../../../src","sources":["state/use-widget-state.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,UAAU,QAAQ,kBAAe;AAI1C,OAAO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,KAAK,GAAGF,UAAU,CAACE,KAAK;EAC9B,OAAOH,oBAAoB,CAACG,KAAK,CAACC,SAAS,EAAED,KAAK,CAACE,QAAQ,EAAEF,KAAK,CAACE,QAAQ,CAAC;AAC9E;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,OAAOL,UAAU,CAACE,KAAK;AACzB","ignoreList":[]}
|