@knocklabs/react-core 0.6.13 → 0.6.14-canary.2

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.
Files changed (221) hide show
  1. package/package.json +5 -6
  2. package/src/modules/feed/context/KnockFeedProvider.tsx +2 -7
  3. package/src/modules/feed/hooks/useNotificationStore.ts +15 -13
  4. package/src/modules/feed/hooks/useNotifications.ts +0 -4
  5. package/CHANGELOG.md +0 -477
  6. package/dist/cjs/index.js +0 -2
  7. package/dist/cjs/index.js.map +0 -1
  8. package/dist/cjs/modules/core/constants.js +0 -2
  9. package/dist/cjs/modules/core/constants.js.map +0 -1
  10. package/dist/cjs/modules/core/context/KnockProvider.js +0 -2
  11. package/dist/cjs/modules/core/context/KnockProvider.js.map +0 -1
  12. package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js +0 -2
  13. package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js.map +0 -1
  14. package/dist/cjs/modules/core/hooks/useStableOptions.js +0 -2
  15. package/dist/cjs/modules/core/hooks/useStableOptions.js.map +0 -1
  16. package/dist/cjs/modules/core/utils.js +0 -2
  17. package/dist/cjs/modules/core/utils.js.map +0 -1
  18. package/dist/cjs/modules/feed/context/KnockFeedProvider.js +0 -2
  19. package/dist/cjs/modules/feed/context/KnockFeedProvider.js.map +0 -1
  20. package/dist/cjs/modules/feed/hooks/useFeedSettings.js +0 -2
  21. package/dist/cjs/modules/feed/hooks/useFeedSettings.js.map +0 -1
  22. package/dist/cjs/modules/feed/hooks/useNotificationStore.js +0 -2
  23. package/dist/cjs/modules/feed/hooks/useNotificationStore.js.map +0 -1
  24. package/dist/cjs/modules/feed/hooks/useNotifications.js +0 -2
  25. package/dist/cjs/modules/feed/hooks/useNotifications.js.map +0 -1
  26. package/dist/cjs/modules/guide/context/KnockGuideProvider.js +0 -2
  27. package/dist/cjs/modules/guide/context/KnockGuideProvider.js.map +0 -1
  28. package/dist/cjs/modules/guide/hooks/useGuide.js +0 -2
  29. package/dist/cjs/modules/guide/hooks/useGuide.js.map +0 -1
  30. package/dist/cjs/modules/guide/hooks/useGuideContext.js +0 -2
  31. package/dist/cjs/modules/guide/hooks/useGuideContext.js.map +0 -1
  32. package/dist/cjs/modules/i18n/context/KnockI18nProvider.js +0 -2
  33. package/dist/cjs/modules/i18n/context/KnockI18nProvider.js.map +0 -1
  34. package/dist/cjs/modules/i18n/hooks/useTranslations.js +0 -2
  35. package/dist/cjs/modules/i18n/hooks/useTranslations.js.map +0 -1
  36. package/dist/cjs/modules/i18n/languages/de.js +0 -2
  37. package/dist/cjs/modules/i18n/languages/de.js.map +0 -1
  38. package/dist/cjs/modules/i18n/languages/en.js +0 -2
  39. package/dist/cjs/modules/i18n/languages/en.js.map +0 -1
  40. package/dist/cjs/modules/i18n/languages/index.js +0 -2
  41. package/dist/cjs/modules/i18n/languages/index.js.map +0 -1
  42. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js +0 -2
  43. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js.map +0 -1
  44. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js +0 -2
  45. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js.map +0 -1
  46. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js +0 -2
  47. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js.map +0 -1
  48. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js +0 -2
  49. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js.map +0 -1
  50. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js +0 -2
  51. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js.map +0 -1
  52. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js +0 -2
  53. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js.map +0 -1
  54. package/dist/cjs/modules/slack/context/KnockSlackProvider.js +0 -2
  55. package/dist/cjs/modules/slack/context/KnockSlackProvider.js.map +0 -1
  56. package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js +0 -2
  57. package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js.map +0 -1
  58. package/dist/cjs/modules/slack/hooks/useSlackAuth.js +0 -2
  59. package/dist/cjs/modules/slack/hooks/useSlackAuth.js.map +0 -1
  60. package/dist/cjs/modules/slack/hooks/useSlackChannels.js +0 -2
  61. package/dist/cjs/modules/slack/hooks/useSlackChannels.js.map +0 -1
  62. package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js +0 -2
  63. package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js.map +0 -1
  64. package/dist/esm/index.mjs +0 -66
  65. package/dist/esm/index.mjs.map +0 -1
  66. package/dist/esm/modules/core/constants.mjs +0 -5
  67. package/dist/esm/modules/core/constants.mjs.map +0 -1
  68. package/dist/esm/modules/core/context/KnockProvider.mjs +0 -35
  69. package/dist/esm/modules/core/context/KnockProvider.mjs.map +0 -1
  70. package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs +0 -29
  71. package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs.map +0 -1
  72. package/dist/esm/modules/core/hooks/useStableOptions.mjs +0 -13
  73. package/dist/esm/modules/core/hooks/useStableOptions.mjs.map +0 -1
  74. package/dist/esm/modules/core/utils.mjs +0 -49
  75. package/dist/esm/modules/core/utils.mjs.map +0 -1
  76. package/dist/esm/modules/feed/context/KnockFeedProvider.mjs +0 -37
  77. package/dist/esm/modules/feed/context/KnockFeedProvider.mjs.map +0 -1
  78. package/dist/esm/modules/feed/hooks/useFeedSettings.mjs +0 -23
  79. package/dist/esm/modules/feed/hooks/useFeedSettings.mjs.map +0 -1
  80. package/dist/esm/modules/feed/hooks/useNotificationStore.mjs +0 -12
  81. package/dist/esm/modules/feed/hooks/useNotificationStore.mjs.map +0 -1
  82. package/dist/esm/modules/feed/hooks/useNotifications.mjs +0 -34
  83. package/dist/esm/modules/feed/hooks/useNotifications.mjs.map +0 -1
  84. package/dist/esm/modules/guide/context/KnockGuideProvider.mjs +0 -33
  85. package/dist/esm/modules/guide/context/KnockGuideProvider.mjs.map +0 -1
  86. package/dist/esm/modules/guide/hooks/useGuide.mjs +0 -21
  87. package/dist/esm/modules/guide/hooks/useGuide.mjs.map +0 -1
  88. package/dist/esm/modules/guide/hooks/useGuideContext.mjs +0 -12
  89. package/dist/esm/modules/guide/hooks/useGuideContext.mjs.map +0 -1
  90. package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs +0 -11
  91. package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs.map +0 -1
  92. package/dist/esm/modules/i18n/hooks/useTranslations.mjs +0 -17
  93. package/dist/esm/modules/i18n/hooks/useTranslations.mjs.map +0 -1
  94. package/dist/esm/modules/i18n/languages/de.mjs +0 -39
  95. package/dist/esm/modules/i18n/languages/de.mjs.map +0 -1
  96. package/dist/esm/modules/i18n/languages/en.mjs +0 -51
  97. package/dist/esm/modules/i18n/languages/en.mjs.map +0 -1
  98. package/dist/esm/modules/i18n/languages/index.mjs +0 -10
  99. package/dist/esm/modules/i18n/languages/index.mjs.map +0 -1
  100. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs +0 -48
  101. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs.map +0 -1
  102. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs +0 -78
  103. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs.map +0 -1
  104. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs +0 -53
  105. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs.map +0 -1
  106. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs +0 -41
  107. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs.map +0 -1
  108. package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs +0 -38
  109. package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs.map +0 -1
  110. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs +0 -51
  111. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs.map +0 -1
  112. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs +0 -49
  113. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs.map +0 -1
  114. package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs +0 -78
  115. package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs.map +0 -1
  116. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs +0 -68
  117. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs.map +0 -1
  118. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs +0 -52
  119. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs.map +0 -1
  120. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs +0 -47
  121. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs.map +0 -1
  122. package/dist/types/index.d.ts +0 -8
  123. package/dist/types/index.d.ts.map +0 -1
  124. package/dist/types/interfaces.d.ts +0 -5
  125. package/dist/types/interfaces.d.ts.map +0 -1
  126. package/dist/types/modules/core/constants.d.ts +0 -8
  127. package/dist/types/modules/core/constants.d.ts.map +0 -1
  128. package/dist/types/modules/core/context/KnockProvider.d.ts +0 -20
  129. package/dist/types/modules/core/context/KnockProvider.d.ts.map +0 -1
  130. package/dist/types/modules/core/context/index.d.ts +0 -2
  131. package/dist/types/modules/core/context/index.d.ts.map +0 -1
  132. package/dist/types/modules/core/hooks/index.d.ts +0 -3
  133. package/dist/types/modules/core/hooks/index.d.ts.map +0 -1
  134. package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts +0 -5
  135. package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts.map +0 -1
  136. package/dist/types/modules/core/hooks/useStableOptions.d.ts +0 -2
  137. package/dist/types/modules/core/hooks/useStableOptions.d.ts.map +0 -1
  138. package/dist/types/modules/core/index.d.ts +0 -5
  139. package/dist/types/modules/core/index.d.ts.map +0 -1
  140. package/dist/types/modules/core/utils.d.ts +0 -24
  141. package/dist/types/modules/core/utils.d.ts.map +0 -1
  142. package/dist/types/modules/feed/context/KnockFeedProvider.d.ts +0 -19
  143. package/dist/types/modules/feed/context/KnockFeedProvider.d.ts.map +0 -1
  144. package/dist/types/modules/feed/context/index.d.ts +0 -2
  145. package/dist/types/modules/feed/context/index.d.ts.map +0 -1
  146. package/dist/types/modules/feed/hooks/index.d.ts +0 -4
  147. package/dist/types/modules/feed/hooks/index.d.ts.map +0 -1
  148. package/dist/types/modules/feed/hooks/useFeedSettings.d.ts +0 -12
  149. package/dist/types/modules/feed/hooks/useFeedSettings.d.ts.map +0 -1
  150. package/dist/types/modules/feed/hooks/useNotificationStore.d.ts +0 -35
  151. package/dist/types/modules/feed/hooks/useNotificationStore.d.ts.map +0 -1
  152. package/dist/types/modules/feed/hooks/useNotifications.d.ts +0 -4
  153. package/dist/types/modules/feed/hooks/useNotifications.d.ts.map +0 -1
  154. package/dist/types/modules/feed/index.d.ts +0 -3
  155. package/dist/types/modules/feed/index.d.ts.map +0 -1
  156. package/dist/types/modules/guide/context/KnockGuideProvider.d.ts +0 -19
  157. package/dist/types/modules/guide/context/KnockGuideProvider.d.ts.map +0 -1
  158. package/dist/types/modules/guide/context/index.d.ts +0 -2
  159. package/dist/types/modules/guide/context/index.d.ts.map +0 -1
  160. package/dist/types/modules/guide/hooks/index.d.ts +0 -2
  161. package/dist/types/modules/guide/hooks/index.d.ts.map +0 -1
  162. package/dist/types/modules/guide/hooks/useGuide.d.ts +0 -9
  163. package/dist/types/modules/guide/hooks/useGuide.d.ts.map +0 -1
  164. package/dist/types/modules/guide/hooks/useGuideContext.d.ts +0 -7
  165. package/dist/types/modules/guide/hooks/useGuideContext.d.ts.map +0 -1
  166. package/dist/types/modules/guide/index.d.ts +0 -3
  167. package/dist/types/modules/guide/index.d.ts.map +0 -1
  168. package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts +0 -8
  169. package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts.map +0 -1
  170. package/dist/types/modules/i18n/context/index.d.ts +0 -2
  171. package/dist/types/modules/i18n/context/index.d.ts.map +0 -1
  172. package/dist/types/modules/i18n/hooks/index.d.ts +0 -2
  173. package/dist/types/modules/i18n/hooks/index.d.ts.map +0 -1
  174. package/dist/types/modules/i18n/hooks/useTranslations.d.ts +0 -5
  175. package/dist/types/modules/i18n/hooks/useTranslations.d.ts.map +0 -1
  176. package/dist/types/modules/i18n/index.d.ts +0 -4
  177. package/dist/types/modules/i18n/index.d.ts.map +0 -1
  178. package/dist/types/modules/i18n/languages/de.d.ts +0 -4
  179. package/dist/types/modules/i18n/languages/de.d.ts.map +0 -1
  180. package/dist/types/modules/i18n/languages/en.d.ts +0 -4
  181. package/dist/types/modules/i18n/languages/en.d.ts.map +0 -1
  182. package/dist/types/modules/i18n/languages/index.d.ts +0 -54
  183. package/dist/types/modules/i18n/languages/index.d.ts.map +0 -1
  184. package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts +0 -20
  185. package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts.map +0 -1
  186. package/dist/types/modules/ms-teams/context/index.d.ts +0 -2
  187. package/dist/types/modules/ms-teams/context/index.d.ts.map +0 -1
  188. package/dist/types/modules/ms-teams/hooks/index.d.ts +0 -6
  189. package/dist/types/modules/ms-teams/hooks/index.d.ts.map +0 -1
  190. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts +0 -15
  191. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts.map +0 -1
  192. package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts +0 -7
  193. package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts.map +0 -1
  194. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts +0 -14
  195. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts.map +0 -1
  196. package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts +0 -13
  197. package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts.map +0 -1
  198. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts +0 -13
  199. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts.map +0 -1
  200. package/dist/types/modules/ms-teams/index.d.ts +0 -4
  201. package/dist/types/modules/ms-teams/index.d.ts.map +0 -1
  202. package/dist/types/modules/ms-teams/interfaces.d.ts +0 -11
  203. package/dist/types/modules/ms-teams/interfaces.d.ts.map +0 -1
  204. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts +0 -30
  205. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts.map +0 -1
  206. package/dist/types/modules/slack/context/index.d.ts +0 -2
  207. package/dist/types/modules/slack/context/index.d.ts.map +0 -1
  208. package/dist/types/modules/slack/hooks/index.d.ts +0 -5
  209. package/dist/types/modules/slack/hooks/index.d.ts.map +0 -1
  210. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts +0 -15
  211. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts.map +0 -1
  212. package/dist/types/modules/slack/hooks/useSlackAuth.d.ts +0 -11
  213. package/dist/types/modules/slack/hooks/useSlackAuth.d.ts.map +0 -1
  214. package/dist/types/modules/slack/hooks/useSlackChannels.d.ts +0 -13
  215. package/dist/types/modules/slack/hooks/useSlackChannels.d.ts.map +0 -1
  216. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts +0 -13
  217. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts.map +0 -1
  218. package/dist/types/modules/slack/index.d.ts +0 -4
  219. package/dist/types/modules/slack/index.d.ts.map +0 -1
  220. package/dist/types/modules/slack/interfaces.d.ts +0 -10
  221. package/dist/types/modules/slack/interfaces.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStableOptions.mjs","sources":["../../../../../src/modules/core/hooks/useStableOptions.ts"],"sourcesContent":["import fastDeepEqual from \"fast-deep-equal\";\nimport { useMemo, useRef } from \"react\";\n\nexport default function useStableOptions<T>(options: T): T {\n const optionsRef = useRef<T>();\n\n return useMemo(() => {\n const currentOptions = optionsRef.current;\n\n if (currentOptions && fastDeepEqual(options, currentOptions)) {\n return currentOptions;\n }\n\n optionsRef.current = options;\n return options;\n }, [options]);\n}\n"],"names":["useStableOptions","options","optionsRef","useRef","useMemo","currentOptions","current","fastDeepEqual"],"mappings":";;AAGA,SAAwBA,EAAoBC,GAAe;AACzD,QAAMC,IAAaC,EAAU;AAE7B,SAAOC,EAAQ,MAAM;AACnB,UAAMC,IAAiBH,EAAWI;AAElC,WAAID,KAAkBE,EAAcN,GAASI,CAAc,IAClDA,KAGTH,EAAWI,UAAUL,GACdA;AAAAA,EAAAA,GACN,CAACA,CAAO,CAAC;AACd;"}
@@ -1,49 +0,0 @@
1
- import { parseISO as a, intlFormatDistance as i } from "date-fns";
2
- function u(e) {
3
- return e > 9 ? "9+" : e;
4
- }
5
- function l(e, t = {}) {
6
- try {
7
- const r = a(e);
8
- return i(r, /* @__PURE__ */ new Date(), {
9
- locale: t.locale
10
- });
11
- } catch {
12
- return e;
13
- }
14
- }
15
- function d(e) {
16
- return e.charAt(0).toUpperCase() + e.slice(1);
17
- }
18
- function f(e, t) {
19
- return e !== void 0 ? e : t;
20
- }
21
- function m(e, t, r = {}) {
22
- return [e, t, r.source, r.tenant, r.has_tenant, r.archived].filter((n) => n != null).join("-");
23
- }
24
- function s({
25
- knockSlackChannelId: e,
26
- tenantId: t,
27
- connectionStatus: r,
28
- errorLabel: n
29
- }) {
30
- return [e, t, r, n].filter((o) => o != null).join("-");
31
- }
32
- function v({
33
- knockMsTeamsChannelId: e,
34
- tenantId: t,
35
- connectionStatus: r,
36
- errorLabel: n
37
- }) {
38
- return [e, t, r, n].filter((o) => o != null).join("-");
39
- }
40
- export {
41
- m as feedProviderKey,
42
- u as formatBadgeCount,
43
- l as formatTimestamp,
44
- v as msTeamsProviderKey,
45
- f as renderNodeOrFallback,
46
- s as slackProviderKey,
47
- d as toSentenceCase
48
- };
49
- //# sourceMappingURL=utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../src/modules/core/utils.ts"],"sourcesContent":["import Knock, { FeedClientOptions } from \"@knocklabs/client\";\nimport { intlFormatDistance, parseISO } from \"date-fns\";\nimport { ReactNode } from \"react\";\n\nexport function formatBadgeCount(count: number): string | number {\n return count > 9 ? \"9+\" : count;\n}\n\ntype FormatTimestampOptions = {\n locale?: string | string[];\n};\n\nexport function formatTimestamp(\n ts: string,\n options: FormatTimestampOptions = {},\n) {\n try {\n const parsedTs = parseISO(ts);\n const formatted = intlFormatDistance(parsedTs, new Date(), {\n locale: options.locale,\n });\n\n return formatted;\n } catch (_e) {\n return ts;\n }\n}\n\nexport function toSentenceCase(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function renderNodeOrFallback(node: ReactNode, fallback: ReactNode) {\n return node !== undefined ? node : fallback;\n}\n\n/*\n Used to build a consistent key for the KnockFeedProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function feedProviderKey(\n userId: Knock[\"userId\"],\n feedId: string,\n options: FeedClientOptions = {},\n) {\n return [\n userId,\n feedId,\n options.source,\n options.tenant,\n options.has_tenant,\n options.archived,\n ]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n\n/*\n Used to build a consistent key for the KnockSlackProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function slackProviderKey({\n knockSlackChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n}: {\n knockSlackChannelId: string;\n tenantId: string;\n connectionStatus: string;\n errorLabel: string | null;\n}) {\n return [knockSlackChannelId, tenantId, connectionStatus, errorLabel]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n\n/*\n Used to build a consistent key for the KnockMsTeamsProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function msTeamsProviderKey({\n knockMsTeamsChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n}: {\n knockMsTeamsChannelId: string;\n tenantId: string;\n connectionStatus: string;\n errorLabel: string | null;\n}) {\n return [knockMsTeamsChannelId, tenantId, connectionStatus, errorLabel]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n"],"names":["formatBadgeCount","count","formatTimestamp","ts","options","parsedTs","parseISO","formatted","intlFormatDistance","Date","locale","toSentenceCase","string","charAt","toUpperCase","slice","renderNodeOrFallback","node","fallback","undefined","feedProviderKey","userId","feedId","source","tenant","has_tenant","archived","filter","f","join","slackProviderKey","knockSlackChannelId","tenantId","connectionStatus","errorLabel","msTeamsProviderKey","knockMsTeamsChannelId"],"mappings":";AAIO,SAASA,EAAiBC,GAAgC;AACxDA,SAAAA,IAAQ,IAAI,OAAOA;AAC5B;AAMO,SAASC,EACdC,GACAC,IAAkC,IAClC;AACI,MAAA;AACIC,UAAAA,IAAWC,EAASH,CAAE;AAKrBI,WAJWC,EAAmBH,GAAU,oBAAII,QAAQ;AAAA,MACzDC,QAAQN,EAAQM;AAAAA,IAAAA,CACjB;AAAA,UAGU;AACJP,WAAAA;AAAAA,EAAAA;AAEX;AAEO,SAASQ,EAAeC,GAAwB;AAC9CA,SAAAA,EAAOC,OAAO,CAAC,EAAEC,gBAAgBF,EAAOG,MAAM,CAAC;AACxD;AAEgBC,SAAAA,EAAqBC,GAAiBC,GAAqB;AAClED,SAAAA,MAASE,SAAYF,IAAOC;AACrC;AAMO,SAASE,EACdC,GACAC,GACAlB,IAA6B,CAAA,GAC7B;AACO,SAAA,CACLiB,GACAC,GACAlB,EAAQmB,QACRnB,EAAQoB,QACRpB,EAAQqB,YACRrB,EAAQsB,QAAQ,EAEfC,OAAQC,OAAMA,KAAM,IAAuB,EAC3CC,KAAK,GAAG;AACb;AAMO,SAASC,EAAiB;AAAA,EAC/BC,qBAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,kBAAAA;AAAAA,EACAC,YAAAA;AAMF,GAAG;AACD,SAAO,CAACH,GAAqBC,GAAUC,GAAkBC,CAAU,EAChEP,OAAQC,CAAMA,MAAAA,KAAM,IAAuB,EAC3CC,KAAK,GAAG;AACb;AAMO,SAASM,EAAmB;AAAA,EACjCC,uBAAAA;AAAAA,EACAJ,UAAAA;AAAAA,EACAC,kBAAAA;AAAAA,EACAC,YAAAA;AAMF,GAAG;AACD,SAAO,CAACE,GAAuBJ,GAAUC,GAAkBC,CAAU,EAClEP,OAAQC,CAAMA,MAAAA,KAAM,IAAuB,EAC3CC,KAAK,GAAG;AACb;"}
@@ -1,37 +0,0 @@
1
- import * as t from "react";
2
- import { useKnockClient as m } from "../../core/context/KnockProvider.mjs";
3
- import "@knocklabs/client";
4
- import "fast-deep-equal";
5
- import { feedProviderKey as u } from "../../core/utils.mjs";
6
- import k from "../hooks/useNotifications.mjs";
7
- import { useCreateNotificationStore as a } from "../hooks/useNotificationStore.mjs";
8
- const i = t.createContext(void 0), F = ({
9
- feedId: e,
10
- children: c,
11
- defaultFeedOptions: r = {},
12
- colorMode: s = "light"
13
- }) => {
14
- let o;
15
- try {
16
- o = m();
17
- } catch {
18
- throw new Error("KnockFeedProvider must be used within a KnockProvider.");
19
- }
20
- const n = k(o, e ?? "", r), d = a(n);
21
- return /* @__PURE__ */ t.createElement(i.Provider, { key: u(o.userId, e ?? "", r), value: {
22
- knock: o,
23
- feedClient: n,
24
- useFeedStore: d,
25
- colorMode: s
26
- } }, c);
27
- }, P = () => {
28
- const e = t.useContext(i);
29
- if (!e)
30
- throw new Error("useKnockFeed must be used within a KnockFeedProvider");
31
- return e;
32
- };
33
- export {
34
- F as KnockFeedProvider,
35
- P as useKnockFeed
36
- };
37
- //# sourceMappingURL=KnockFeedProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockFeedProvider.mjs","sources":["../../../../../src/modules/feed/context/KnockFeedProvider.tsx"],"sourcesContent":["import Knock, {\n Feed,\n FeedClientOptions,\n FeedStoreState,\n} from \"@knocklabs/client\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport type { StoreApi, UseBoundStore } from \"zustand\";\n\nimport { useKnockClient } from \"../../core\";\nimport { ColorMode } from \"../../core/constants\";\nimport { feedProviderKey } from \"../../core/utils\";\nimport { useCreateNotificationStore } from \"../hooks\";\nimport useNotifications from \"../hooks/useNotifications\";\n\nexport interface KnockFeedProviderState {\n knock: Knock;\n feedClient: Feed;\n useFeedStore: UseBoundStore<StoreApi<FeedStoreState>>;\n colorMode: ColorMode;\n}\n\nconst KnockFeedContext = React.createContext<\n KnockFeedProviderState | undefined\n>(undefined);\n\nexport interface KnockFeedProviderProps {\n // Feed props\n feedId: string | undefined;\n\n // Extra options\n colorMode?: ColorMode;\n\n // Feed client options\n defaultFeedOptions?: FeedClientOptions;\n}\n\nexport const KnockFeedProvider: React.FC<\n PropsWithChildren<KnockFeedProviderProps>\n> = ({ feedId, children, defaultFeedOptions = {}, colorMode = \"light\" }) => {\n let knock: Knock;\n try {\n knock = useKnockClient();\n } catch (_) {\n throw new Error(\"KnockFeedProvider must be used within a KnockProvider.\");\n }\n\n const feedClient = useNotifications(knock, feedId ?? \"\", defaultFeedOptions);\n const useFeedStore = useCreateNotificationStore(feedClient);\n\n return (\n <KnockFeedContext.Provider\n key={feedProviderKey(knock.userId, feedId ?? \"\", defaultFeedOptions)}\n value={{\n knock,\n feedClient,\n useFeedStore,\n colorMode,\n }}\n >\n {children}\n </KnockFeedContext.Provider>\n );\n};\n\nexport const useKnockFeed = (): KnockFeedProviderState => {\n const context = React.useContext(KnockFeedContext);\n if (!context) {\n throw new Error(\"useKnockFeed must be used within a KnockFeedProvider\");\n }\n\n return context;\n};\n"],"names":["KnockFeedContext","React","createContext","undefined","KnockFeedProvider","feedId","children","defaultFeedOptions","colorMode","knock","useKnockClient","Error","feedClient","useNotifications","useFeedStore","useCreateNotificationStore","feedProviderKey","userId","useKnockFeed","context","useContext"],"mappings":";;;;;;;AAsBA,MAAMA,IAAmBC,EAAMC,cAE7BC,MAAS,GAaEC,IAETA,CAAC;AAAA,EAAEC,QAAAA;AAAAA,EAAQC,UAAAA;AAAAA,EAAUC,oBAAAA,IAAqB,CAAC;AAAA,EAAGC,WAAAA,IAAY;AAAQ,MAAM;AACtEC,MAAAA;AACA,MAAA;AACFA,IAAAA,IAAQC,EAAe;AAAA,UACb;AACJ,UAAA,IAAIC,MAAM,wDAAwD;AAAA,EAAA;AAG1E,QAAMC,IAAaC,EAAiBJ,GAAOJ,KAAU,IAAIE,CAAkB,GACrEO,IAAeC,EAA2BH,CAAU;AAE1D,SACG,gBAAAX,EAAA,cAAAD,EAAiB,UAAjB,EACC,KAAKgB,EAAgBP,EAAMQ,QAAQZ,KAAU,IAAIE,CAAkB,GACnE,OAAO;AAAA,IACLE,OAAAA;AAAAA,IACAG,YAAAA;AAAAA,IACAE,cAAAA;AAAAA,IACAN,WAAAA;AAAAA,OAGDF,CACH;AAEJ,GAEaY,IAAeA,MAA8B;AAClDC,QAAAA,IAAUlB,EAAMmB,WAAWpB,CAAgB;AACjD,MAAI,CAACmB;AACG,UAAA,IAAIR,MAAM,sDAAsD;AAGjEQ,SAAAA;AACT;"}
@@ -1,23 +0,0 @@
1
- import { useState as o, useEffect as f } from "react";
2
- function l(e) {
3
- const [i, a] = o(null), [c, t] = o(!1);
4
- return f(() => {
5
- async function r() {
6
- const s = e.knock, u = s.client(), d = `/v1/users/${s.userId}/feeds/${e.feedId}/settings`;
7
- t(!0);
8
- const n = await u.makeRequest({
9
- method: "GET",
10
- url: d
11
- });
12
- n.error || a(n.body), t(!1);
13
- }
14
- r();
15
- }, []), {
16
- settings: i,
17
- loading: c
18
- };
19
- }
20
- export {
21
- l as default
22
- };
23
- //# sourceMappingURL=useFeedSettings.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeedSettings.mjs","sources":["../../../../../src/modules/feed/hooks/useFeedSettings.ts"],"sourcesContent":["import { Feed } from \"@knocklabs/client\";\nimport { useEffect, useState } from \"react\";\n\nexport type FeedSettings = {\n features: {\n branding_required: boolean;\n };\n};\n\nfunction useFeedSettings(feedClient: Feed): {\n settings: FeedSettings | null;\n loading: boolean;\n} {\n const [settings, setSettings] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n\n // TODO: consider moving this into the feed client and into the feed store state when\n // we're using this in other areas of the feed\n useEffect(() => {\n async function getSettings() {\n const knock = feedClient.knock;\n const apiClient = knock.client();\n const feedSettingsPath = `/v1/users/${knock.userId}/feeds/${feedClient.feedId}/settings`;\n setIsLoading(true);\n\n const response = await apiClient.makeRequest({\n method: \"GET\",\n url: feedSettingsPath,\n });\n\n if (!response.error) {\n setSettings(response.body);\n }\n\n setIsLoading(false);\n }\n\n getSettings();\n // TODO: Check if we can remove this disable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return { settings, loading: isLoading };\n}\n\nexport default useFeedSettings;\n"],"names":["useFeedSettings","feedClient","settings","setSettings","useState","isLoading","setIsLoading","useEffect","getSettings","knock","apiClient","client","feedSettingsPath","userId","feedId","response","makeRequest","method","url","error","body","loading"],"mappings":";AASA,SAASA,EAAgBC,GAGvB;AACA,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,IAAI,GACvC,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAK;AAIhDG,SAAAA,EAAU,MAAM;AACd,mBAAeC,IAAc;AAC3B,YAAMC,IAAQR,EAAWQ,OACnBC,IAAYD,EAAME,OAAO,GACzBC,IAAmB,aAAaH,EAAMI,MAAM,UAAUZ,EAAWa,MAAM;AAC7ER,MAAAA,EAAa,EAAI;AAEXS,YAAAA,IAAW,MAAML,EAAUM,YAAY;AAAA,QAC3CC,QAAQ;AAAA,QACRC,KAAKN;AAAAA,MAAAA,CACN;AAEG,MAACG,EAASI,SACZhB,EAAYY,EAASK,IAAI,GAG3Bd,EAAa,EAAK;AAAA,IAAA;AAGR,IAAAE,EAAA;AAAA,EAGd,GAAG,EAAE,GAEE;AAAA,IAAEN,UAAAA;AAAAA,IAAUmB,SAAShB;AAAAA,EAAU;AACxC;"}
@@ -1,12 +0,0 @@
1
- import { useStore as u } from "zustand";
2
- function n(e) {
3
- return (r) => u(e.store, r ?? ((o) => o));
4
- }
5
- function i(e, t) {
6
- return n(e)(t ?? ((o) => o));
7
- }
8
- export {
9
- i as default,
10
- n as useCreateNotificationStore
11
- };
12
- //# sourceMappingURL=useNotificationStore.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNotificationStore.mjs","sources":["../../../../../src/modules/feed/hooks/useNotificationStore.ts"],"sourcesContent":["import { Feed, type FeedStoreState } from \"@knocklabs/client\";\nimport { type StoreApi, type UseBoundStore, useStore } from \"zustand\";\n\nexport type Selector<T> = (state: FeedStoreState) => T;\n\n/**\n * Access a Bounded Store instance by converting our vanilla store to a UseBoundStore\n * https://zustand.docs.pmnd.rs/guides/typescript#bounded-usestore-hook-for-vanilla-stores\n * Allow passing a selector down from useCreateNotificationStore OR useNotificationStore\n * We'll favor the the one passed later outside of useCreateNotificationStore instantiation\n */\nfunction useCreateNotificationStore<T>(\n feedClient: Feed,\n): UseBoundStore<StoreApi<FeedStoreState>> {\n // Keep selector optional for external use\n // useStore requires a selector so we'll pass in a default one when not provided\n const useBoundedStore = (selector?: Selector<T>) =>\n useStore(feedClient.store, selector ?? ((state) => state as T));\n return useBoundedStore as UseBoundStore<StoreApi<FeedStoreState>>;\n}\n\n/**\n * A hook used to access content within the notification store.\n *\n * @example\n *\n * ```ts\n * const { items, metadata } = useNotificationStore(feedClient);\n * ```\n *\n * A selector can be used to access a subset of the store state.\n *\n * @example\n *\n * ```ts\n * const { items, metadata } = useNotificationStore(feedClient, (state) => ({\n * items: state.items,\n * metadata: state.metadata,\n * }));\n * ```\n */\nfunction useNotificationStore(feedClient: Feed): FeedStoreState;\nfunction useNotificationStore<T>(feedClient: Feed, selector: Selector<T>): T;\nfunction useNotificationStore<T>(\n feedClient: Feed,\n selector?: Selector<T>,\n): T | FeedStoreState {\n const useStoreLocal = useCreateNotificationStore(feedClient);\n return useStoreLocal(selector ?? ((state) => state as T));\n}\n\nexport { useCreateNotificationStore };\nexport default useNotificationStore;\n"],"names":["useCreateNotificationStore","feedClient","useBoundedStore","selector","useStore","store","state","useNotificationStore","useStoreLocal"],"mappings":";AAWA,SAASA,EACPC,GACyC;AAKlCC,SAFiBA,CAACC,MACvBC,EAASH,EAAWI,OAAOF,MAAcG,OAAUA,EAAW;AAElE;AAwBA,SAASC,EACPN,GACAE,GACoB;AAEbK,SADeR,EAA2BC,CAAU,EACtCE,MAAcG,CAAAA,MAAUA,EAAW;AAC1D;"}
@@ -1,34 +0,0 @@
1
- import { useCallback as a, useState as d, useRef as m, useEffect as b } from "react";
2
- import "../../core/context/KnockProvider.mjs";
3
- import "@knocklabs/client";
4
- import C from "../../core/hooks/useStableOptions.mjs";
5
- import "date-fns";
6
- function z(f, s, p = {}) {
7
- const o = a((r, u) => {
8
- const i = f.feeds.initialize(r, u);
9
- return i.store.subscribe((l) => i.store.setState(l)), i.listenForUpdates(), i;
10
- }, [f]), e = C(p), [t, c] = d(() => ({
11
- // FIXME In strict mode, useState initializer functions are called twice,
12
- // which results in one extra instance of the feed client being created
13
- // and not disposed of. This only affects strict mode.
14
- feedClient: o(s, e),
15
- options: e
16
- })), n = m(!1);
17
- return b(() => {
18
- const r = n.current;
19
- if (t.feedClient.feedId !== s || t.options !== e || r) {
20
- n.current = !1, c({
21
- feedClient: o(s, e),
22
- options: e
23
- });
24
- return;
25
- }
26
- return () => {
27
- n.current = !0, t.feedClient.dispose();
28
- };
29
- }, [o, s, e, t]), t.feedClient;
30
- }
31
- export {
32
- z as default
33
- };
34
- //# sourceMappingURL=useNotifications.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNotifications.mjs","sources":["../../../../../src/modules/feed/hooks/useNotifications.ts"],"sourcesContent":["import Knock, { Feed, FeedClientOptions } from \"@knocklabs/client\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { useStableOptions } from \"../../core\";\n\ninterface State {\n feedClient: Feed;\n options: FeedClientOptions;\n}\n\nfunction useNotifications(\n knock: Knock,\n feedChannelId: string,\n options: FeedClientOptions = {},\n): Feed {\n const initFeedClient = useCallback(\n (feedChannelId: string, options: FeedClientOptions) => {\n const feedClient = knock.feeds.initialize(feedChannelId, options);\n\n // In development, we need to introduce this extra set state to force a render\n // for Zustand as otherwise the state doesn't get reflected correctly\n feedClient.store.subscribe((t) => feedClient.store.setState(t));\n\n feedClient.listenForUpdates();\n\n return feedClient;\n },\n [knock],\n );\n\n const stableOptions = useStableOptions(options);\n const [state, setState] = useState<State>(() => ({\n // FIXME In strict mode, useState initializer functions are called twice,\n // which results in one extra instance of the feed client being created\n // and not disposed of. This only affects strict mode.\n feedClient: initFeedClient(feedChannelId, stableOptions),\n options: stableOptions,\n }));\n const disposedRef = useRef(false);\n\n useEffect(() => {\n const isDisposed = disposedRef.current;\n\n // Initialize a new feed client if the feed ID has changed,\n // options have changed, or the current feed client has been disposed\n const needsReinit =\n state.feedClient.feedId !== feedChannelId ||\n state.options !== stableOptions ||\n isDisposed;\n\n if (needsReinit) {\n disposedRef.current = false;\n setState({\n feedClient: initFeedClient(feedChannelId, stableOptions),\n options: stableOptions,\n });\n return;\n }\n\n return () => {\n disposedRef.current = true;\n state.feedClient.dispose();\n };\n }, [initFeedClient, feedChannelId, stableOptions, state]);\n\n return state.feedClient;\n}\n\nexport default useNotifications;\n"],"names":["useNotifications","knock","feedChannelId","options","initFeedClient","useCallback","feedClient","feeds","initialize","store","subscribe","t","setState","listenForUpdates","stableOptions","useStableOptions","state","useState","disposedRef","useRef","useEffect","isDisposed","current","feedId","dispose"],"mappings":";;;;;AAUA,SAASA,EACPC,GACAC,GACAC,IAA6B,CAAA,GACvB;AACN,QAAMC,IAAiBC,EACrB,CAACH,GAAuBC,MAA+B;AACrD,UAAMG,IAAaL,EAAMM,MAAMC,WAAWN,GAAeC,CAAO;AAIhEG,WAAAA,EAAWG,MAAMC,UAAWC,CAAAA,MAAML,EAAWG,MAAMG,SAASD,CAAC,CAAC,GAE9DL,EAAWO,iBAAiB,GAErBP;AAAAA,EAAAA,GAET,CAACL,CAAK,CACR,GAEMa,IAAgBC,EAAiBZ,CAAO,GACxC,CAACa,GAAOJ,CAAQ,IAAIK,EAAgB,OAAO;AAAA;AAAA;AAAA;AAAA,IAI/CX,YAAYF,EAAeF,GAAeY,CAAa;AAAA,IACvDX,SAASW;AAAAA,EAAAA,EACT,GACII,IAAcC,EAAO,EAAK;AAEhCC,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAaH,EAAYI;AAS/B,QAJEN,EAAMV,WAAWiB,WAAWrB,KAC5Bc,EAAMb,YAAYW,KAClBO,GAEe;AACfH,MAAAA,EAAYI,UAAU,IACbV,EAAA;AAAA,QACPN,YAAYF,EAAeF,GAAeY,CAAa;AAAA,QACvDX,SAASW;AAAAA,MAAAA,CACV;AACD;AAAA,IAAA;AAGF,WAAO,MAAM;AACXI,MAAAA,EAAYI,UAAU,IACtBN,EAAMV,WAAWkB,QAAQ;AAAA,IAC3B;AAAA,KACC,CAACpB,GAAgBF,GAAeY,GAAeE,CAAK,CAAC,GAEjDA,EAAMV;AACf;"}
@@ -1,33 +0,0 @@
1
- import { KnockGuideClient as k } from "@knocklabs/client";
2
- import * as t from "react";
3
- import { useKnockClient as l } from "../../core/context/KnockProvider.mjs";
4
- import a from "../../core/hooks/useStableOptions.mjs";
5
- import "date-fns";
6
- const d = t.createContext(void 0), G = ({
7
- channelId: o,
8
- readyToTarget: i,
9
- listenForUpdates: n = !0,
10
- colorMode: s = "light",
11
- targetParams: m = {},
12
- trackLocationFromWindow: c = !0,
13
- children: f
14
- }) => {
15
- let r;
16
- try {
17
- r = l();
18
- } catch {
19
- throw new Error("KnockGuideProvider must be used within a KnockProvider");
20
- }
21
- const u = a(m), e = t.useMemo(() => new k(r, o, u, {
22
- trackLocationFromWindow: c
23
- }), [r, o, u, c]);
24
- return t.useEffect(() => (i && (e.fetch(), n && e.subscribe()), () => e.cleanup()), [i, n, e]), /* @__PURE__ */ t.createElement(d.Provider, { value: {
25
- client: e,
26
- colorMode: s
27
- } }, f);
28
- };
29
- export {
30
- d as KnockGuideContext,
31
- G as KnockGuideProvider
32
- };
33
- //# sourceMappingURL=KnockGuideProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockGuideProvider.mjs","sources":["../../../../../src/modules/guide/context/KnockGuideProvider.tsx"],"sourcesContent":["import Knock, {\n KnockGuideClient,\n KnockGuideTargetParams,\n} from \"@knocklabs/client\";\nimport * as React from \"react\";\n\nimport { useKnockClient, useStableOptions } from \"../../core\";\nimport { ColorMode } from \"../../core/constants\";\n\ntype KnockGuideProviderValue = {\n client: KnockGuideClient;\n colorMode: ColorMode;\n};\n\nexport const KnockGuideContext = React.createContext<\n KnockGuideProviderValue | undefined\n>(undefined);\n\ntype Props = {\n channelId: string;\n readyToTarget: boolean;\n listenForUpdates?: boolean;\n colorMode?: ColorMode;\n targetParams?: KnockGuideTargetParams;\n trackLocationFromWindow?: boolean;\n};\n\nexport const KnockGuideProvider: React.FC<React.PropsWithChildren<Props>> = ({\n channelId,\n readyToTarget,\n listenForUpdates = true,\n colorMode = \"light\",\n targetParams = {},\n trackLocationFromWindow = true,\n children,\n}) => {\n let knock: Knock;\n\n try {\n knock = useKnockClient();\n } catch (_) {\n throw new Error(\"KnockGuideProvider must be used within a KnockProvider\");\n }\n\n const stableTargetParams = useStableOptions(targetParams);\n\n const knockGuideClient = React.useMemo(() => {\n return new KnockGuideClient(knock, channelId, stableTargetParams, {\n trackLocationFromWindow,\n });\n }, [knock, channelId, stableTargetParams, trackLocationFromWindow]);\n\n React.useEffect(() => {\n if (readyToTarget) {\n knockGuideClient.fetch();\n if (listenForUpdates) knockGuideClient.subscribe();\n }\n\n return () => knockGuideClient.cleanup();\n }, [readyToTarget, listenForUpdates, knockGuideClient]);\n\n return (\n <KnockGuideContext.Provider\n value={{\n client: knockGuideClient,\n colorMode,\n }}\n >\n {children}\n </KnockGuideContext.Provider>\n );\n};\n"],"names":["KnockGuideContext","React","createContext","undefined","KnockGuideProvider","channelId","readyToTarget","listenForUpdates","colorMode","targetParams","trackLocationFromWindow","children","knock","useKnockClient","Error","stableTargetParams","useStableOptions","knockGuideClient","useMemo","KnockGuideClient","useEffect","fetch","subscribe","cleanup","client"],"mappings":";;;;;AAcaA,MAAAA,IAAoBC,EAAMC,cAErCC,MAAS,GAWEC,IAA+DA,CAAC;AAAA,EAC3EC,WAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,kBAAAA,IAAmB;AAAA,EACnBC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe,CAAC;AAAA,EAChBC,yBAAAA,IAA0B;AAAA,EAC1BC,UAAAA;AACF,MAAM;AACAC,MAAAA;AAEA,MAAA;AACFA,IAAAA,IAAQC,EAAe;AAAA,UACb;AACJ,UAAA,IAAIC,MAAM,wDAAwD;AAAA,EAAA;AAGpEC,QAAAA,IAAqBC,EAAiBP,CAAY,GAElDQ,IAAmBhB,EAAMiB,QAAQ,MAC9B,IAAIC,EAAiBP,GAAOP,GAAWU,GAAoB;AAAA,IAChEL,yBAAAA;AAAAA,EAAAA,CACD,GACA,CAACE,GAAOP,GAAWU,GAAoBL,CAAuB,CAAC;AAElET,SAAAA,EAAMmB,UAAU,OACVd,MACFW,EAAiBI,MAAM,GACnBd,OAAmCe,UAAU,IAG5C,MAAML,EAAiBM,QAAQ,IACrC,CAACjB,GAAeC,GAAkBU,CAAgB,CAAC,GAGnD,gBAAAhB,EAAA,cAAAD,EAAkB,UAAlB,EACC,OAAO;AAAA,IACLwB,QAAQP;AAAAA,IACRT,WAAAA;AAAAA,OAGDG,CACH;AAEJ;"}
@@ -1,21 +0,0 @@
1
- import { useStore as n } from "@tanstack/react-store";
2
- import { useGuideContext as c } from "./useGuideContext.mjs";
3
- const p = (e) => {
4
- const r = c();
5
- if (!e.key && !e.type)
6
- throw new Error("useGuide must be used with at least one filter: either a guide key or a guide type");
7
- const {
8
- client: t,
9
- colorMode: i
10
- } = r, [o] = n(t.store, (s) => t.select(s, e)), u = o && o.steps.find((s) => !s.message.archived_at);
11
- return {
12
- client: t,
13
- colorMode: i,
14
- guide: o,
15
- step: u
16
- };
17
- };
18
- export {
19
- p as useGuide
20
- };
21
- //# sourceMappingURL=useGuide.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGuide.mjs","sources":["../../../../../src/modules/guide/hooks/useGuide.ts"],"sourcesContent":["import {\n KnockGuide,\n KnockGuideFilterParams,\n KnockGuideStep,\n} from \"@knocklabs/client\";\nimport { useStore } from \"@tanstack/react-store\";\n\nimport { UseGuideContextReturn, useGuideContext } from \"./useGuideContext\";\n\ninterface UseGuideReturn extends UseGuideContextReturn {\n guide: KnockGuide | undefined;\n step: KnockGuideStep | undefined;\n}\n\nexport const useGuide = (filters: KnockGuideFilterParams): UseGuideReturn => {\n const context = useGuideContext();\n\n if (!filters.key && !filters.type) {\n throw new Error(\n \"useGuide must be used with at least one filter: either a guide key or a guide type\",\n );\n }\n\n const { client, colorMode } = context;\n\n const [guide] = useStore(client.store, (state) =>\n client.select(state, filters),\n );\n\n const step = guide && guide.steps.find((s) => !s.message.archived_at);\n\n return { client, colorMode, guide, step };\n};\n"],"names":["useGuide","filters","context","useGuideContext","key","type","Error","client","colorMode","guide","useStore","store","state","select","step","steps","find","s","message","archived_at"],"mappings":";;AAcaA,MAAAA,IAAWA,CAACC,MAAoD;AAC3E,QAAMC,IAAUC,EAAgB;AAEhC,MAAI,CAACF,EAAQG,OAAO,CAACH,EAAQI;AACrB,UAAA,IAAIC,MACR,oFACF;AAGI,QAAA;AAAA,IAAEC,QAAAA;AAAAA,IAAQC,WAAAA;AAAAA,EAAAA,IAAcN,GAExB,CAACO,CAAK,IAAIC,EAASH,EAAOI,OAAQC,CAAAA,MACtCL,EAAOM,OAAOD,GAAOX,CAAO,CAC9B,GAEMa,IAAOL,KAASA,EAAMM,MAAMC,KAAMC,CAAM,MAAA,CAACA,EAAEC,QAAQC,WAAW;AAE7D,SAAA;AAAA,IAAEZ,QAAAA;AAAAA,IAAQC,WAAAA;AAAAA,IAAWC,OAAAA;AAAAA,IAAOK,MAAAA;AAAAA,EAAK;AAC1C;"}
@@ -1,12 +0,0 @@
1
- import * as t from "react";
2
- import { KnockGuideContext as o } from "../context/KnockGuideProvider.mjs";
3
- const n = () => {
4
- const e = t.useContext(o);
5
- if (!e)
6
- throw new Error("useGuide must be used within a KnockGuideProvider");
7
- return e;
8
- };
9
- export {
10
- n as useGuideContext
11
- };
12
- //# sourceMappingURL=useGuideContext.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGuideContext.mjs","sources":["../../../../../src/modules/guide/hooks/useGuideContext.ts"],"sourcesContent":["import { KnockGuideClient } from \"@knocklabs/client\";\nimport * as React from \"react\";\n\nimport { KnockGuideContext } from \"../context\";\n\nexport interface UseGuideContextReturn {\n client: KnockGuideClient;\n colorMode: \"light\" | \"dark\";\n}\n\nexport const useGuideContext = (): UseGuideContextReturn => {\n const context = React.useContext(KnockGuideContext);\n if (!context) {\n throw new Error(\"useGuide must be used within a KnockGuideProvider\");\n }\n\n return context;\n};\n"],"names":["useGuideContext","context","React","useContext","KnockGuideContext","Error"],"mappings":";;AAUO,MAAMA,IAAkBA,MAA6B;AACpDC,QAAAA,IAAUC,EAAMC,WAAWC,CAAiB;AAClD,MAAI,CAACH;AACG,UAAA,IAAII,MAAM,mDAAmD;AAG9DJ,SAAAA;AACT;"}
@@ -1,11 +0,0 @@
1
- import e from "react";
2
- import { locales as t } from "../languages/index.mjs";
3
- const n = e.createContext(t.en), l = ({
4
- i18n: o = t.en,
5
- ...r
6
- }) => /* @__PURE__ */ e.createElement(n.Provider, { ...r, value: o });
7
- export {
8
- n as I18nContext,
9
- l as KnockI18nProvider
10
- };
11
- //# sourceMappingURL=KnockI18nProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockI18nProvider.mjs","sources":["../../../../../src/modules/i18n/context/KnockI18nProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { FunctionComponent, PropsWithChildren } from \"react\";\n\nimport { I18nContent, locales } from \"../languages\";\n\nexport const I18nContext = React.createContext<I18nContent>(locales.en);\n\nexport interface KnockI18nProviderProps {\n i18n?: I18nContent;\n}\n\nexport const KnockI18nProvider: FunctionComponent<\n PropsWithChildren<KnockI18nProviderProps>\n> = ({ i18n = locales.en, ...props }) => {\n return <I18nContext.Provider {...props} value={i18n} />;\n};\n"],"names":["I18nContext","React","createContext","locales","en","KnockI18nProvider","i18n","props"],"mappings":";;AAKO,MAAMA,IAAcC,EAAMC,cAA2BC,EAAQC,EAAE,GAMzDC,IAETA,CAAC;AAAA,EAAEC,MAAAA,IAAOH,EAAQC;AAAAA,EAAI,GAAGG;AAAM,sCACzBP,EAAY,UAAZ,EAAyBO,GAAAA,GAAO,OAAOD,GAAQ;"}
@@ -1,17 +0,0 @@
1
- import { useContext as r } from "react";
2
- import { I18nContext as s } from "../context/KnockI18nProvider.mjs";
3
- import { locales as e } from "../languages/index.mjs";
4
- function m() {
5
- const {
6
- translations: o,
7
- locale: n
8
- } = r(s);
9
- return {
10
- locale: n,
11
- t: (t) => o[t] || e.en.translations[t]
12
- };
13
- }
14
- export {
15
- m as useTranslations
16
- };
17
- //# sourceMappingURL=useTranslations.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTranslations.mjs","sources":["../../../../../src/modules/i18n/hooks/useTranslations.ts"],"sourcesContent":["import { useContext } from \"react\";\n\nimport { I18nContext } from \"../context/KnockI18nProvider\";\nimport { I18nContent, locales } from \"../languages\";\n\nexport function useTranslations() {\n const { translations, locale } = useContext<I18nContent>(I18nContext);\n\n return {\n locale,\n t: (key: keyof typeof translations) => {\n // We always use english as the default translation when a key doesn't exist\n return translations[key] || locales.en.translations[key];\n },\n };\n}\n"],"names":["useTranslations","translations","locale","useContext","I18nContext","t","key","locales","en"],"mappings":";;;AAKO,SAASA,IAAkB;AAC1B,QAAA;AAAA,IAAEC,cAAAA;AAAAA,IAAcC,QAAAA;AAAAA,EAAAA,IAAWC,EAAwBC,CAAW;AAE7D,SAAA;AAAA,IACLF,QAAAA;AAAAA,IACAG,GAAGA,CAACC,MAEKL,EAAaK,CAAG,KAAKC,EAAQC,GAAGP,aAAaK,CAAG;AAAA,EAE3D;AACF;"}
@@ -1,39 +0,0 @@
1
- const e = {
2
- translations: {
3
- archiveNotification: "Benachrichtigung archivieren",
4
- archiveRead: "Gelesenes Archivieren",
5
- markAllAsRead: "Alle als gelesen markieren",
6
- notifications: "Benachrichtigungen",
7
- emptyFeedTitle: "Noch keine Benachrichtigungen",
8
- emptyFeedBody: "Wir werden dich benachrichtigen, sobald wir etwas Neues für dich haben.",
9
- all: "Alle",
10
- unread: "Ungelesen",
11
- read: "Gelesen",
12
- unseen: "Ungesehen",
13
- slackConnectChannel: "Kanal verbinden",
14
- slackChannelId: "Slack Kanal ID",
15
- slackConnecting: "Verbinden mit Slack...",
16
- slackDisconnecting: "Trennen der Verbindung...",
17
- slackConnect: "Mit Slack verbinden",
18
- slackConnected: "Verbunden",
19
- slackConnectContainerDescription: "Verbinden, um Benachrichtigungen in Ihrem Slack-Arbeitsbereich zu erhalten.",
20
- slackSearchbarDisconnected: "Slack ist nicht verbunden.",
21
- slackSearchbarNoChannelsConnected: "Suchkanäle",
22
- slackSearchbarNoChannelsFound: "Keine schlaffen Kanäle.",
23
- slackSearchbarChannelsError: "Fehler beim Abrufen von Kanälen.",
24
- slackSearchChannels: "Suchkanäle",
25
- slackConnectionErrorExists: "Versuchen Sie, sich erneut mit Slack zu verbinden, um Kanäle in Ihrem Arbeitsbereich zu finden und auszuwählen.",
26
- slackConnectionErrorOccurred: "Es ist ein Fehler beim Verbinden mit Slack aufgetreten. Versuchen Sie, sich erneut zu verbinden, um Kanäle in Ihrem Arbeitsbereich zu finden und auszuwählen.",
27
- slackChannelAlreadyConnected: "Fehler: bereits verbunden",
28
- slackError: "Fehler",
29
- slackDisconnect: "Trennen Sie die Verbindung.",
30
- slackChannelSetError: "Fehlereinstellung Kanal.",
31
- slackAccessTokenNotSet: "Zugriffstoken nicht gesetzt.",
32
- slackReconnect: "Neu verbinden"
33
- },
34
- locale: "de"
35
- };
36
- export {
37
- e as default
38
- };
39
- //# sourceMappingURL=de.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"de.mjs","sources":["../../../../../src/modules/i18n/languages/de.ts"],"sourcesContent":["import { I18nContent } from \".\";\n\nconst de: I18nContent = {\n translations: {\n archiveNotification: \"Benachrichtigung archivieren\",\n archiveRead: \"Gelesenes Archivieren\",\n markAllAsRead: \"Alle als gelesen markieren\",\n notifications: \"Benachrichtigungen\",\n emptyFeedTitle: \"Noch keine Benachrichtigungen\",\n emptyFeedBody:\n \"Wir werden dich benachrichtigen, sobald wir etwas Neues für dich haben.\",\n all: \"Alle\",\n unread: \"Ungelesen\",\n read: \"Gelesen\",\n unseen: \"Ungesehen\",\n slackConnectChannel: \"Kanal verbinden\",\n slackChannelId: \"Slack Kanal ID\",\n slackConnecting: \"Verbinden mit Slack...\",\n slackDisconnecting: \"Trennen der Verbindung...\",\n slackConnect: \"Mit Slack verbinden\",\n slackConnected: \"Verbunden\",\n slackConnectContainerDescription:\n \"Verbinden, um Benachrichtigungen in Ihrem Slack-Arbeitsbereich zu erhalten.\",\n slackSearchbarDisconnected: \"Slack ist nicht verbunden.\",\n slackSearchbarNoChannelsConnected: \"Suchkanäle\",\n slackSearchbarNoChannelsFound: \"Keine schlaffen Kanäle.\",\n slackSearchbarChannelsError: \"Fehler beim Abrufen von Kanälen.\",\n slackSearchChannels: \"Suchkanäle\",\n slackConnectionErrorExists:\n \"Versuchen Sie, sich erneut mit Slack zu verbinden, um Kanäle in Ihrem Arbeitsbereich zu finden und auszuwählen.\",\n slackConnectionErrorOccurred:\n \"Es ist ein Fehler beim Verbinden mit Slack aufgetreten. Versuchen Sie, sich erneut zu verbinden, um Kanäle in Ihrem Arbeitsbereich zu finden und auszuwählen.\",\n slackChannelAlreadyConnected: \"Fehler: bereits verbunden\",\n slackError: \"Fehler\",\n slackDisconnect: \"Trennen Sie die Verbindung.\",\n slackChannelSetError: \"Fehlereinstellung Kanal.\",\n slackAccessTokenNotSet: \"Zugriffstoken nicht gesetzt.\",\n slackReconnect: \"Neu verbinden\",\n },\n locale: \"de\",\n};\n\nexport default de;\n"],"names":["de","translations","archiveNotification","archiveRead","markAllAsRead","notifications","emptyFeedTitle","emptyFeedBody","all","unread","read","unseen","slackConnectChannel","slackChannelId","slackConnecting","slackDisconnecting","slackConnect","slackConnected","slackConnectContainerDescription","slackSearchbarDisconnected","slackSearchbarNoChannelsConnected","slackSearchbarNoChannelsFound","slackSearchbarChannelsError","slackSearchChannels","slackConnectionErrorExists","slackConnectionErrorOccurred","slackChannelAlreadyConnected","slackError","slackDisconnect","slackChannelSetError","slackAccessTokenNotSet","slackReconnect","locale"],"mappings":"AAEA,MAAMA,IAAkB;AAAA,EACtBC,cAAc;AAAA,IACZC,qBAAqB;AAAA,IACrBC,aAAa;AAAA,IACbC,eAAe;AAAA,IACfC,eAAe;AAAA,IACfC,gBAAgB;AAAA,IAChBC,eACE;AAAA,IACFC,KAAK;AAAA,IACLC,QAAQ;AAAA,IACRC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,qBAAqB;AAAA,IACrBC,gBAAgB;AAAA,IAChBC,iBAAiB;AAAA,IACjBC,oBAAoB;AAAA,IACpBC,cAAc;AAAA,IACdC,gBAAgB;AAAA,IAChBC,kCACE;AAAA,IACFC,4BAA4B;AAAA,IAC5BC,mCAAmC;AAAA,IACnCC,+BAA+B;AAAA,IAC/BC,6BAA6B;AAAA,IAC7BC,qBAAqB;AAAA,IACrBC,4BACE;AAAA,IACFC,8BACE;AAAA,IACFC,8BAA8B;AAAA,IAC9BC,YAAY;AAAA,IACZC,iBAAiB;AAAA,IACjBC,sBAAsB;AAAA,IACtBC,wBAAwB;AAAA,IACxBC,gBAAgB;AAAA,EAClB;AAAA,EACAC,QAAQ;AACV;"}
@@ -1,51 +0,0 @@
1
- const n = {
2
- translations: {
3
- archiveNotification: "Archive this notification",
4
- archiveRead: "Archive Read",
5
- markAllAsRead: "Mark all as read",
6
- notifications: "Notifications",
7
- emptyFeedTitle: "No notifications yet",
8
- emptyFeedBody: "We'll let you know when we've got something new for you.",
9
- all: "All",
10
- unread: "Unread",
11
- read: "Read",
12
- unseen: "Unseen",
13
- msTeamsChannelSetError: "Error setting channel.",
14
- msTeamsConnect: "Connect to Microsoft Teams",
15
- msTeamsConnected: "Connected",
16
- msTeamsConnecting: "Connecting to Microsoft Teams…",
17
- msTeamsConnectionErrorExists: "Try reconnecting to Microsoft Teams to find and select channels from your teams.",
18
- msTeamsConnectionErrorOccurred: "There was an error connecting to Microsoft Teams. Try reconnecting to find and select channels from your teams.",
19
- msTeamsConnectContainerDescription: "Connect to get notifications in Microsoft Teams",
20
- msTeamsDisconnect: "Disconnect",
21
- msTeamsDisconnecting: "Disconnecting from Microsoft Teams…",
22
- msTeamsError: "Error",
23
- msTeamsReconnect: "Reconnect",
24
- msTeamsTenantIdNotSet: "Microsoft Teams tenant ID not set.",
25
- slackConnectChannel: "Connect channel",
26
- slackChannelId: "Slack channel ID",
27
- slackConnecting: "Connecting to Slack...",
28
- slackDisconnecting: "Disconnecting...",
29
- slackConnect: "Connect to Slack",
30
- slackConnected: "Connected",
31
- slackConnectContainerDescription: "Connect to get notifications in your Slack workspace.",
32
- slackSearchbarDisconnected: "Slack is not connected.",
33
- slackSearchbarNoChannelsConnected: "Search channels",
34
- slackSearchbarNoChannelsFound: "No slack channels.",
35
- slackSearchbarChannelsError: "Error fetching channels.",
36
- slackSearchChannels: "Search channels",
37
- slackConnectionErrorExists: "Try reconnecting to Slack to find and select channels from your workspace.",
38
- slackConnectionErrorOccurred: "There was an error connecting to Slack. Try reconnecting to find and select channels from your workspace.",
39
- slackChannelAlreadyConnected: "Error: already connected",
40
- slackError: "Error",
41
- slackDisconnect: "Disconnect",
42
- slackChannelSetError: "Error setting channel.",
43
- slackAccessTokenNotSet: "Access token not set.",
44
- slackReconnect: "Reconnect"
45
- },
46
- locale: "en"
47
- };
48
- export {
49
- n as default
50
- };
51
- //# sourceMappingURL=en.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"en.mjs","sources":["../../../../../src/modules/i18n/languages/en.ts"],"sourcesContent":["import { I18nContent } from \".\";\n\nconst en: I18nContent = {\n translations: {\n archiveNotification: \"Archive this notification\",\n archiveRead: \"Archive Read\",\n markAllAsRead: \"Mark all as read\",\n notifications: \"Notifications\",\n emptyFeedTitle: \"No notifications yet\",\n emptyFeedBody: \"We'll let you know when we've got something new for you.\",\n all: \"All\",\n unread: \"Unread\",\n read: \"Read\",\n unseen: \"Unseen\",\n msTeamsChannelSetError: \"Error setting channel.\",\n msTeamsConnect: \"Connect to Microsoft Teams\",\n msTeamsConnected: \"Connected\",\n msTeamsConnecting: \"Connecting to Microsoft Teams…\",\n msTeamsConnectionErrorExists:\n \"Try reconnecting to Microsoft Teams to find and select channels from your teams.\",\n msTeamsConnectionErrorOccurred:\n \"There was an error connecting to Microsoft Teams. Try reconnecting to find and select channels from your teams.\",\n msTeamsConnectContainerDescription:\n \"Connect to get notifications in Microsoft Teams\",\n msTeamsDisconnect: \"Disconnect\",\n msTeamsDisconnecting: \"Disconnecting from Microsoft Teams…\",\n msTeamsError: \"Error\",\n msTeamsReconnect: \"Reconnect\",\n msTeamsTenantIdNotSet: \"Microsoft Teams tenant ID not set.\",\n slackConnectChannel: \"Connect channel\",\n slackChannelId: \"Slack channel ID\",\n slackConnecting: \"Connecting to Slack...\",\n slackDisconnecting: \"Disconnecting...\",\n slackConnect: \"Connect to Slack\",\n slackConnected: \"Connected\",\n slackConnectContainerDescription:\n \"Connect to get notifications in your Slack workspace.\",\n slackSearchbarDisconnected: \"Slack is not connected.\",\n slackSearchbarNoChannelsConnected: \"Search channels\",\n slackSearchbarNoChannelsFound: \"No slack channels.\",\n slackSearchbarChannelsError: \"Error fetching channels.\",\n slackSearchChannels: \"Search channels\",\n slackConnectionErrorExists:\n \"Try reconnecting to Slack to find and select channels from your workspace.\",\n slackConnectionErrorOccurred:\n \"There was an error connecting to Slack. Try reconnecting to find and select channels from your workspace.\",\n slackChannelAlreadyConnected: \"Error: already connected\",\n slackError: \"Error\",\n slackDisconnect: \"Disconnect\",\n slackChannelSetError: \"Error setting channel.\",\n slackAccessTokenNotSet: \"Access token not set.\",\n slackReconnect: \"Reconnect\",\n },\n locale: \"en\",\n};\n\nexport default en;\n"],"names":["en","translations","archiveNotification","archiveRead","markAllAsRead","notifications","emptyFeedTitle","emptyFeedBody","all","unread","read","unseen","msTeamsChannelSetError","msTeamsConnect","msTeamsConnected","msTeamsConnecting","msTeamsConnectionErrorExists","msTeamsConnectionErrorOccurred","msTeamsConnectContainerDescription","msTeamsDisconnect","msTeamsDisconnecting","msTeamsError","msTeamsReconnect","msTeamsTenantIdNotSet","slackConnectChannel","slackChannelId","slackConnecting","slackDisconnecting","slackConnect","slackConnected","slackConnectContainerDescription","slackSearchbarDisconnected","slackSearchbarNoChannelsConnected","slackSearchbarNoChannelsFound","slackSearchbarChannelsError","slackSearchChannels","slackConnectionErrorExists","slackConnectionErrorOccurred","slackChannelAlreadyConnected","slackError","slackDisconnect","slackChannelSetError","slackAccessTokenNotSet","slackReconnect","locale"],"mappings":"AAEA,MAAMA,IAAkB;AAAA,EACtBC,cAAc;AAAA,IACZC,qBAAqB;AAAA,IACrBC,aAAa;AAAA,IACbC,eAAe;AAAA,IACfC,eAAe;AAAA,IACfC,gBAAgB;AAAA,IAChBC,eAAe;AAAA,IACfC,KAAK;AAAA,IACLC,QAAQ;AAAA,IACRC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,wBAAwB;AAAA,IACxBC,gBAAgB;AAAA,IAChBC,kBAAkB;AAAA,IAClBC,mBAAmB;AAAA,IACnBC,8BACE;AAAA,IACFC,gCACE;AAAA,IACFC,oCACE;AAAA,IACFC,mBAAmB;AAAA,IACnBC,sBAAsB;AAAA,IACtBC,cAAc;AAAA,IACdC,kBAAkB;AAAA,IAClBC,uBAAuB;AAAA,IACvBC,qBAAqB;AAAA,IACrBC,gBAAgB;AAAA,IAChBC,iBAAiB;AAAA,IACjBC,oBAAoB;AAAA,IACpBC,cAAc;AAAA,IACdC,gBAAgB;AAAA,IAChBC,kCACE;AAAA,IACFC,4BAA4B;AAAA,IAC5BC,mCAAmC;AAAA,IACnCC,+BAA+B;AAAA,IAC/BC,6BAA6B;AAAA,IAC7BC,qBAAqB;AAAA,IACrBC,4BACE;AAAA,IACFC,8BACE;AAAA,IACFC,8BAA8B;AAAA,IAC9BC,YAAY;AAAA,IACZC,iBAAiB;AAAA,IACjBC,sBAAsB;AAAA,IACtBC,wBAAwB;AAAA,IACxBC,gBAAgB;AAAA,EAClB;AAAA,EACAC,QAAQ;AACV;"}
@@ -1,10 +0,0 @@
1
- import o from "./de.mjs";
2
- import r from "./en.mjs";
3
- const t = {
4
- en: r,
5
- de: o
6
- };
7
- export {
8
- t as locales
9
- };
10
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../src/modules/i18n/languages/index.ts"],"sourcesContent":["import de from \"./de\";\nimport en from \"./en\";\n\nexport interface Translations {\n readonly archiveRead: string;\n readonly emptyFeedTitle: string;\n readonly emptyFeedBody: string;\n readonly notifications: string;\n readonly poweredBy: string;\n readonly markAllAsRead: string;\n readonly archiveNotification: string;\n readonly all: string;\n readonly unread: string;\n readonly read: string;\n readonly unseen: string;\n readonly msTeamsChannelSetError: string;\n readonly msTeamsConnect: string;\n readonly msTeamsConnected: string;\n readonly msTeamsConnecting: string;\n readonly msTeamsConnectionErrorExists: string;\n readonly msTeamsConnectionErrorOccurred: string;\n readonly msTeamsConnectContainerDescription: string;\n readonly msTeamsDisconnect: string;\n readonly msTeamsDisconnecting: string;\n readonly msTeamsError: string;\n readonly msTeamsReconnect: string;\n readonly msTeamsTenantIdNotSet: string;\n readonly slackConnectChannel: string;\n readonly slackChannelId: string;\n readonly slackConnecting: string;\n readonly slackDisconnecting: string;\n readonly slackConnect: string;\n readonly slackConnected: string;\n readonly slackConnectContainerDescription: string;\n readonly slackSearchbarDisconnected: string;\n readonly slackSearchbarNoChannelsConnected: string;\n readonly slackSearchbarNoChannelsFound: string;\n readonly slackSearchbarChannelsError: string;\n readonly slackSearchChannels: string;\n readonly slackConnectionErrorOccurred: string;\n readonly slackConnectionErrorExists: string;\n readonly slackChannelAlreadyConnected: string;\n readonly slackError: string;\n readonly slackDisconnect: string;\n readonly slackChannelSetError: string;\n readonly slackAccessTokenNotSet: string;\n readonly slackReconnect: string;\n}\n\nexport interface I18nContent {\n readonly translations: Partial<Translations>;\n readonly locale: string;\n}\n\nexport const locales = { en, de };\n"],"names":["locales","en","de"],"mappings":";;AAsDO,MAAMA,IAAU;AAAA,EAAEC,IAAAA;AAAAA,EAAIC,IAAAA;AAAG;"}
@@ -1,48 +0,0 @@
1
- import * as o from "react";
2
- import { useKnockClient as l } from "../../core/context/KnockProvider.mjs";
3
- import "@knocklabs/client";
4
- import "fast-deep-equal";
5
- import { msTeamsProviderKey as v } from "../../core/utils.mjs";
6
- import C from "../hooks/useMsTeamsConnectionStatus.mjs";
7
- import "swr/infinite";
8
- import "swr";
9
- import "../../i18n/context/KnockI18nProvider.mjs";
10
- const n = o.createContext(null), M = ({
11
- knockMsTeamsChannelId: t,
12
- tenantId: e,
13
- children: i
14
- }) => {
15
- const m = l(), {
16
- connectionStatus: r,
17
- setConnectionStatus: c,
18
- errorLabel: s,
19
- setErrorLabel: a,
20
- actionLabel: u,
21
- setActionLabel: p
22
- } = C(m, t, e);
23
- return /* @__PURE__ */ o.createElement(n.Provider, { key: v({
24
- knockMsTeamsChannelId: t,
25
- tenantId: e,
26
- connectionStatus: r,
27
- errorLabel: s
28
- }), value: {
29
- connectionStatus: r,
30
- setConnectionStatus: c,
31
- errorLabel: s,
32
- setErrorLabel: a,
33
- actionLabel: u,
34
- setActionLabel: p,
35
- knockMsTeamsChannelId: t,
36
- tenantId: e
37
- } }, i);
38
- }, S = () => {
39
- const t = o.useContext(n);
40
- if (!t)
41
- throw new Error("useKnockMsTeamsClient must be used within a KnockMsTeamsProvider");
42
- return t;
43
- };
44
- export {
45
- M as KnockMsTeamsProvider,
46
- S as useKnockMsTeamsClient
47
- };
48
- //# sourceMappingURL=KnockMsTeamsProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockMsTeamsProvider.mjs","sources":["../../../../../src/modules/ms-teams/context/KnockMsTeamsProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nimport { useKnockClient } from \"../../core\";\nimport { msTeamsProviderKey } from \"../../core/utils\";\nimport { useMsTeamsConnectionStatus } from \"../hooks\";\nimport { ConnectionStatus } from \"../hooks/useMsTeamsConnectionStatus\";\n\nexport interface KnockMsTeamsProviderState {\n knockMsTeamsChannelId: string;\n tenantId: string;\n connectionStatus: ConnectionStatus;\n setConnectionStatus: (connectionStatus: ConnectionStatus) => void;\n errorLabel: string | null;\n setErrorLabel: (label: string) => void;\n actionLabel: string | null;\n setActionLabel: (label: string | null) => void;\n}\n\nconst MsTeamsProviderStateContext =\n React.createContext<KnockMsTeamsProviderState | null>(null);\n\nexport interface KnockMsTeamsProviderProps {\n knockMsTeamsChannelId: string;\n tenantId: string;\n}\n\nexport const KnockMsTeamsProvider: React.FC<\n PropsWithChildren<KnockMsTeamsProviderProps>\n> = ({ knockMsTeamsChannelId, tenantId, children }) => {\n const knock = useKnockClient();\n\n const {\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n } = useMsTeamsConnectionStatus(knock, knockMsTeamsChannelId, tenantId);\n\n return (\n <MsTeamsProviderStateContext.Provider\n key={msTeamsProviderKey({\n knockMsTeamsChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n })}\n value={{\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n knockMsTeamsChannelId,\n tenantId,\n }}\n >\n {children}\n </MsTeamsProviderStateContext.Provider>\n );\n};\n\nexport const useKnockMsTeamsClient = (): KnockMsTeamsProviderState => {\n const context = React.useContext(MsTeamsProviderStateContext);\n if (!context) {\n throw new Error(\n \"useKnockMsTeamsClient must be used within a KnockMsTeamsProvider\",\n );\n }\n return context;\n};\n"],"names":["MsTeamsProviderStateContext","React","createContext","KnockMsTeamsProvider","knockMsTeamsChannelId","tenantId","children","knock","useKnockClient","connectionStatus","setConnectionStatus","errorLabel","setErrorLabel","actionLabel","setActionLabel","useMsTeamsConnectionStatus","msTeamsProviderKey","useKnockMsTeamsClient","context","useContext","Error"],"mappings":";;;;;;;;;AAmBA,MAAMA,IACJC,EAAMC,cAAgD,IAAI,GAO/CC,IAETA,CAAC;AAAA,EAAEC,uBAAAA;AAAAA,EAAuBC,UAAAA;AAAAA,EAAUC,UAAAA;AAAS,MAAM;AACrD,QAAMC,IAAQC,EAAe,GAEvB;AAAA,IACJC,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,EACEC,IAAAA,EAA2BR,GAAOH,GAAuBC,CAAQ;AAErE,SACG,gBAAAJ,EAAA,cAAAD,EAA4B,UAA5B,EACC,KAAKgB,EAAmB;AAAA,IACtBZ,uBAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAI,kBAAAA;AAAAA,IACAE,YAAAA;AAAAA,EACD,CAAA,GACD,OAAO;AAAA,IACLF,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAV,uBAAAA;AAAAA,IACAC,UAAAA;AAAAA,OAGDC,CACH;AAEJ,GAEaW,IAAwBA,MAAiC;AAC9DC,QAAAA,IAAUjB,EAAMkB,WAAWnB,CAA2B;AAC5D,MAAI,CAACkB;AACG,UAAA,IAAIE,MACR,kEACF;AAEKF,SAAAA;AACT;"}
@@ -1,78 +0,0 @@
1
- import { useKnockMsTeamsClient as g } from "../context/KnockMsTeamsProvider.mjs";
2
- import { useState as l } from "react";
3
- import "../../i18n/context/KnockI18nProvider.mjs";
4
- import { useTranslations as S } from "../../i18n/hooks/useTranslations.mjs";
5
- import "@knocklabs/client";
6
- import { useKnockClient as T } from "../../core/context/KnockProvider.mjs";
7
- import "fast-deep-equal";
8
- import "date-fns";
9
- import "swr/infinite";
10
- import k from "swr";
11
- const M = "MS_TEAMS_CONNECTED_CHANNELS";
12
- function Y({
13
- msTeamsChannelsRecipientObject: {
14
- objectId: e,
15
- collection: a
16
- }
17
- }) {
18
- const {
19
- t: m
20
- } = S(), o = T(), {
21
- connectionStatus: u,
22
- knockMsTeamsChannelId: s
23
- } = g(), [d, r] = l(null), [p, c] = l(!1), {
24
- data: C,
25
- mutate: h,
26
- isValidating: f,
27
- isLoading: E
28
- } = k(
29
- // Only fetch when Microsoft Teams is connected
30
- u === "connected" ? [M, s, a, e] : null,
31
- async () => o.objects.getChannelData({
32
- collection: a,
33
- objectId: e,
34
- channelId: s
35
- }).then((t) => {
36
- var n;
37
- return ((n = t.data) == null ? void 0 : n.connections) ?? [];
38
- }).catch(() => []),
39
- {
40
- onSuccess: () => {
41
- r(null);
42
- }
43
- }
44
- );
45
- return {
46
- data: C ?? null,
47
- updateConnectedChannels: async (t) => {
48
- c(!0);
49
- try {
50
- await h(() => o.objects.setChannelData({
51
- objectId: e,
52
- collection: a,
53
- channelId: s,
54
- data: {
55
- connections: t
56
- }
57
- }).then((n) => {
58
- var i;
59
- return ((i = n.data) == null ? void 0 : i.connections) ?? [];
60
- }), {
61
- populateCache: !0,
62
- revalidate: !1,
63
- optimisticData: t
64
- });
65
- } catch {
66
- r(m("msTeamsChannelSetError") || "");
67
- }
68
- c(!1);
69
- },
70
- updating: p,
71
- loading: E || f,
72
- error: d
73
- };
74
- }
75
- export {
76
- Y as default
77
- };
78
- //# sourceMappingURL=useConnectedMsTeamsChannels.mjs.map