@knocklabs/react-core 0.6.14-canary.0 → 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 (218) hide show
  1. package/package.json +3 -3
  2. package/CHANGELOG.md +0 -485
  3. package/dist/cjs/index.js +0 -2
  4. package/dist/cjs/index.js.map +0 -1
  5. package/dist/cjs/modules/core/constants.js +0 -2
  6. package/dist/cjs/modules/core/constants.js.map +0 -1
  7. package/dist/cjs/modules/core/context/KnockProvider.js +0 -2
  8. package/dist/cjs/modules/core/context/KnockProvider.js.map +0 -1
  9. package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js +0 -2
  10. package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js.map +0 -1
  11. package/dist/cjs/modules/core/hooks/useStableOptions.js +0 -2
  12. package/dist/cjs/modules/core/hooks/useStableOptions.js.map +0 -1
  13. package/dist/cjs/modules/core/utils.js +0 -2
  14. package/dist/cjs/modules/core/utils.js.map +0 -1
  15. package/dist/cjs/modules/feed/context/KnockFeedProvider.js +0 -2
  16. package/dist/cjs/modules/feed/context/KnockFeedProvider.js.map +0 -1
  17. package/dist/cjs/modules/feed/hooks/useFeedSettings.js +0 -2
  18. package/dist/cjs/modules/feed/hooks/useFeedSettings.js.map +0 -1
  19. package/dist/cjs/modules/feed/hooks/useNotificationStore.js +0 -2
  20. package/dist/cjs/modules/feed/hooks/useNotificationStore.js.map +0 -1
  21. package/dist/cjs/modules/feed/hooks/useNotifications.js +0 -2
  22. package/dist/cjs/modules/feed/hooks/useNotifications.js.map +0 -1
  23. package/dist/cjs/modules/guide/context/KnockGuideProvider.js +0 -2
  24. package/dist/cjs/modules/guide/context/KnockGuideProvider.js.map +0 -1
  25. package/dist/cjs/modules/guide/hooks/useGuide.js +0 -2
  26. package/dist/cjs/modules/guide/hooks/useGuide.js.map +0 -1
  27. package/dist/cjs/modules/guide/hooks/useGuideContext.js +0 -2
  28. package/dist/cjs/modules/guide/hooks/useGuideContext.js.map +0 -1
  29. package/dist/cjs/modules/i18n/context/KnockI18nProvider.js +0 -2
  30. package/dist/cjs/modules/i18n/context/KnockI18nProvider.js.map +0 -1
  31. package/dist/cjs/modules/i18n/hooks/useTranslations.js +0 -2
  32. package/dist/cjs/modules/i18n/hooks/useTranslations.js.map +0 -1
  33. package/dist/cjs/modules/i18n/languages/de.js +0 -2
  34. package/dist/cjs/modules/i18n/languages/de.js.map +0 -1
  35. package/dist/cjs/modules/i18n/languages/en.js +0 -2
  36. package/dist/cjs/modules/i18n/languages/en.js.map +0 -1
  37. package/dist/cjs/modules/i18n/languages/index.js +0 -2
  38. package/dist/cjs/modules/i18n/languages/index.js.map +0 -1
  39. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js +0 -2
  40. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js.map +0 -1
  41. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js +0 -2
  42. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js.map +0 -1
  43. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js +0 -2
  44. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js.map +0 -1
  45. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js +0 -2
  46. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js.map +0 -1
  47. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js +0 -2
  48. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js.map +0 -1
  49. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js +0 -2
  50. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js.map +0 -1
  51. package/dist/cjs/modules/slack/context/KnockSlackProvider.js +0 -2
  52. package/dist/cjs/modules/slack/context/KnockSlackProvider.js.map +0 -1
  53. package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js +0 -2
  54. package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js.map +0 -1
  55. package/dist/cjs/modules/slack/hooks/useSlackAuth.js +0 -2
  56. package/dist/cjs/modules/slack/hooks/useSlackAuth.js.map +0 -1
  57. package/dist/cjs/modules/slack/hooks/useSlackChannels.js +0 -2
  58. package/dist/cjs/modules/slack/hooks/useSlackChannels.js.map +0 -1
  59. package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js +0 -2
  60. package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js.map +0 -1
  61. package/dist/esm/index.mjs +0 -66
  62. package/dist/esm/index.mjs.map +0 -1
  63. package/dist/esm/modules/core/constants.mjs +0 -5
  64. package/dist/esm/modules/core/constants.mjs.map +0 -1
  65. package/dist/esm/modules/core/context/KnockProvider.mjs +0 -35
  66. package/dist/esm/modules/core/context/KnockProvider.mjs.map +0 -1
  67. package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs +0 -29
  68. package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs.map +0 -1
  69. package/dist/esm/modules/core/hooks/useStableOptions.mjs +0 -13
  70. package/dist/esm/modules/core/hooks/useStableOptions.mjs.map +0 -1
  71. package/dist/esm/modules/core/utils.mjs +0 -49
  72. package/dist/esm/modules/core/utils.mjs.map +0 -1
  73. package/dist/esm/modules/feed/context/KnockFeedProvider.mjs +0 -37
  74. package/dist/esm/modules/feed/context/KnockFeedProvider.mjs.map +0 -1
  75. package/dist/esm/modules/feed/hooks/useFeedSettings.mjs +0 -23
  76. package/dist/esm/modules/feed/hooks/useFeedSettings.mjs.map +0 -1
  77. package/dist/esm/modules/feed/hooks/useNotificationStore.mjs +0 -12
  78. package/dist/esm/modules/feed/hooks/useNotificationStore.mjs.map +0 -1
  79. package/dist/esm/modules/feed/hooks/useNotifications.mjs +0 -34
  80. package/dist/esm/modules/feed/hooks/useNotifications.mjs.map +0 -1
  81. package/dist/esm/modules/guide/context/KnockGuideProvider.mjs +0 -33
  82. package/dist/esm/modules/guide/context/KnockGuideProvider.mjs.map +0 -1
  83. package/dist/esm/modules/guide/hooks/useGuide.mjs +0 -21
  84. package/dist/esm/modules/guide/hooks/useGuide.mjs.map +0 -1
  85. package/dist/esm/modules/guide/hooks/useGuideContext.mjs +0 -12
  86. package/dist/esm/modules/guide/hooks/useGuideContext.mjs.map +0 -1
  87. package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs +0 -11
  88. package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs.map +0 -1
  89. package/dist/esm/modules/i18n/hooks/useTranslations.mjs +0 -17
  90. package/dist/esm/modules/i18n/hooks/useTranslations.mjs.map +0 -1
  91. package/dist/esm/modules/i18n/languages/de.mjs +0 -39
  92. package/dist/esm/modules/i18n/languages/de.mjs.map +0 -1
  93. package/dist/esm/modules/i18n/languages/en.mjs +0 -51
  94. package/dist/esm/modules/i18n/languages/en.mjs.map +0 -1
  95. package/dist/esm/modules/i18n/languages/index.mjs +0 -10
  96. package/dist/esm/modules/i18n/languages/index.mjs.map +0 -1
  97. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs +0 -48
  98. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs.map +0 -1
  99. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs +0 -78
  100. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs.map +0 -1
  101. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs +0 -53
  102. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs.map +0 -1
  103. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs +0 -41
  104. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs.map +0 -1
  105. package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs +0 -38
  106. package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs.map +0 -1
  107. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs +0 -51
  108. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs.map +0 -1
  109. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs +0 -49
  110. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs.map +0 -1
  111. package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs +0 -78
  112. package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs.map +0 -1
  113. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs +0 -68
  114. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs.map +0 -1
  115. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs +0 -52
  116. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs.map +0 -1
  117. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs +0 -47
  118. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs.map +0 -1
  119. package/dist/types/index.d.ts +0 -8
  120. package/dist/types/index.d.ts.map +0 -1
  121. package/dist/types/interfaces.d.ts +0 -5
  122. package/dist/types/interfaces.d.ts.map +0 -1
  123. package/dist/types/modules/core/constants.d.ts +0 -8
  124. package/dist/types/modules/core/constants.d.ts.map +0 -1
  125. package/dist/types/modules/core/context/KnockProvider.d.ts +0 -20
  126. package/dist/types/modules/core/context/KnockProvider.d.ts.map +0 -1
  127. package/dist/types/modules/core/context/index.d.ts +0 -2
  128. package/dist/types/modules/core/context/index.d.ts.map +0 -1
  129. package/dist/types/modules/core/hooks/index.d.ts +0 -3
  130. package/dist/types/modules/core/hooks/index.d.ts.map +0 -1
  131. package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts +0 -5
  132. package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts.map +0 -1
  133. package/dist/types/modules/core/hooks/useStableOptions.d.ts +0 -2
  134. package/dist/types/modules/core/hooks/useStableOptions.d.ts.map +0 -1
  135. package/dist/types/modules/core/index.d.ts +0 -5
  136. package/dist/types/modules/core/index.d.ts.map +0 -1
  137. package/dist/types/modules/core/utils.d.ts +0 -24
  138. package/dist/types/modules/core/utils.d.ts.map +0 -1
  139. package/dist/types/modules/feed/context/KnockFeedProvider.d.ts +0 -19
  140. package/dist/types/modules/feed/context/KnockFeedProvider.d.ts.map +0 -1
  141. package/dist/types/modules/feed/context/index.d.ts +0 -2
  142. package/dist/types/modules/feed/context/index.d.ts.map +0 -1
  143. package/dist/types/modules/feed/hooks/index.d.ts +0 -4
  144. package/dist/types/modules/feed/hooks/index.d.ts.map +0 -1
  145. package/dist/types/modules/feed/hooks/useFeedSettings.d.ts +0 -12
  146. package/dist/types/modules/feed/hooks/useFeedSettings.d.ts.map +0 -1
  147. package/dist/types/modules/feed/hooks/useNotificationStore.d.ts +0 -34
  148. package/dist/types/modules/feed/hooks/useNotificationStore.d.ts.map +0 -1
  149. package/dist/types/modules/feed/hooks/useNotifications.d.ts +0 -4
  150. package/dist/types/modules/feed/hooks/useNotifications.d.ts.map +0 -1
  151. package/dist/types/modules/feed/index.d.ts +0 -3
  152. package/dist/types/modules/feed/index.d.ts.map +0 -1
  153. package/dist/types/modules/guide/context/KnockGuideProvider.d.ts +0 -19
  154. package/dist/types/modules/guide/context/KnockGuideProvider.d.ts.map +0 -1
  155. package/dist/types/modules/guide/context/index.d.ts +0 -2
  156. package/dist/types/modules/guide/context/index.d.ts.map +0 -1
  157. package/dist/types/modules/guide/hooks/index.d.ts +0 -2
  158. package/dist/types/modules/guide/hooks/index.d.ts.map +0 -1
  159. package/dist/types/modules/guide/hooks/useGuide.d.ts +0 -9
  160. package/dist/types/modules/guide/hooks/useGuide.d.ts.map +0 -1
  161. package/dist/types/modules/guide/hooks/useGuideContext.d.ts +0 -7
  162. package/dist/types/modules/guide/hooks/useGuideContext.d.ts.map +0 -1
  163. package/dist/types/modules/guide/index.d.ts +0 -3
  164. package/dist/types/modules/guide/index.d.ts.map +0 -1
  165. package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts +0 -8
  166. package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts.map +0 -1
  167. package/dist/types/modules/i18n/context/index.d.ts +0 -2
  168. package/dist/types/modules/i18n/context/index.d.ts.map +0 -1
  169. package/dist/types/modules/i18n/hooks/index.d.ts +0 -2
  170. package/dist/types/modules/i18n/hooks/index.d.ts.map +0 -1
  171. package/dist/types/modules/i18n/hooks/useTranslations.d.ts +0 -5
  172. package/dist/types/modules/i18n/hooks/useTranslations.d.ts.map +0 -1
  173. package/dist/types/modules/i18n/index.d.ts +0 -4
  174. package/dist/types/modules/i18n/index.d.ts.map +0 -1
  175. package/dist/types/modules/i18n/languages/de.d.ts +0 -4
  176. package/dist/types/modules/i18n/languages/de.d.ts.map +0 -1
  177. package/dist/types/modules/i18n/languages/en.d.ts +0 -4
  178. package/dist/types/modules/i18n/languages/en.d.ts.map +0 -1
  179. package/dist/types/modules/i18n/languages/index.d.ts +0 -54
  180. package/dist/types/modules/i18n/languages/index.d.ts.map +0 -1
  181. package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts +0 -20
  182. package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts.map +0 -1
  183. package/dist/types/modules/ms-teams/context/index.d.ts +0 -2
  184. package/dist/types/modules/ms-teams/context/index.d.ts.map +0 -1
  185. package/dist/types/modules/ms-teams/hooks/index.d.ts +0 -6
  186. package/dist/types/modules/ms-teams/hooks/index.d.ts.map +0 -1
  187. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts +0 -15
  188. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts.map +0 -1
  189. package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts +0 -7
  190. package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts.map +0 -1
  191. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts +0 -14
  192. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts.map +0 -1
  193. package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts +0 -13
  194. package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts.map +0 -1
  195. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts +0 -13
  196. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts.map +0 -1
  197. package/dist/types/modules/ms-teams/index.d.ts +0 -4
  198. package/dist/types/modules/ms-teams/index.d.ts.map +0 -1
  199. package/dist/types/modules/ms-teams/interfaces.d.ts +0 -11
  200. package/dist/types/modules/ms-teams/interfaces.d.ts.map +0 -1
  201. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts +0 -30
  202. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts.map +0 -1
  203. package/dist/types/modules/slack/context/index.d.ts +0 -2
  204. package/dist/types/modules/slack/context/index.d.ts.map +0 -1
  205. package/dist/types/modules/slack/hooks/index.d.ts +0 -5
  206. package/dist/types/modules/slack/hooks/index.d.ts.map +0 -1
  207. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts +0 -15
  208. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts.map +0 -1
  209. package/dist/types/modules/slack/hooks/useSlackAuth.d.ts +0 -11
  210. package/dist/types/modules/slack/hooks/useSlackAuth.d.ts.map +0 -1
  211. package/dist/types/modules/slack/hooks/useSlackChannels.d.ts +0 -13
  212. package/dist/types/modules/slack/hooks/useSlackChannels.d.ts.map +0 -1
  213. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts +0 -13
  214. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts.map +0 -1
  215. package/dist/types/modules/slack/index.d.ts +0 -4
  216. package/dist/types/modules/slack/index.d.ts.map +0 -1
  217. package/dist/types/modules/slack/interfaces.d.ts +0 -10
  218. package/dist/types/modules/slack/interfaces.d.ts.map +0 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@knocklabs/react-core",
3
3
  "description": "A set of React components to build notification experiences powered by Knock",
4
4
  "author": "@knocklabs",
5
- "version": "0.6.14-canary.0",
5
+ "version": "0.6.14-canary.2",
6
6
  "license": "MIT",
7
7
  "main": "dist/cjs/index.js",
8
8
  "module": "dist/esm/index.mjs",
@@ -47,7 +47,7 @@
47
47
  "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
48
48
  },
49
49
  "dependencies": {
50
- "@knocklabs/client": "^0.14.10-canary.0",
50
+ "@knocklabs/client": "workspace:^",
51
51
  "@tanstack/react-store": "^0.7.1",
52
52
  "date-fns": "^4.0.0",
53
53
  "fast-deep-equal": "^3.1.3",
@@ -75,4 +75,4 @@
75
75
  "vite-plugin-no-bundle": "^4.0.0",
76
76
  "vitest": "^3.1.1"
77
77
  }
78
- }
78
+ }
package/CHANGELOG.md DELETED
@@ -1,485 +0,0 @@
1
- # Changelog
2
-
3
- ## 0.6.14-canary.0
4
-
5
- ### Patch Changes
6
-
7
- - 86a72cc: feat: Migrates the internal store library from zustand to @tanstack/store. This is a non-breaking change that maintains backwards compatibility with the @knocklabs/client and @knocklabs/react-core packages.
8
- - Updated dependencies [86a72cc]
9
- - @knocklabs/client@0.14.10-canary.0
10
-
11
- ## 0.6.13
12
-
13
- ### Patch Changes
14
-
15
- - bea5604: update @knocklabs/react & @knocklabs/react-core to use named exports instead of barrel exports
16
-
17
- ## 0.6.12
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies [4e73f12]
22
- - @knocklabs/client@0.14.9
23
-
24
- ## 0.6.11
25
-
26
- ### Patch Changes
27
-
28
- - dbbbaf7: Dispose of feed on unmount in `useNotifications` hook
29
-
30
- Previously, the `useNotifications` hook did not clean up old instances of `Feed`
31
- on unmount. This has been fixed.
32
-
33
- ## 0.6.10
34
-
35
- ### Patch Changes
36
-
37
- - 337bade: feat: introduce ability to override slack scopes
38
-
39
- ## 0.6.9
40
-
41
- ### Patch Changes
42
-
43
- - 329ee05: downgrade tanstack store deps to 0.6.x to work in older TS version
44
- - Updated dependencies [329ee05]
45
- - @knocklabs/client@0.14.8
46
-
47
- ## 0.6.8
48
-
49
- ### Patch Changes
50
-
51
- - Updated dependencies [efd1005]
52
- - @knocklabs/client@0.14.7
53
-
54
- ## 0.6.7
55
-
56
- ### Patch Changes
57
-
58
- - Updated dependencies [a5c615e]
59
- - @knocklabs/client@0.14.6
60
-
61
- ## 0.6.6
62
-
63
- ### Patch Changes
64
-
65
- - 8f00623: activation location rules support for guides
66
- - Updated dependencies [8f00623]
67
- - @knocklabs/client@0.14.5
68
-
69
- ## 0.6.5
70
-
71
- ### Patch Changes
72
-
73
- - e800896: feat: typescript fixes + quality of life improvements
74
- - Updated dependencies [e800896]
75
- - @knocklabs/client@0.14.4
76
-
77
- ## 0.6.4
78
-
79
- ### Patch Changes
80
-
81
- - 96d70bc: fixes memory leak when unmounting the useNotifications hook
82
-
83
- ## 0.6.3
84
-
85
- ### Patch Changes
86
-
87
- - c97a1d9: Update TanStack Store
88
- - Updated dependencies [c97a1d9]
89
- - @knocklabs/client@0.14.3
90
-
91
- ## 0.6.2
92
-
93
- ### Patch Changes
94
-
95
- - Updated dependencies [00439a2]
96
- - @knocklabs/client@0.14.2
97
-
98
- ## 0.6.1
99
-
100
- ### Patch Changes
101
-
102
- - Updated dependencies [4c41841]
103
- - @knocklabs/client@0.14.1
104
-
105
- ## 0.6.0
106
-
107
- ### Minor Changes
108
-
109
- - 711948c: feat: add guide client, hooks, provider, and components
110
-
111
- ### Patch Changes
112
-
113
- - Updated dependencies [711948c]
114
- - @knocklabs/client@0.14.0
115
-
116
- ## 0.5.2
117
-
118
- ### Patch Changes
119
-
120
- - Updated dependencies [187abc1]
121
- - @knocklabs/client@0.13.1
122
-
123
- ## 0.5.1
124
-
125
- ### Patch Changes
126
-
127
- - Updated dependencies [4cd1b1e]
128
- - @knocklabs/client@0.13.0
129
-
130
- ## 0.5.0
131
-
132
- ### Minor Changes
133
-
134
- - 8ba5dcb: [JS] Support React 19 in React SDKs
135
-
136
- ### Patch Changes
137
-
138
- - Updated dependencies [8ba5dcb]
139
- - @knocklabs/client@0.12.0
140
-
141
- ## 0.4.2
142
-
143
- ### Patch Changes
144
-
145
- - 226e319: Fix unnecessary refetches of first page by `useSlackChannels` and `useMsTeamsTeams` hooks
146
-
147
- Previously, both the `useSlackChannels` and `useMsTeamsTeams` hooks would unnecessarily refetch the first page of data whenever multiple pages of data were loaded. This has been fixed.
148
-
149
- ## 0.4.1
150
-
151
- ### Patch Changes
152
-
153
- - 1b86a0c: fix: correct pagination logic in useSlackChannels hook (KNO-7995)
154
-
155
- ## 0.4.0
156
-
157
- ### Minor Changes
158
-
159
- - 7904b65: Remove `slackSearchbarMultipleChannels` from translations strings
160
-
161
- ## 0.3.4
162
-
163
- ### Patch Changes
164
-
165
- - Updated dependencies [8ea25f4]
166
- - @knocklabs/client@0.11.4
167
-
168
- ## 0.3.3
169
-
170
- ### Patch Changes
171
-
172
- - 12bc993: Use SWR in `useConnectedSlackChannels` hook
173
-
174
- `useConnectedSlackChannels` now uses [SWR](https://swr.vercel.app/) under the hood. The returned array of connections (`data`) will now update optimistically when `updateConnectedChannels` is called.
175
-
176
- - Updated dependencies [4f76cd6]
177
- - @knocklabs/client@0.11.3
178
-
179
- ## 0.3.2
180
-
181
- ### Patch Changes
182
-
183
- - 85418a0: rename constants.ts to interfaces.ts
184
- - 8cc9338: Fix types in useConnectedSlackChannels.ts
185
- - da84a75: deprecate tenant in favor of tenantId in KnockSlackProvider and useKnockSlackClient
186
- - 2161d3f: Use SWR for data fetching in useConnectedMsTeamsChannels hook
187
- - 1ba1393: add TeamsKit hooks for teams and channels
188
- - Updated dependencies [2161d3f]
189
- - Updated dependencies [2161d3f]
190
- - Updated dependencies [1ba1393]
191
- - Updated dependencies [b4b5c02]
192
- - @knocklabs/client@0.11.2
193
-
194
- ## 0.3.1
195
-
196
- ### Patch Changes
197
-
198
- - b9f6712: fix: types for userId should handle undefined and null
199
- - Updated dependencies [b9f6712]
200
- - @knocklabs/client@0.11.1
201
-
202
- ## 0.3.0
203
-
204
- ### Minor Changes
205
-
206
- - 013ad8d: feat: add MsTeamsAuthButton
207
-
208
- ### Patch Changes
209
-
210
- - Updated dependencies [013ad8d]
211
- - @knocklabs/client@0.11.0
212
-
213
- ## 0.2.29
214
-
215
- ### Patch Changes
216
-
217
- - Updated dependencies [26db496]
218
- - Updated dependencies [988aaf9]
219
- - @knocklabs/client@0.10.17
220
-
221
- ## 0.2.28
222
-
223
- ### Patch Changes
224
-
225
- - Updated dependencies [bc99374]
226
- - @knocklabs/client@0.10.16
227
-
228
- ## 0.2.27
229
-
230
- ### Patch Changes
231
-
232
- - Updated dependencies [26166e3]
233
- - @knocklabs/client@0.10.15
234
-
235
- ## 0.2.26
236
-
237
- ### Patch Changes
238
-
239
- - Updated dependencies [7510909]
240
- - @knocklabs/client@0.10.14
241
-
242
- ## 0.2.25
243
-
244
- ### Patch Changes
245
-
246
- - 47a88da: feature: allow passing additional OAuth scope to SlackAuthButton
247
-
248
- ## 0.2.24
249
-
250
- ### Patch Changes
251
-
252
- - 1d440f7: feat: add prebuilt In App Feed Components for React Native
253
- - Updated dependencies [1d440f7]
254
- - @knocklabs/client@0.10.13
255
-
256
- ## 0.2.23
257
-
258
- ### Patch Changes
259
-
260
- - Updated dependencies [5545f9e]
261
- - @knocklabs/client@0.10.12
262
-
263
- ## 0.2.22
264
-
265
- ### Patch Changes
266
-
267
- - Updated dependencies [395f0ca]
268
- - @knocklabs/client@0.10.11
269
-
270
- ## 0.2.21
271
-
272
- ### Patch Changes
273
-
274
- - a4d520c: chore: update generic types
275
- - Updated dependencies [a4d520c]
276
- - @knocklabs/client@0.10.10
277
-
278
- ## 0.2.20
279
-
280
- ### Patch Changes
281
-
282
- - Updated dependencies [d0adb14]
283
- - @knocklabs/client@0.10.9
284
-
285
- ## 0.2.19
286
-
287
- ### Patch Changes
288
-
289
- - 1e60c19: fix: re-introduce subscribe/setstate call for useNotifications
290
-
291
- ## 0.2.18
292
-
293
- ### Patch Changes
294
-
295
- - 29e3942: fix: introduce new useNotificationStore hook to prevent issues that prevent state updates
296
- - Updated dependencies [29e3942]
297
- - @knocklabs/client@0.10.8
298
-
299
- ## 0.2.17
300
-
301
- ### Patch Changes
302
-
303
- - f25b112: fix: ensure feed store reference re-renders after changes to user
304
- - Updated dependencies [f25b112]
305
- - @knocklabs/client@0.10.7
306
-
307
- ## 0.2.16
308
-
309
- ### Patch Changes
310
-
311
- - 5d2ddab: fix: ensure options are memoized in useAuthenticatedKnockClient
312
-
313
- ## 0.2.15
314
-
315
- ### Patch Changes
316
-
317
- - b29a47a: Add KnockExpoPushNotificationProvider to react-native sdk
318
- - Updated dependencies [b29a47a]
319
- - @knocklabs/client@0.10.6
320
-
321
- ## 0.2.14
322
-
323
- ### Patch Changes
324
-
325
- - 5fe3063: Fixes issue where notification data was not updating in react strict mode
326
-
327
- ## 0.2.13
328
-
329
- ### Patch Changes
330
-
331
- - Updated dependencies [044eb0f]
332
- - @knocklabs/client@0.10.5
333
-
334
- ## 0.2.12
335
-
336
- ### Patch Changes
337
-
338
- - Updated dependencies [5a7c56e]
339
- - @knocklabs/client@0.10.4
340
-
341
- ## 0.2.11
342
-
343
- ### Patch Changes
344
-
345
- - Updated dependencies [a71ce51]
346
- - @knocklabs/client@0.10.3
347
-
348
- ## 0.2.10
349
-
350
- ### Patch Changes
351
-
352
- - 42ba22c: fix: improve typing for react < 18
353
- - Updated dependencies [42ba22c]
354
- - @knocklabs/client@0.10.2
355
-
356
- ## 0.2.9
357
-
358
- ### Patch Changes
359
-
360
- - 354dd1a: fix: move away from jsx runtime to support react 16 + 17
361
-
362
- ## 0.2.8
363
-
364
- ### Patch Changes
365
-
366
- - 3c277cb: fix: remove react-query and replace with swr for react 16+ support
367
- - Updated dependencies [3c277cb]
368
- - Updated dependencies [567e24f]
369
- - @knocklabs/client@0.10.1
370
-
371
- ## 0.2.7
372
-
373
- ### Patch Changes
374
-
375
- - Updated dependencies [8bdc75b]
376
- - @knocklabs/client@0.10.0
377
-
378
- ## 0.2.6
379
-
380
- ### Patch Changes
381
-
382
- - Updated dependencies [f58371c]
383
- - @knocklabs/client@0.9.4
384
-
385
- ## 0.2.5
386
-
387
- ### Patch Changes
388
-
389
- - 10b5646: Include src files for react-core
390
-
391
- ## 0.2.4
392
-
393
- ### Patch Changes
394
-
395
- - bc69618: Add react-native to package.json files to fix a bug in our React Native SDK
396
- - Updated dependencies [bc69618]
397
- - @knocklabs/client@0.9.3
398
-
399
- ## 0.2.3
400
-
401
- ### Patch Changes
402
-
403
- - Updated dependencies [fed0f8c]
404
- - @knocklabs/client@0.9.2
405
-
406
- ## 0.2.2
407
-
408
- ### Patch Changes
409
-
410
- - 282d005: Handle auth disconnected status.
411
-
412
- ## 0.2.1
413
-
414
- ### Patch Changes
415
-
416
- - Updated dependencies [f37d680]
417
- - @knocklabs/client@0.9.1
418
-
419
- ## 0.2.0
420
-
421
- ### Minor Changes
422
-
423
- - 627e643: Add SlackKit components, hooks, client JS functions, and example apps.
424
-
425
- ### Patch Changes
426
-
427
- - e076109: Fix hover state for connect button.
428
- - Updated dependencies [627e643]
429
- - @knocklabs/client@0.9.0
430
-
431
- ## 0.1.6
432
-
433
- ### Patch Changes
434
-
435
- - c9faba5: fix esm build issues with mjs files
436
- - Updated dependencies [c9faba5]
437
- - @knocklabs/client@0.8.21
438
-
439
- ## 0.1.5
440
-
441
- ### Patch Changes
442
-
443
- - Re-releasing packages
444
- - Updated dependencies
445
- - @knocklabs/client@0.8.20
446
-
447
- ## 0.1.4
448
-
449
- ### Patch Changes
450
-
451
- - 7786ec5: chore: upgrade to yarn modern and update local package references
452
- - 9dd0d15: feat: add onUserTokenExpiring callback option to client
453
- - Updated dependencies [7786ec5]
454
- - Updated dependencies [9dd0d15]
455
- - @knocklabs/client@0.8.19
456
-
457
- ## 0.1.3
458
-
459
- ### Patch Changes
460
-
461
- - 1050660: feat: switch timestamp formatting to date-fns intlFormatDistance
462
- - Updated dependencies [e53c200]
463
- - Updated dependencies [d4ba1f2]
464
- - @knocklabs/client@0.8.18
465
-
466
- ## 0.1.2
467
-
468
- ### Patch Changes
469
-
470
- - 8988230: Fix esm exports and date-fns/locale imports
471
- - 8315372: Fix cjs build output for React components
472
-
473
- ## 0.1.1
474
-
475
- ### Patch Changes
476
-
477
- - d8a216e: fix: react-core build process
478
- fix: remove headless prop from KnockFeedProvider
479
- fix: move KnockFeedContainer from react-core to react and rename to NotificationFeedContainer
480
-
481
- ## 0.1.0
482
-
483
- ### Patch Changes
484
-
485
- - bcdbc86: Initialize monorepo
package/dist/cjs/index.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./modules/core/context/KnockProvider.js"),c=require("./modules/core/hooks/useAuthenticatedKnockClient.js"),a=require("./modules/core/hooks/useStableOptions.js"),d=require("./modules/core/constants.js"),e=require("./modules/core/utils.js"),n=require("./modules/feed/context/KnockFeedProvider.js"),l=require("./modules/feed/hooks/useNotifications.js"),k=require("./modules/feed/hooks/useFeedSettings.js"),o=require("./modules/feed/hooks/useNotificationStore.js"),t=require("./modules/guide/context/KnockGuideProvider.js"),K=require("./modules/guide/hooks/useGuide.js"),r=require("./modules/ms-teams/context/KnockMsTeamsProvider.js"),C=require("./modules/ms-teams/hooks/useMsTeamsConnectionStatus.js"),S=require("./modules/ms-teams/hooks/useMsTeamsAuth.js"),m=require("./modules/ms-teams/hooks/useMsTeamsTeams.js"),q=require("./modules/ms-teams/hooks/useMsTeamsChannels.js"),v=require("./modules/ms-teams/hooks/useConnectedMsTeamsChannels.js"),i=require("./modules/slack/context/KnockSlackProvider.js"),P=require("./modules/slack/hooks/useSlackConnectionStatus.js"),T=require("./modules/slack/hooks/useSlackChannels.js"),M=require("./modules/slack/hooks/useConnectedSlackChannels.js"),f=require("./modules/slack/hooks/useSlackAuth.js"),u=require("./modules/i18n/context/KnockI18nProvider.js"),h=require("./modules/i18n/hooks/useTranslations.js"),F=require("./modules/i18n/languages/index.js");exports.KnockProvider=s.KnockProvider;exports.useKnockClient=s.useKnockClient;exports.useAuthenticatedKnockClient=c;exports.useStableOptions=a;exports.FilterStatus=d.FilterStatus;exports.feedProviderKey=e.feedProviderKey;exports.formatBadgeCount=e.formatBadgeCount;exports.formatTimestamp=e.formatTimestamp;exports.msTeamsProviderKey=e.msTeamsProviderKey;exports.renderNodeOrFallback=e.renderNodeOrFallback;exports.slackProviderKey=e.slackProviderKey;exports.toSentenceCase=e.toSentenceCase;exports.KnockFeedProvider=n.KnockFeedProvider;exports.useKnockFeed=n.useKnockFeed;exports.useNotifications=l;exports.useFeedSettings=k;exports.useCreateNotificationStore=o.useCreateNotificationStore;exports.useNotificationStore=o.default;exports.KnockGuideContext=t.KnockGuideContext;exports.KnockGuideProvider=t.KnockGuideProvider;exports.useGuide=K.useGuide;exports.KnockMsTeamsProvider=r.KnockMsTeamsProvider;exports.useKnockMsTeamsClient=r.useKnockMsTeamsClient;exports.useMsTeamsConnectionStatus=C;exports.useMsTeamsAuth=S;exports.useMsTeamsTeams=m;exports.useMsTeamsChannels=q;exports.useConnectedMsTeamsChannels=v;exports.KnockSlackProvider=i.KnockSlackProvider;exports.useKnockSlackClient=i.useKnockSlackClient;exports.useSlackConnectionStatus=P;exports.useSlackChannels=T;exports.useConnectedSlackChannels=M;exports.useSlackAuth=f;exports.I18nContext=u.I18nContext;exports.KnockI18nProvider=u.KnockI18nProvider;exports.useTranslations=h.useTranslations;exports.locales=F.locales;
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var n=(e=>(e.All="all",e.Read="read",e.Unseen="unseen",e.Unread="unread",e))(n||{});exports.FilterStatus=n;
2
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/modules/core/constants.ts"],"sourcesContent":["export enum FilterStatus {\n All = \"all\",\n Read = \"read\",\n Unseen = \"unseen\",\n Unread = \"unread\",\n}\n\nexport type ColorMode = \"light\" | \"dark\";\n"],"names":["FilterStatus","All","Read","Unseen","Unread"],"mappings":"gFAAYA,IAAAA,GAAAA,IACVC,EAAAA,IAAM,MACNC,EAAAA,KAAO,OACPC,EAAAA,OAAS,SACTC,EAAAA,OAAS,SAJCJ,IAAAA,GAAAA,CAAAA,CAAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),b=require("../../i18n/context/KnockI18nProvider.js"),K=require("../hooks/useAuthenticatedKnockClient.js");require("fast-deep-equal");function m(e){if(e&&typeof e=="object"&&"default"in e)return e;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const o=m(f),i=o.createContext(null),P=({apiKey:e,host:n,logLevel:t,userId:r,userToken:s,onUserTokenExpiring:c,timeBeforeExpirationInMs:u,children:a,i18n:l})=>{const d=o.useMemo(()=>({host:n,onUserTokenExpiring:c,timeBeforeExpirationInMs:u,logLevel:t}),[n,c,u,t]),k=K(e??"",r,s,d);return o.createElement(i.Provider,{value:{knock:k}},o.createElement(b.KnockI18nProvider,{i18n:l},a))},p=()=>{const e=o.useContext(i);if(!e)throw new Error("useKnockClient must be used within a KnockProvider");return e.knock};exports.KnockProvider=P;exports.useKnockClient=p;
2
- //# sourceMappingURL=KnockProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockProvider.js","sources":["../../../../../src/modules/core/context/KnockProvider.tsx"],"sourcesContent":["import Knock, { AuthenticateOptions, LogLevel } from \"@knocklabs/client\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nimport { I18nContent, KnockI18nProvider } from \"../../i18n\";\nimport { useAuthenticatedKnockClient } from \"../hooks\";\n\nexport interface KnockProviderState {\n knock: Knock;\n}\n\nconst KnockContext = React.createContext<KnockProviderState | null>(null);\n\nexport interface KnockProviderProps {\n // Knock client props\n apiKey: string | undefined;\n host?: string;\n // Authentication props\n userId: Knock[\"userId\"];\n userToken?: Knock[\"userToken\"];\n onUserTokenExpiring?: AuthenticateOptions[\"onUserTokenExpiring\"];\n timeBeforeExpirationInMs?: AuthenticateOptions[\"timeBeforeExpirationInMs\"];\n // i18n translations\n i18n?: I18nContent;\n logLevel?: LogLevel;\n}\n\nexport const KnockProvider: React.FC<PropsWithChildren<KnockProviderProps>> = ({\n apiKey,\n host,\n logLevel,\n userId,\n userToken,\n onUserTokenExpiring,\n timeBeforeExpirationInMs,\n children,\n i18n,\n}) => {\n // We memoize the options here so that we don't create a new object on every re-render\n const authenticateOptions = React.useMemo(\n () => ({\n host,\n onUserTokenExpiring,\n timeBeforeExpirationInMs,\n logLevel,\n }),\n [host, onUserTokenExpiring, timeBeforeExpirationInMs, logLevel],\n );\n\n const knock = useAuthenticatedKnockClient(\n apiKey ?? \"\",\n userId,\n userToken,\n authenticateOptions,\n );\n\n return (\n <KnockContext.Provider value={{ knock }}>\n <KnockI18nProvider i18n={i18n}>{children}</KnockI18nProvider>\n </KnockContext.Provider>\n );\n};\n\nexport const useKnockClient = (): Knock => {\n const context = React.useContext(KnockContext);\n if (!context) {\n throw new Error(\"useKnockClient must be used within a KnockProvider\");\n }\n return context.knock;\n};\n"],"names":["KnockContext","React","createContext","KnockProvider","apiKey","host","logLevel","userId","userToken","onUserTokenExpiring","timeBeforeExpirationInMs","children","i18n","authenticateOptions","useMemo","knock","useAuthenticatedKnockClient","KnockI18nProvider","useKnockClient","context","useContext","Error"],"mappings":"yjBAWMA,EAAeC,EAAMC,cAAyC,IAAI,EAgB3DC,EAAiEA,CAAC,CAC7EC,OAAAA,EACAC,KAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,UAAAA,EACAC,oBAAAA,EACAC,yBAAAA,EACAC,SAAAA,EACAC,KAAAA,CACF,IAAM,CAEEC,MAAAA,EAAsBZ,EAAMa,QAChC,KAAO,CACLT,KAAAA,EACAI,oBAAAA,EACAC,yBAAAA,EACAJ,SAAAA,IAEF,CAACD,EAAMI,EAAqBC,EAA0BJ,CAAQ,CAChE,EAEMS,EAAQC,EACZZ,GAAU,GACVG,EACAC,EACAK,CACF,EAEA,OACGZ,EAAA,cAAAD,EAAa,SAAb,CAAsB,MAAO,CAAEe,MAAAA,CAAAA,CAC9B,EAAAd,EAAA,cAACgB,EAAAA,kBAAkB,CAAA,KAAAL,CAAA,EAAaD,CAAS,CAC3C,CAEJ,EAEaO,EAAiBA,IAAa,CACnCC,MAAAA,EAAUlB,EAAMmB,WAAWpB,CAAY,EAC7C,GAAI,CAACmB,EACG,MAAA,IAAIE,MAAM,oDAAoD,EAEtE,OAAOF,EAAQJ,KACjB"}
@@ -1,2 +0,0 @@
1
- "use strict";const s=require("@knocklabs/client"),d=require("react");require("../context/KnockProvider.js");const k=require("./useStableOptions.js");require("date-fns");const l=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},h=l(s),o=l(d);function f(e,r,c,t={}){e.authenticate(r,c,{onUserTokenExpiring:t==null?void 0:t.onUserTokenExpiring,timeBeforeExpirationInMs:t==null?void 0:t.timeBeforeExpirationInMs})}function q(e,r,c,t={}){const a=o.default.useRef(),u=k(t);return o.default.useMemo(()=>{const n=a.current;if(n&&n.isAuthenticated()&&(n.userId!==r||n.userToken!==c))return f(n,r,c,u),n;n&&n.teardown();const i=new h.default(e,{host:u.host,logLevel:u.logLevel});return f(i,r,c,u),a.current=i,i},[e,r,c,u])}module.exports=q;
2
- //# sourceMappingURL=useAuthenticatedKnockClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuthenticatedKnockClient.js","sources":["../../../../../src/modules/core/hooks/useAuthenticatedKnockClient.ts"],"sourcesContent":["import Knock, { AuthenticateOptions, KnockOptions } from \"@knocklabs/client\";\nimport React from \"react\";\n\nimport { useStableOptions } from \"../../core\";\n\nfunction authenticateWithOptions(\n knock: Knock,\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options: AuthenticateOptions = {},\n) {\n knock.authenticate(userId, userToken, {\n onUserTokenExpiring: options?.onUserTokenExpiring,\n timeBeforeExpirationInMs: options?.timeBeforeExpirationInMs,\n });\n}\n\nexport type AuthenticatedKnockClientOptions = KnockOptions &\n AuthenticateOptions;\n\nfunction useAuthenticatedKnockClient(\n apiKey: string,\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options: AuthenticatedKnockClientOptions = {},\n) {\n const knockRef = React.useRef<Knock | undefined>();\n const stableOptions = useStableOptions(options);\n\n return React.useMemo(() => {\n const currentKnock = knockRef.current;\n\n // If the userId and the userToken changes then just reauth\n if (\n currentKnock &&\n currentKnock.isAuthenticated() &&\n (currentKnock.userId !== userId || currentKnock.userToken !== userToken)\n ) {\n authenticateWithOptions(currentKnock, userId, userToken, stableOptions);\n return currentKnock;\n }\n\n if (currentKnock) {\n currentKnock.teardown();\n }\n\n // Otherwise instantiate a new Knock client\n const knock = new Knock(apiKey, {\n host: stableOptions.host,\n logLevel: stableOptions.logLevel,\n });\n\n authenticateWithOptions(knock, userId, userToken, stableOptions);\n knockRef.current = knock;\n\n return knock;\n }, [apiKey, userId, userToken, stableOptions]);\n}\n\nexport default useAuthenticatedKnockClient;\n"],"names":["authenticateWithOptions","knock","userId","userToken","options","authenticate","onUserTokenExpiring","timeBeforeExpirationInMs","useAuthenticatedKnockClient","apiKey","knockRef","React","useRef","stableOptions","useStableOptions","useMemo","currentKnock","current","isAuthenticated","teardown","Knock","host","logLevel"],"mappings":"qPAKA,SAASA,EACPC,EACAC,EACAC,EACAC,EAA+B,CAAA,EAC/B,CACMC,EAAAA,aAAaH,EAAQC,EAAW,CACpCG,oBAAqBF,GAAAA,YAAAA,EAASE,oBAC9BC,yBAA0BH,GAAAA,YAAAA,EAASG,wBAAAA,CACpC,CACH,CAKA,SAASC,EACPC,EACAP,EACAC,EACAC,EAA2C,CAAA,EAC3C,CACMM,MAAAA,EAAWC,UAAMC,OAA0B,EAC3CC,EAAgBC,EAAiBV,CAAO,EAEvCO,OAAAA,EAAAA,QAAMI,QAAQ,IAAM,CACzB,MAAMC,EAAeN,EAASO,QAI5BD,GAAAA,GACAA,EAAaE,gBAAgB,IAC5BF,EAAad,SAAWA,GAAUc,EAAab,YAAcA,GAEtCa,OAAAA,EAAAA,EAAcd,EAAQC,EAAWU,CAAa,EAC/DG,EAGLA,GACFA,EAAaG,SAAS,EAIlBlB,MAAAA,EAAQ,IAAImB,EAAAA,QAAMX,EAAQ,CAC9BY,KAAMR,EAAcQ,KACpBC,SAAUT,EAAcS,QAAAA,CACzB,EAEuBrB,OAAAA,EAAAA,EAAOC,EAAQC,EAAWU,CAAa,EAC/DH,EAASO,QAAUhB,EAEZA,GACN,CAACQ,EAAQP,EAAQC,EAAWU,CAAa,CAAC,CAC/C"}
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("fast-deep-equal"),r=require("react"),s=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},c=s(n);function a(t){const u=r.useRef();return r.useMemo(()=>{const e=u.current;return e&&c.default(t,e)?e:(u.current=t,t)},[t])}module.exports=a;
2
- //# sourceMappingURL=useStableOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStableOptions.js","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":"kIAGA,SAAwBA,EAAoBC,EAAe,CACzD,MAAMC,EAAaC,EAAAA,OAAU,EAE7B,OAAOC,UAAQ,IAAM,CACnB,MAAMC,EAAiBH,EAAWI,QAElC,OAAID,GAAkBE,EAAAA,QAAcN,EAASI,CAAc,EAClDA,GAGTH,EAAWI,QAAUL,EACdA,EAAAA,EACN,CAACA,CAAO,CAAC,CACd"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("date-fns");function i(e){return e>9?"9+":e}function c(e,t={}){try{const r=o.parseISO(e);return o.intlFormatDistance(r,new Date,{locale:t.locale})}catch{return e}}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}function l(e,t){return e!==void 0?e:t}function u(e,t,r={}){return[e,t,r.source,r.tenant,r.has_tenant,r.archived].filter(n=>n!=null).join("-")}function s({knockSlackChannelId:e,tenantId:t,connectionStatus:r,errorLabel:n}){return[e,t,r,n].filter(a=>a!=null).join("-")}function f({knockMsTeamsChannelId:e,tenantId:t,connectionStatus:r,errorLabel:n}){return[e,t,r,n].filter(a=>a!=null).join("-")}exports.feedProviderKey=u;exports.formatBadgeCount=i;exports.formatTimestamp=c;exports.msTeamsProviderKey=f;exports.renderNodeOrFallback=l;exports.slackProviderKey=s;exports.toSentenceCase=d;
2
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","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":"4GAIO,SAASA,EAAiBC,EAAgC,CACxDA,OAAAA,EAAQ,EAAI,KAAOA,CAC5B,CAMO,SAASC,EACdC,EACAC,EAAkC,GAClC,CACI,GAAA,CACIC,MAAAA,EAAWC,WAASH,CAAE,EAKrBI,OAJWC,EAAAA,mBAAmBH,EAAU,IAAII,KAAQ,CACzDC,OAAQN,EAAQM,MAAAA,CACjB,OAGU,CACJP,OAAAA,CAAAA,CAEX,CAEO,SAASQ,EAAeC,EAAwB,CAC9CA,OAAAA,EAAOC,OAAO,CAAC,EAAEC,cAAgBF,EAAOG,MAAM,CAAC,CACxD,CAEgBC,SAAAA,EAAqBC,EAAiBC,EAAqB,CAClED,OAAAA,IAASE,OAAYF,EAAOC,CACrC,CAMO,SAASE,EACdC,EACAC,EACAlB,EAA6B,CAAA,EAC7B,CACO,MAAA,CACLiB,EACAC,EACAlB,EAAQmB,OACRnB,EAAQoB,OACRpB,EAAQqB,WACRrB,EAAQsB,QAAQ,EAEfC,UAAcC,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb,CAMO,SAASC,EAAiB,CAC/BC,oBAAAA,EACAC,SAAAA,EACAC,iBAAAA,EACAC,WAAAA,CAMF,EAAG,CACD,MAAO,CAACH,EAAqBC,EAAUC,EAAkBC,CAAU,EAChEP,OAAcC,GAAAA,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb,CAMO,SAASM,EAAmB,CACjCC,sBAAAA,EACAJ,SAAAA,EACAC,iBAAAA,EACAC,WAAAA,CAMF,EAAG,CACD,MAAO,CAACE,EAAuBJ,EAAUC,EAAkBC,CAAU,EAClEP,OAAcC,GAAAA,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),a=require("../../core/context/KnockProvider.js");require("@knocklabs/client");require("fast-deep-equal");const l=require("../../core/utils.js"),f=require("../hooks/useNotifications.js"),k=require("../hooks/useNotificationStore.js");function v(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const c=v(d),u=c.createContext(void 0),K=({feedId:e,children:r,defaultFeedOptions:t={},colorMode:o="light"})=>{let n;try{n=a.useKnockClient()}catch{throw new Error("KnockFeedProvider must be used within a KnockProvider.")}const i=f(n,e??"",t),s=k.useCreateNotificationStore(i);return c.createElement(u.Provider,{key:l.feedProviderKey(n.userId,e??"",t),value:{knock:n,feedClient:i,useFeedStore:s,colorMode:o}},r)},b=()=>{const e=c.useContext(u);if(!e)throw new Error("useKnockFeed must be used within a KnockFeedProvider");return e};exports.KnockFeedProvider=K;exports.useKnockFeed=b;
2
- //# sourceMappingURL=KnockFeedProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockFeedProvider.js","sources":["../../../../../src/modules/feed/context/KnockFeedProvider.tsx"],"sourcesContent":["import Knock, { Feed, FeedClientOptions } from \"@knocklabs/client\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\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: ReturnType<typeof useCreateNotificationStore>;\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":"4pBAiBMA,EAAmBC,EAAMC,cAE7BC,MAAS,EAaEC,EAETA,CAAC,CAAEC,OAAAA,EAAQC,SAAAA,EAAUC,mBAAAA,EAAqB,CAAC,EAAGC,UAAAA,EAAY,OAAQ,IAAM,CACtEC,IAAAA,EACA,GAAA,CACFA,EAAQC,EAAAA,eAAe,OACb,CACJ,MAAA,IAAIC,MAAM,wDAAwD,CAAA,CAG1E,MAAMC,EAAaC,EAAiBJ,EAAOJ,GAAU,GAAIE,CAAkB,EACrEO,EAAeC,6BAA2BH,CAAU,EAE1D,OACGX,EAAA,cAAAD,EAAiB,SAAjB,CACC,IAAKgB,EAAAA,gBAAgBP,EAAMQ,OAAQZ,GAAU,GAAIE,CAAkB,EACnE,MAAO,CACLE,MAAAA,EACAG,WAAAA,EACAE,aAAAA,EACAN,UAAAA,IAGDF,CACH,CAEJ,EAEaY,EAAeA,IAA8B,CAClDC,MAAAA,EAAUlB,EAAMmB,WAAWpB,CAAgB,EACjD,GAAI,CAACmB,EACG,MAAA,IAAIR,MAAM,sDAAsD,EAGjEQ,OAAAA,CACT"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react");function g(t){const[i,c]=e.useState(null),[u,s]=e.useState(!1);return e.useEffect(()=>{async function a(){const n=t.knock,r=n.client(),d=`/v1/users/${n.userId}/feeds/${t.feedId}/settings`;s(!0);const o=await r.makeRequest({method:"GET",url:d});o.error||c(o.body),s(!1)}a()},[]),{settings:i,loading:u}}module.exports=g;
2
- //# sourceMappingURL=useFeedSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeedSettings.js","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":"sCASA,SAASA,EAAgBC,EAGvB,CACA,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAS,IAAI,EACvC,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAS,EAAK,EAIhDG,OAAAA,EAAAA,UAAU,IAAM,CACd,eAAeC,GAAc,CAC3B,MAAMC,EAAQR,EAAWQ,MACnBC,EAAYD,EAAME,OAAO,EACzBC,EAAmB,aAAaH,EAAMI,MAAM,UAAUZ,EAAWa,MAAM,YAC7ER,EAAa,EAAI,EAEXS,MAAAA,EAAW,MAAML,EAAUM,YAAY,CAC3CC,OAAQ,MACRC,IAAKN,CAAAA,CACN,EAEIG,EAASI,OACZhB,EAAYY,EAASK,IAAI,EAG3Bd,EAAa,EAAK,CAAA,CAGRE,EAAA,CAGd,EAAG,EAAE,EAEE,CAAEN,SAAAA,EAAUmB,QAAShB,CAAU,CACxC"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("@tanstack/react-store");function r(e){return t=>i.useStore(e.store.store,t??(o=>o))}function n(e,t){return r(e)(t??(u=>u))}exports.default=n;exports.useCreateNotificationStore=r;
2
- //# sourceMappingURL=useNotificationStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNotificationStore.js","sources":["../../../../../src/modules/feed/hooks/useNotificationStore.ts"],"sourcesContent":["import { Feed, type FeedStoreState } from \"@knocklabs/client\";\nimport { useStore } from \"@tanstack/react-store\";\n\nexport type Selector<T> = (state: FeedStoreState) => T;\n\n/**\n * Create a hook factory that provides access to the TanStack Store with optional selector support.\n * This pattern allows for flexible store access with or without selectors while maintaining\n * type safety. The selector can be passed either to useCreateNotificationStore or\n * useNotificationStore, with the latter taking precedence.\n */\nfunction useCreateNotificationStore(feedClient: Feed) {\n return <T = FeedStoreState>(selector?: Selector<T>) => {\n // Keep selector optional for external use\n // useStore requires a selector so we'll pass in a default one when not provided\n // eslint-disable-next-line\n return useStore(\n feedClient.store.store,\n selector ?? ((state) => state as T),\n );\n };\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","selector","useStore","store","state","useNotificationStore","useStoreLocal"],"mappings":"qJAWA,SAASA,EAA2BC,EAAkB,CACpD,OAA4BC,GAInBC,WACLF,EAAWG,MAAMA,MACjBF,OAAwBG,EAC1B,CAEJ,CAwBA,SAASC,EACPL,EACAC,EACoB,CAEbK,OADeP,EAA2BC,CAAU,EACtCC,IAAcG,GAAUA,EAAW,CAC1D"}
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("react");require("../../core/context/KnockProvider.js");require("@knocklabs/client");const a=require("../../core/hooks/useStableOptions.js");require("date-fns");function p(u,s,l={}){const n=i.useCallback((o,c)=>{const f=u.feeds.initialize(o,c);return f.listenForUpdates(),f},[u]),e=a(l),[t,d]=i.useState(()=>({feedClient:n(s,e),options:e})),r=i.useRef(!1);return i.useEffect(()=>{const o=r.current;if(t.feedClient.feedId!==s||t.options!==e||o){r.current=!1,d({feedClient:n(s,e),options:e});return}return()=>{r.current=!0,t.feedClient.dispose()}},[n,s,e,t]),t.feedClient}module.exports=p;
2
- //# sourceMappingURL=useNotifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNotifications.js","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 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","listenForUpdates","stableOptions","useStableOptions","state","setState","useState","disposedRef","useRef","useEffect","isDisposed","current","feedId","dispose"],"mappings":"8LAUA,SAASA,EACPC,EACAC,EACAC,EAA6B,CAAA,EACvB,CACN,MAAMC,EAAiBC,EAAAA,YACrB,CAACH,EAAuBC,IAA+B,CACrD,MAAMG,EAAaL,EAAMM,MAAMC,WAAWN,EAAeC,CAAO,EAEhEG,OAAAA,EAAWG,iBAAiB,EAErBH,CAAAA,EAET,CAACL,CAAK,CACR,EAEMS,EAAgBC,EAAiBR,CAAO,EACxC,CAACS,EAAOC,CAAQ,EAAIC,WAAgB,KAAO,CAI/CR,WAAYF,EAAeF,EAAeQ,CAAa,EACvDP,QAASO,CAAAA,EACT,EACIK,EAAcC,SAAO,EAAK,EAEhCC,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAaH,EAAYI,QAS/B,GAJEP,EAAMN,WAAWc,SAAWlB,GAC5BU,EAAMT,UAAYO,GAClBQ,EAEe,CACfH,EAAYI,QAAU,GACbN,EAAA,CACPP,WAAYF,EAAeF,EAAeQ,CAAa,EACvDP,QAASO,CAAAA,CACV,EACD,MAAA,CAGF,MAAO,IAAM,CACXK,EAAYI,QAAU,GACtBP,EAAMN,WAAWe,QAAQ,CAC3B,GACC,CAACjB,EAAgBF,EAAeQ,EAAeE,CAAK,CAAC,EAEjDA,EAAMN,UACf"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("@knocklabs/client"),b=require("react"),k=require("../../core/context/KnockProvider.js"),p=require("../../core/hooks/useStableOptions.js");require("date-fns");function v(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const c=v(b),a=c.createContext(void 0),K=({channelId:e,readyToTarget:r,listenForUpdates:t=!0,colorMode:o="light",targetParams:l={},trackLocationFromWindow:u=!0,children:d})=>{let i;try{i=k.useKnockClient()}catch{throw new Error("KnockGuideProvider must be used within a KnockProvider")}const s=p(l),n=c.useMemo(()=>new f.KnockGuideClient(i,e,s,{trackLocationFromWindow:u}),[i,e,s,u]);return c.useEffect(()=>(r&&(n.fetch(),t&&n.subscribe()),()=>n.cleanup()),[r,t,n]),c.createElement(a.Provider,{value:{client:n,colorMode:o}},d)};exports.KnockGuideContext=a;exports.KnockGuideProvider=K;
2
- //# sourceMappingURL=KnockGuideProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockGuideProvider.js","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":"0kBAcaA,EAAoBC,EAAMC,cAErCC,MAAS,EAWEC,EAA+DA,CAAC,CAC3EC,UAAAA,EACAC,cAAAA,EACAC,iBAAAA,EAAmB,GACnBC,UAAAA,EAAY,QACZC,aAAAA,EAAe,CAAC,EAChBC,wBAAAA,EAA0B,GAC1BC,SAAAA,CACF,IAAM,CACAC,IAAAA,EAEA,GAAA,CACFA,EAAQC,EAAAA,eAAe,OACb,CACJ,MAAA,IAAIC,MAAM,wDAAwD,CAAA,CAGpEC,MAAAA,EAAqBC,EAAiBP,CAAY,EAElDQ,EAAmBhB,EAAMiB,QAAQ,IAC9B,IAAIC,EAAAA,iBAAiBP,EAAOP,EAAWU,EAAoB,CAChEL,wBAAAA,CAAAA,CACD,EACA,CAACE,EAAOP,EAAWU,EAAoBL,CAAuB,CAAC,EAElET,OAAAA,EAAMmB,UAAU,KACVd,IACFW,EAAiBI,MAAM,EACnBd,KAAmCe,UAAU,GAG5C,IAAML,EAAiBM,QAAQ,GACrC,CAACjB,EAAeC,EAAkBU,CAAgB,CAAC,EAGnDhB,EAAA,cAAAD,EAAkB,SAAlB,CACC,MAAO,CACLwB,OAAQP,EACRT,UAAAA,IAGDG,CACH,CAEJ"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@tanstack/react-store"),c=require("./useGuideContext.js"),d=e=>{const u=c.useGuideContext();if(!e.key&&!e.type)throw new Error("useGuide must be used with at least one filter: either a guide key or a guide type");const{client:t,colorMode:r}=u,[o]=n.useStore(t.store,s=>t.select(s,e)),i=o&&o.steps.find(s=>!s.message.archived_at);return{client:t,colorMode:r,guide:o,step:i}};exports.useGuide=d;
2
- //# sourceMappingURL=useGuide.js.map