canopycms 0.0.61-int.75 → 0.0.61

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 (271) hide show
  1. package/dist/ai/handler.js +1 -1
  2. package/dist/ai/handler.js.map +1 -1
  3. package/dist/api/assets.d.ts.map +1 -1
  4. package/dist/api/assets.js +36 -4
  5. package/dist/api/assets.js.map +1 -1
  6. package/dist/api/branch-status.d.ts.map +1 -1
  7. package/dist/api/branch-status.js +56 -0
  8. package/dist/api/branch-status.js.map +1 -1
  9. package/dist/api/branch-withdraw.d.ts.map +1 -1
  10. package/dist/api/branch-withdraw.js +14 -3
  11. package/dist/api/branch-withdraw.js.map +1 -1
  12. package/dist/api/branch.d.ts +31 -2
  13. package/dist/api/branch.d.ts.map +1 -1
  14. package/dist/api/branch.js +252 -13
  15. package/dist/api/branch.js.map +1 -1
  16. package/dist/api/content.d.ts.map +1 -1
  17. package/dist/api/content.js +12 -4
  18. package/dist/api/content.js.map +1 -1
  19. package/dist/api/entries.d.ts.map +1 -1
  20. package/dist/api/entries.js +11 -9
  21. package/dist/api/entries.js.map +1 -1
  22. package/dist/api/guards.d.ts.map +1 -1
  23. package/dist/api/guards.js +12 -5
  24. package/dist/api/guards.js.map +1 -1
  25. package/dist/api/permissions.d.ts +2 -2
  26. package/dist/api/permissions.d.ts.map +1 -1
  27. package/dist/api/permissions.js +51 -3
  28. package/dist/api/permissions.js.map +1 -1
  29. package/dist/api/reference-options.d.ts.map +1 -1
  30. package/dist/api/reference-options.js +10 -17
  31. package/dist/api/reference-options.js.map +1 -1
  32. package/dist/api/resolve-references.d.ts.map +1 -1
  33. package/dist/api/resolve-references.js +3 -1
  34. package/dist/api/resolve-references.js.map +1 -1
  35. package/dist/api/schema.d.ts.map +1 -1
  36. package/dist/api/schema.js +3 -2
  37. package/dist/api/schema.js.map +1 -1
  38. package/dist/api/settings-helpers.d.ts.map +1 -1
  39. package/dist/api/settings-helpers.js +6 -5
  40. package/dist/api/settings-helpers.js.map +1 -1
  41. package/dist/assets/pipeline.d.ts +11 -2
  42. package/dist/assets/pipeline.d.ts.map +1 -1
  43. package/dist/assets/pipeline.js +114 -2
  44. package/dist/assets/pipeline.js.map +1 -1
  45. package/dist/assets/transform-directives.d.ts +18 -0
  46. package/dist/assets/transform-directives.d.ts.map +1 -1
  47. package/dist/assets/transform-directives.js +18 -0
  48. package/dist/assets/transform-directives.js.map +1 -1
  49. package/dist/assets/transform.d.ts.map +1 -1
  50. package/dist/assets/transform.js +1 -10
  51. package/dist/assets/transform.js.map +1 -1
  52. package/dist/auth/types.d.ts +29 -0
  53. package/dist/auth/types.d.ts.map +1 -1
  54. package/dist/authorization/index.d.ts +1 -1
  55. package/dist/authorization/index.d.ts.map +1 -1
  56. package/dist/authorization/index.js +1 -1
  57. package/dist/authorization/index.js.map +1 -1
  58. package/dist/authorization/protected-branch.d.ts +75 -0
  59. package/dist/authorization/protected-branch.d.ts.map +1 -1
  60. package/dist/authorization/protected-branch.js +39 -0
  61. package/dist/authorization/protected-branch.js.map +1 -1
  62. package/dist/branch-registry.d.ts.map +1 -1
  63. package/dist/branch-registry.js +5 -1
  64. package/dist/branch-registry.js.map +1 -1
  65. package/dist/branch-schema-cache.d.ts.map +1 -1
  66. package/dist/branch-schema-cache.js +9 -0
  67. package/dist/branch-schema-cache.js.map +1 -1
  68. package/dist/build/generate-ai-content.js +1 -1
  69. package/dist/build/generate-ai-content.js.map +1 -1
  70. package/dist/cli/cli.js +1442 -828
  71. package/dist/cli/generate-ai-content.js +404 -136
  72. package/dist/cli/init.d.ts +8 -2
  73. package/dist/cli/init.d.ts.map +1 -1
  74. package/dist/cli/init.js +440 -151
  75. package/dist/cli/init.js.map +1 -1
  76. package/dist/cli/project-detect.d.ts +89 -0
  77. package/dist/cli/project-detect.d.ts.map +1 -0
  78. package/dist/cli/project-detect.js +240 -0
  79. package/dist/cli/project-detect.js.map +1 -0
  80. package/dist/cli/template-files/Dockerfile.cms.template +11 -6
  81. package/dist/cli/template-files/cdk-app.ts.template +82 -0
  82. package/dist/cli/template-files/cdk.json.template +9 -0
  83. package/dist/cli/template-files/cms-stack.ts.template +124 -0
  84. package/dist/cli/template-files/deploy-cms.yml.template +125 -13
  85. package/dist/cli/template-files/dockerignore.template +2 -1
  86. package/dist/cli/templates.d.ts +26 -2
  87. package/dist/cli/templates.d.ts.map +1 -1
  88. package/dist/cli/templates.js +36 -4
  89. package/dist/cli/templates.js.map +1 -1
  90. package/dist/config/schemas/config.d.ts +2 -3
  91. package/dist/config/schemas/config.d.ts.map +1 -1
  92. package/dist/config/schemas/config.js +21 -1
  93. package/dist/config/schemas/config.js.map +1 -1
  94. package/dist/config/validation.d.ts +9 -0
  95. package/dist/config/validation.d.ts.map +1 -1
  96. package/dist/config/validation.js +22 -12
  97. package/dist/config/validation.js.map +1 -1
  98. package/dist/content-reader.js +1 -1
  99. package/dist/content-reader.js.map +1 -1
  100. package/dist/content-store.d.ts +11 -0
  101. package/dist/content-store.d.ts.map +1 -1
  102. package/dist/content-store.js +2 -1
  103. package/dist/content-store.js.map +1 -1
  104. package/dist/dev-content-watcher.d.ts.map +1 -1
  105. package/dist/dev-content-watcher.js +4 -1
  106. package/dist/dev-content-watcher.js.map +1 -1
  107. package/dist/editor/BranchManager.d.ts +15 -0
  108. package/dist/editor/BranchManager.d.ts.map +1 -1
  109. package/dist/editor/BranchManager.js +43 -9
  110. package/dist/editor/BranchManager.js.map +1 -1
  111. package/dist/editor/CanopyEditor.d.ts.map +1 -1
  112. package/dist/editor/CanopyEditor.js +2 -2
  113. package/dist/editor/CanopyEditor.js.map +1 -1
  114. package/dist/editor/Editor.d.ts.map +1 -1
  115. package/dist/editor/Editor.js +110 -48
  116. package/dist/editor/Editor.js.map +1 -1
  117. package/dist/editor/admin/SystemHealthPanel.d.ts.map +1 -1
  118. package/dist/editor/admin/SystemHealthPanel.js +9 -8
  119. package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
  120. package/dist/editor/components/EditorHeader.d.ts +6 -0
  121. package/dist/editor/components/EditorHeader.d.ts.map +1 -1
  122. package/dist/editor/components/EditorHeader.js +76 -23
  123. package/dist/editor/components/EditorHeader.js.map +1 -1
  124. package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
  125. package/dist/editor/components/EntryCreateModal.js +21 -6
  126. package/dist/editor/components/EntryCreateModal.js.map +1 -1
  127. package/dist/editor/context/SWRProvider.d.ts +31 -0
  128. package/dist/editor/context/SWRProvider.d.ts.map +1 -0
  129. package/dist/editor/context/SWRProvider.js +12 -0
  130. package/dist/editor/context/SWRProvider.js.map +1 -0
  131. package/dist/editor/context/index.d.ts +3 -0
  132. package/dist/editor/context/index.d.ts.map +1 -1
  133. package/dist/editor/context/index.js +3 -0
  134. package/dist/editor/context/index.js.map +1 -1
  135. package/dist/editor/editor-utils.d.ts.map +1 -1
  136. package/dist/editor/editor-utils.js +8 -2
  137. package/dist/editor/editor-utils.js.map +1 -1
  138. package/dist/editor/fields/ImageField.d.ts.map +1 -1
  139. package/dist/editor/fields/ImageField.js +27 -3
  140. package/dist/editor/fields/ImageField.js.map +1 -1
  141. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  142. package/dist/editor/fields/ReferenceField.js +52 -31
  143. package/dist/editor/fields/ReferenceField.js.map +1 -1
  144. package/dist/editor/hooks/__test__/test-utils.d.ts +38 -3
  145. package/dist/editor/hooks/__test__/test-utils.d.ts.map +1 -1
  146. package/dist/editor/hooks/__test__/test-utils.js +50 -4
  147. package/dist/editor/hooks/__test__/test-utils.js.map +1 -1
  148. package/dist/editor/hooks/index.d.ts +4 -1
  149. package/dist/editor/hooks/index.d.ts.map +1 -1
  150. package/dist/editor/hooks/index.js +4 -1
  151. package/dist/editor/hooks/index.js.map +1 -1
  152. package/dist/editor/hooks/useBranchManager.d.ts +21 -1
  153. package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
  154. package/dist/editor/hooks/useBranchManager.js +68 -32
  155. package/dist/editor/hooks/useBranchManager.js.map +1 -1
  156. package/dist/editor/hooks/useBranchesData.d.ts +57 -0
  157. package/dist/editor/hooks/useBranchesData.d.ts.map +1 -0
  158. package/dist/editor/hooks/useBranchesData.js +69 -0
  159. package/dist/editor/hooks/useBranchesData.js.map +1 -0
  160. package/dist/editor/hooks/useCommentSystem.d.ts.map +1 -1
  161. package/dist/editor/hooks/useCommentSystem.js +24 -22
  162. package/dist/editor/hooks/useCommentSystem.js.map +1 -1
  163. package/dist/editor/hooks/useCommentsData.d.ts +29 -0
  164. package/dist/editor/hooks/useCommentsData.d.ts.map +1 -0
  165. package/dist/editor/hooks/useCommentsData.js +40 -0
  166. package/dist/editor/hooks/useCommentsData.js.map +1 -0
  167. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  168. package/dist/editor/hooks/useDraftManager.js +32 -18
  169. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  170. package/dist/editor/hooks/useEntriesData.d.ts +35 -0
  171. package/dist/editor/hooks/useEntriesData.d.ts.map +1 -0
  172. package/dist/editor/hooks/useEntriesData.js +96 -0
  173. package/dist/editor/hooks/useEntriesData.js.map +1 -0
  174. package/dist/editor/hooks/useEntryManager.d.ts +8 -15
  175. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  176. package/dist/editor/hooks/useEntryManager.js +259 -117
  177. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  178. package/dist/editor/hooks/usePermissionManager.d.ts +2 -2
  179. package/dist/editor/hooks/usePermissionManager.d.ts.map +1 -1
  180. package/dist/editor/hooks/usePermissionManager.js +11 -9
  181. package/dist/editor/hooks/usePermissionManager.js.map +1 -1
  182. package/dist/editor/hooks/useReferenceResolution.d.ts.map +1 -1
  183. package/dist/editor/hooks/useReferenceResolution.js +24 -1
  184. package/dist/editor/hooks/useReferenceResolution.js.map +1 -1
  185. package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -1
  186. package/dist/editor/media/MediaLibraryBody.js +12 -2
  187. package/dist/editor/media/MediaLibraryBody.js.map +1 -1
  188. package/dist/editor/permission-manager/GroupSelector.d.ts.map +1 -1
  189. package/dist/editor/permission-manager/GroupSelector.js +7 -2
  190. package/dist/editor/permission-manager/GroupSelector.js.map +1 -1
  191. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +3 -3
  192. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +1 -1
  193. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +1 -0
  194. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +1 -1
  195. package/dist/editor/permission-manager/types.d.ts +6 -4
  196. package/dist/editor/permission-manager/types.d.ts.map +1 -1
  197. package/dist/editor/test-setup.js +8 -0
  198. package/dist/editor/test-setup.js.map +1 -1
  199. package/dist/git-manager.d.ts +126 -9
  200. package/dist/git-manager.d.ts.map +1 -1
  201. package/dist/git-manager.js +251 -27
  202. package/dist/git-manager.js.map +1 -1
  203. package/dist/github-service.d.ts.map +1 -1
  204. package/dist/github-service.js +13 -7
  205. package/dist/github-service.js.map +1 -1
  206. package/dist/http/handler.d.ts.map +1 -1
  207. package/dist/http/handler.js +8 -2
  208. package/dist/http/handler.js.map +1 -1
  209. package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
  210. package/dist/operating-mode/client-unsafe-strategy.js +7 -8
  211. package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
  212. package/dist/operating-mode/deployment-name.d.ts +28 -0
  213. package/dist/operating-mode/deployment-name.d.ts.map +1 -0
  214. package/dist/operating-mode/deployment-name.js +78 -0
  215. package/dist/operating-mode/deployment-name.js.map +1 -0
  216. package/dist/operating-mode/index.d.ts +5 -1
  217. package/dist/operating-mode/index.d.ts.map +1 -1
  218. package/dist/operating-mode/index.js +7 -1
  219. package/dist/operating-mode/index.js.map +1 -1
  220. package/dist/operating-mode/types.d.ts +13 -3
  221. package/dist/operating-mode/types.d.ts.map +1 -1
  222. package/dist/paths/branch-name.d.ts +38 -0
  223. package/dist/paths/branch-name.d.ts.map +1 -1
  224. package/dist/paths/branch-name.js +46 -0
  225. package/dist/paths/branch-name.js.map +1 -1
  226. package/dist/paths/index.d.ts +1 -1
  227. package/dist/paths/index.d.ts.map +1 -1
  228. package/dist/paths/index.js +1 -1
  229. package/dist/paths/index.js.map +1 -1
  230. package/dist/reference-resolver.d.ts +6 -2
  231. package/dist/reference-resolver.d.ts.map +1 -1
  232. package/dist/reference-resolver.js +8 -1
  233. package/dist/reference-resolver.js.map +1 -1
  234. package/dist/schema/meta-loader.d.ts.map +1 -1
  235. package/dist/schema/meta-loader.js +10 -2
  236. package/dist/schema/meta-loader.js.map +1 -1
  237. package/dist/schema/schema-store.d.ts +11 -2
  238. package/dist/schema/schema-store.d.ts.map +1 -1
  239. package/dist/schema/schema-store.js +23 -11
  240. package/dist/schema/schema-store.js.map +1 -1
  241. package/dist/settings-workspace.d.ts +0 -15
  242. package/dist/settings-workspace.d.ts.map +1 -1
  243. package/dist/settings-workspace.js +97 -1
  244. package/dist/settings-workspace.js.map +1 -1
  245. package/dist/types.d.ts +63 -2
  246. package/dist/types.d.ts.map +1 -1
  247. package/dist/utils/debug.d.ts +11 -0
  248. package/dist/utils/debug.d.ts.map +1 -1
  249. package/dist/utils/debug.js +12 -1
  250. package/dist/utils/debug.js.map +1 -1
  251. package/dist/utils/git.d.ts +38 -0
  252. package/dist/utils/git.d.ts.map +1 -1
  253. package/dist/utils/git.js +69 -0
  254. package/dist/utils/git.js.map +1 -1
  255. package/dist/utils/logger.d.ts +71 -0
  256. package/dist/utils/logger.d.ts.map +1 -0
  257. package/dist/utils/logger.js +85 -0
  258. package/dist/utils/logger.js.map +1 -0
  259. package/dist/validation/entry-type-reference-validator.d.ts +33 -0
  260. package/dist/validation/entry-type-reference-validator.d.ts.map +1 -0
  261. package/dist/validation/entry-type-reference-validator.js +110 -0
  262. package/dist/validation/entry-type-reference-validator.js.map +1 -0
  263. package/dist/worker/cms-worker.d.ts +232 -3
  264. package/dist/worker/cms-worker.d.ts.map +1 -1
  265. package/dist/worker/cms-worker.js +856 -87
  266. package/dist/worker/cms-worker.js.map +1 -1
  267. package/dist/worker/log.d.ts +61 -0
  268. package/dist/worker/log.d.ts.map +1 -0
  269. package/dist/worker/log.js +74 -0
  270. package/dist/worker/log.js.map +1 -0
  271. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBranchesData.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useBranchesData.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,uCAAuC;AACvC,eAAO,MAAM,YAAY,oBAAoB,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAWjG;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GACrC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAKlC"}
@@ -0,0 +1,69 @@
1
+ 'use client';
2
+ /**
3
+ * SWR-backed read of the branches list (GET /branches).
4
+ *
5
+ * Not parameterized by the currently selected branch: the endpoint returns
6
+ * every branch regardless of which one is active, so a single cache key
7
+ * covers the whole editor session. useBranchManager.tsx consumes this for
8
+ * the automatic on-mount fetch (SWR dedupes concurrent mounts -- e.g. React
9
+ * Strict Mode's double effect invoke -- into a single request); its
10
+ * imperative `loadBranches()` reload path fetches independently and writes
11
+ * the result into this same cache key via `mutate(..., { revalidate: false
12
+ * })` -- see the comment on `fetchBranches` for why it doesn't just call
13
+ * `mutate()` to revalidate.
14
+ */
15
+ import useSWR from 'swr';
16
+ /** Cache key for the branches list. */
17
+ export const BRANCHES_KEY = 'canopy:branches';
18
+ /**
19
+ * Fetch the branches list. Exported for direct testing and for the
20
+ * imperative reload path.
21
+ */
22
+ export async function fetchBranches(apiClient) {
23
+ const result = await apiClient.branches.list();
24
+ if (result.status === 404) {
25
+ // No branch endpoint available; stay branchless rather than erroring --
26
+ // the branch dropdown stays clickable so the user can retry from there.
27
+ return { branches: [] };
28
+ }
29
+ if (!result.ok) {
30
+ throw new Error(result.error ?? `Failed to load branches: ${result.status}`);
31
+ }
32
+ return { branches: result.data?.branches ?? [], defaultBranch: result.data?.defaultBranch };
33
+ }
34
+ /**
35
+ * How often to re-poll while at least one branch is mid-flight, in ms.
36
+ * Only ever active in the transient window below, so this is not a
37
+ * standing background poll.
38
+ */
39
+ export const IN_FLIGHT_POLL_MS = 15_000;
40
+ /**
41
+ * Whether any branch is in a state the WORKER, not the user, will move on.
42
+ *
43
+ * `pending-sync` -> `synced` | `sync-failed` happens asynchronously on the
44
+ * EC2 worker when it drains the task queue, with nothing pushed to the
45
+ * browser. Before SWR, the branches list happened to refetch on every
46
+ * branch switch, so these badges (PR #160) converged incidentally as the
47
+ * user moved around. That effect is gone now -- correctly, since the list
48
+ * isn't branch-scoped -- so without this a user who submits a branch would
49
+ * watch "Pending sync" forever until they reloaded the page or performed
50
+ * some unrelated branch mutation.
51
+ */
52
+ export function hasInFlightBranch(data) {
53
+ return (data?.branches ?? []).some((b) => b.syncStatus === 'pending-sync');
54
+ }
55
+ /**
56
+ * SWR-backed read of the branches list. Automatically dedupes concurrent
57
+ * mounts into a single request (see the module doc comment above).
58
+ *
59
+ * Polls ONLY while a branch is waiting on the worker (see
60
+ * `hasInFlightBranch`); once everything has settled the interval returns to
61
+ * 0 and the list goes quiet again. This is strictly narrower than a blanket
62
+ * `refreshInterval`, and narrower than the pre-SWR behavior it replaces.
63
+ */
64
+ export function useBranchesData(apiClient) {
65
+ return useSWR(BRANCHES_KEY, () => fetchBranches(apiClient), {
66
+ refreshInterval: (data) => hasInFlightBranch(data) ? IN_FLIGHT_POLL_MS : 0,
67
+ });
68
+ }
69
+ //# sourceMappingURL=useBranchesData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBranchesData.js","sourceRoot":"","sources":["../../../src/editor/hooks/useBranchesData.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;;;;;GAYG;AAEH,OAAO,MAA4B,MAAM,KAAK,CAAA;AAI9C,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAA;AAO7C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAsC;IACxE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,wEAAwE;QACxE,wEAAwE;QACxE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACzB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,4BAA4B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,CAAA;AAC7F,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEvC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B;IAC9D,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAsC;IAEtC,OAAO,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;QAC1D,eAAe,EAAE,CAAC,IAA8B,EAAE,EAAE,CAClD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCommentSystem.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentSystem.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK5C,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IAErC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAA;IAE3B;;OAEG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAErC;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAE7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACvD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,sBAAsB,EAAE,OAAO,CAAA;IAC/B,yBAAyB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,oBAAoB,EAAE;QACpB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;QAClC,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,IAAI,CAAA;IACR,uBAAuB,EAAE,CACvB,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KACxE,IAAI,CAAA;IACT,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,EAClC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpF,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAChE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAgPzF"}
1
+ {"version":3,"file":"useCommentSystem.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentSystem.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAM5C,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IAErC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAA;IAE3B;;OAEG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAErC;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAE7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACvD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,sBAAsB,EAAE,OAAO,CAAA;IAC/B,yBAAyB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,oBAAoB,EAAE;QACpB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;QAClC,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,IAAI,CAAA;IACR,uBAAuB,EAAE,CACvB,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KACxE,IAAI,CAAA;IACT,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,EAClC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpF,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAChE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAiPzF"}
@@ -1,8 +1,10 @@
1
1
  import { useEffect, useMemo, useState } from 'react';
2
+ import { useSWRConfig } from 'swr';
2
3
  import { notifications } from '@mantine/notifications';
3
4
  import { normalizeCanopyPath } from '../canopy-path.js';
4
5
  import { useApiClient } from '../context/index.js';
5
6
  import { resolveMessageOrigin } from '../preview-bridge.js';
7
+ import { commentsKey, fetchComments, useCommentsData } from './useCommentsData.js';
6
8
  /**
7
9
  * Custom hook for managing the comment system.
8
10
  *
@@ -33,28 +35,36 @@ import { resolveMessageOrigin } from '../preview-bridge.js';
33
35
  */
34
36
  export function useCommentSystem(options) {
35
37
  const apiClient = useApiClient();
36
- const [comments, setComments] = useState([]);
38
+ const { mutate: globalMutate } = useSWRConfig();
37
39
  const [focusedFieldPath, setFocusedFieldPath] = useState(undefined);
38
40
  const [highlightThreadId, setHighlightThreadId] = useState(undefined);
39
41
  const [commentsPanelOpen, setCommentsPanelOpen] = useState(false);
40
42
  const [commentThreadPanelOpen, setCommentThreadPanelOpen] = useState(false);
41
43
  const [activeCommentContext, setActiveCommentContext] = useState(null);
44
+ // Automatic load, keyed per branch and deduped by SWR (e.g. React Strict
45
+ // Mode's double effect invoke collapses to a single request). Switching
46
+ // branches re-keys automatically, so no manual branch-change effect is
47
+ // needed the way there used to be.
48
+ const { data: commentsData } = useCommentsData(apiClient, options.branchName);
49
+ const comments = commentsData?.threads ?? [];
50
+ // Deliberately omits `options.onCommentsChange` from the deps: it's a
51
+ // stable setState passthrough, and this file is plain .ts (not .tsx), so
52
+ // the react-hooks/exhaustive-deps rule isn't active here anyway --
53
+ // including it would refire this on every Editor.tsx render regardless.
54
+ useEffect(() => {
55
+ if (commentsData)
56
+ options.onCommentsChange?.(commentsData.threads);
57
+ }, [commentsData]);
58
+ // Explicit reload: always issues a fresh, independent fetch (raw call, not
59
+ // SWR's `mutate()` revalidate path) so a caller requesting a reload right
60
+ // after mount isn't coalesced against the still-in-flight automatic load
61
+ // -- then writes the result into the shared cache so useCommentsData's
62
+ // bound hook (and the effect above) pick it up.
42
63
  const loadComments = async (branch) => {
43
64
  if (!branch)
44
65
  return;
45
- try {
46
- const result = await apiClient.comments.list({ branch });
47
- if (!result.ok) {
48
- console.error('Failed to load comments:', result.status);
49
- return;
50
- }
51
- const threads = result.data?.threads ?? [];
52
- setComments(threads);
53
- options.onCommentsChange?.(threads);
54
- }
55
- catch (err) {
56
- console.error('Failed to load comments:', err);
57
- }
66
+ const fresh = await fetchComments(apiClient, branch);
67
+ await globalMutate(commentsKey(branch), fresh, { revalidate: false });
58
68
  };
59
69
  const handleAddComment = async (text, type, entryPath, canopyPath, threadId) => {
60
70
  if (!options.branchName)
@@ -126,14 +136,6 @@ export function useCommentSystem(options) {
126
136
  }
127
137
  return '';
128
138
  }, [activeCommentContext, options.selectedPath, options.branchName]);
129
- // Load comments when branch changes
130
- useEffect(() => {
131
- if (options.branchName) {
132
- loadComments(options.branchName).catch((err) => {
133
- console.error(err);
134
- });
135
- }
136
- }, [options.branchName]);
137
139
  // Listen for field focus messages from preview frame
138
140
  useEffect(() => {
139
141
  const handleFocus = (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useCommentSystem.js","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCommentSystem.js","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * SWR-backed read of a branch's comment threads (GET /:branch/comments).
3
+ *
4
+ * Keyed per branch, so switching branches automatically triggers (and
5
+ * dedupes) a fresh fetch for the new key without useCommentSystem needing
6
+ * its own branch-keyed effect. See useBranchesData.ts for the same pattern
7
+ * applied to the branches list.
8
+ */
9
+ import { type SWRResponse } from 'swr';
10
+ import type { ApiClient } from '../context';
11
+ import type { CommentThread } from '../../comment-store';
12
+ /** Cache key for a branch's comment threads. */
13
+ export declare const commentsKey: (branch: string) => string;
14
+ export interface CommentsData {
15
+ threads: CommentThread[];
16
+ }
17
+ /**
18
+ * Fetch a branch's comment threads. Never throws -- matches the pre-SWR
19
+ * `loadComments` behavior of logging and resolving to an empty list on
20
+ * failure rather than surfacing an error state (comments have no error UI).
21
+ * Exported for direct testing and for the imperative reload path.
22
+ */
23
+ export declare function fetchComments(apiClient: Pick<ApiClient, 'comments'>, branch: string): Promise<CommentsData>;
24
+ /**
25
+ * SWR-backed read of a branch's comment threads. `branch` may be empty
26
+ * (branchless start), in which case fetching is disabled entirely (null key).
27
+ */
28
+ export declare function useCommentsData(apiClient: Pick<ApiClient, 'comments'>, branch: string): SWRResponse<CommentsData, never>;
29
+ //# sourceMappingURL=useCommentsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommentsData.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentsData.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,gDAAgD;AAChD,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,MAAqC,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAYvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAElC"}
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ /**
3
+ * SWR-backed read of a branch's comment threads (GET /:branch/comments).
4
+ *
5
+ * Keyed per branch, so switching branches automatically triggers (and
6
+ * dedupes) a fresh fetch for the new key without useCommentSystem needing
7
+ * its own branch-keyed effect. See useBranchesData.ts for the same pattern
8
+ * applied to the branches list.
9
+ */
10
+ import useSWR from 'swr';
11
+ /** Cache key for a branch's comment threads. */
12
+ export const commentsKey = (branch) => `canopy:comments:${branch}`;
13
+ /**
14
+ * Fetch a branch's comment threads. Never throws -- matches the pre-SWR
15
+ * `loadComments` behavior of logging and resolving to an empty list on
16
+ * failure rather than surfacing an error state (comments have no error UI).
17
+ * Exported for direct testing and for the imperative reload path.
18
+ */
19
+ export async function fetchComments(apiClient, branch) {
20
+ try {
21
+ const result = await apiClient.comments.list({ branch });
22
+ if (!result.ok) {
23
+ console.error('Failed to load comments:', result.status);
24
+ return { threads: [] };
25
+ }
26
+ return { threads: result.data?.threads ?? [] };
27
+ }
28
+ catch (err) {
29
+ console.error('Failed to load comments:', err);
30
+ return { threads: [] };
31
+ }
32
+ }
33
+ /**
34
+ * SWR-backed read of a branch's comment threads. `branch` may be empty
35
+ * (branchless start), in which case fetching is disabled entirely (null key).
36
+ */
37
+ export function useCommentsData(apiClient, branch) {
38
+ return useSWR(branch ? commentsKey(branch) : null, () => fetchComments(apiClient, branch));
39
+ }
40
+ //# sourceMappingURL=useCommentsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommentsData.js","sourceRoot":"","sources":["../../../src/editor/hooks/useCommentsData.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;GAOG;AAEH,OAAO,MAA4B,MAAM,KAAK,CAAA;AAI9C,gDAAgD;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,mBAAmB,MAAM,EAAE,CAAA;AAMlF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAsC,EACtC,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACxD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QACxB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QAC9C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACxB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAsC,EACtC,MAAc;IAEd,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDraftManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAchD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAQF,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAChF,aAAa,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAA;IAClC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,UAAU,EAAE,MAAM,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAqZtF"}
1
+ {"version":3,"file":"useDraftManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAchD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAQF,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAChF,aAAa,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAA;IAClC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,UAAU,EAAE,MAAM,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CA6ZtF"}
@@ -1,6 +1,7 @@
1
1
  import { useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { notifications } from '@mantine/notifications';
3
3
  import { modals } from '@mantine/modals';
4
+ import equal from 'fast-deep-equal';
4
5
  import { getNotificationDuration } from '../utils/env.js';
5
6
  import { validateEntryFormValue } from '../../validation/entry-validator.js';
6
7
  import { SaveApiError } from './useEntryManager.js';
@@ -86,12 +87,13 @@ export function useDraftManager(options) {
86
87
  // as unsaved work — this is what keeps the branch-switch guard from silently
87
88
  // discarding restored drafts.
88
89
  //
89
- // 2. The comparison uses `JSON.stringify`, which is property-order sensitive. A
90
- // rehydrated draft whose keys were serialized in a different order than the
91
- // server-loaded object will show as dirty even when the values are semantically
92
- // identical. This is a known limitation; replacing with `fast-deep-equal` is
93
- // tracked in `.claude/future-tasks/editor-async-patterns.md`.
94
- const modifiedCount = useMemo(() => Object.keys(drafts).filter((id) => !loadedValues[id] || JSON.stringify(drafts[id]) !== JSON.stringify(loadedValues[id])).length, [drafts, loadedValues]);
90
+ // 2. The comparison uses `fast-deep-equal`, a value-based deep equality
91
+ // check -- not property-order sensitive the way `JSON.stringify`
92
+ // comparison was. A rehydrated draft whose keys were serialized in a
93
+ // different order than the server-loaded object no longer shows as
94
+ // dirty when the values are semantically identical.
95
+ const modifiedCount = useMemo(() => Object.keys(drafts).filter((id) => !loadedValues[id] || !equal(drafts[id], loadedValues[id]))
96
+ .length, [drafts, loadedValues]);
95
97
  const editedFiles = useMemo(() => {
96
98
  const draftIds = Object.keys(drafts);
97
99
  if (draftIds.length === 0)
@@ -269,6 +271,18 @@ export function useDraftManager(options) {
269
271
  // validateEntry hook; show its message and map per-field errors (e.g.
270
272
  // reference existence, which only the server can check) into the form.
271
273
  const isValidation = err instanceof SaveApiError && err.status === 422;
274
+ // 403 = the writableBranch guard refused the write outright (base
275
+ // branch read-only, status past 'editing', or unreadable metadata --
276
+ // see api/guards.ts). This is exactly the window a fail-closed but
277
+ // still momentarily-stale client can hit: the branch list hasn't
278
+ // caught up yet, or the editor rendered before the server's answer
279
+ // arrived, so a Save that looked enabled got rejected server-side.
280
+ // #189 wrote specific guard copy explaining WHICH lock applies and how
281
+ // to recover (e.g. "withdraw it to make changes") -- falling through to
282
+ // the generic 'Save failed' below would throw that away in precisely
283
+ // the moment the user is most confused, so surface the server's own
284
+ // message instead, the same way the 422 branch already does.
285
+ const isForbidden = err instanceof SaveApiError && err.status === 403;
272
286
  if (err instanceof SaveApiError &&
273
287
  err.status === 422 &&
274
288
  err.fieldErrors &&
@@ -277,13 +291,14 @@ export function useDraftManager(options) {
277
291
  }
278
292
  notifications.show({
279
293
  ...(isValidation ? { title: 'Save rejected' } : {}),
294
+ ...(isForbidden ? { title: 'Save not allowed' } : {}),
280
295
  message: isConflict
281
296
  ? 'Content was modified by another editor. Reload to see the latest changes.'
282
- : isValidation
297
+ : isValidation || isForbidden
283
298
  ? err.message
284
299
  : 'Save failed',
285
300
  color: isConflict ? 'yellow' : 'red',
286
- autoClose: getNotificationDuration(isConflict || isValidation ? 8000 : 6000),
301
+ autoClose: getNotificationDuration(isConflict || isValidation || isForbidden ? 8000 : 6000),
287
302
  withCloseButton: true,
288
303
  });
289
304
  }
@@ -356,10 +371,10 @@ export function useDraftManager(options) {
356
371
  });
357
372
  };
358
373
  // Only prompt when there is a real draft that actually differs from the
359
- // loaded value (`isSelectedDirty()` below uses the exact same
360
- // JSON.stringify comparison as `modifiedCount`). Discarding a draft that's
361
- // identical to the loaded value, or discarding when there's no draft at
362
- // all, has nothing to lose, so it clears silently.
374
+ // loaded value (`isSelectedDirty()` below uses the exact same deep-equal
375
+ // comparison as `modifiedCount`). Discarding a draft that's identical to
376
+ // the loaded value, or discarding when there's no draft at all, has
377
+ // nothing to lose, so it clears silently.
363
378
  const handleDiscardFileDraft = () => {
364
379
  if (!currentId)
365
380
  return;
@@ -412,7 +427,7 @@ export function useDraftManager(options) {
412
427
  const id = entry.contentId;
413
428
  if (!drafts[id])
414
429
  return false;
415
- return !loadedValues[id] || JSON.stringify(drafts[id]) !== JSON.stringify(loadedValues[id]);
430
+ return !loadedValues[id] || !equal(drafts[id], loadedValues[id]);
416
431
  };
417
432
  // Convenience helper for checking current selection
418
433
  const isSelectedDirty = () => {
@@ -420,15 +435,14 @@ export function useDraftManager(options) {
420
435
  return false;
421
436
  if (!drafts[currentId])
422
437
  return false;
423
- return (!loadedValues[currentId] ||
424
- JSON.stringify(drafts[currentId]) !== JSON.stringify(loadedValues[currentId]));
438
+ return !loadedValues[currentId] || !equal(drafts[currentId], loadedValues[currentId]);
425
439
  };
426
440
  // Returns true if ANY draft entry differs from its loaded value.
427
441
  //
428
442
  // Used for branch-switch guards so unsaved work in non-selected entries is not
429
- // silently discarded. Derived from `modifiedCount`, so the two semantics notes
430
- // above also apply: localStorage-restored drafts without a loaded value count as
431
- // dirty, and the underlying comparison is `JSON.stringify`-based.
443
+ // silently discarded. Derived from `modifiedCount`, so its semantics note
444
+ // above also applies: localStorage-restored drafts without a loaded value
445
+ // count as dirty.
432
446
  const isAnyDirty = () => modifiedCount > 0;
433
447
  return {
434
448
  drafts,
@@ -1 +1 @@
1
- {"version":3,"file":"useDraftManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDraftManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { CollectionItem } from '../../api/entries';
2
+ import type { ApiClient } from '../context';
3
+ import type { EditorEntry, EditorCollection } from '../Editor';
4
+ /** Cache key for a branch's combined schema + entries data. */
5
+ export declare const entriesKey: (branch: string) => string;
6
+ export interface EntriesData {
7
+ collections: EditorCollection[];
8
+ entries: EditorEntry[];
9
+ /** Entry-type schema names available on this branch (from entrySchemas' keys). */
10
+ availableSchemas: string[];
11
+ }
12
+ export interface FetchEntriesParams {
13
+ resolvePreviewSrc: (entry: Partial<EditorEntry>) => string | undefined;
14
+ contentRoot?: string;
15
+ }
16
+ /**
17
+ * Fetch every entry on a branch by following the list endpoint's pagination
18
+ * cursor. Deduped by logicalPath: the cursor is offset-based, so an item can
19
+ * repeat across pages if content changes between requests.
20
+ *
21
+ * Exported for direct unit testing.
22
+ */
23
+ export declare function listAllEntries(apiClient: {
24
+ entries: Pick<ApiClient['entries'], 'list'>;
25
+ }, branch: string): Promise<{
26
+ entries: CollectionItem[];
27
+ truncated: boolean;
28
+ }>;
29
+ /**
30
+ * Fetch a branch's schema and full entry list, and build the EditorEntry/
31
+ * EditorCollection objects the editor renders. Exported for direct testing
32
+ * and for the imperative reload path (useEntryManager.refreshEntries).
33
+ */
34
+ export declare function fetchEntriesAndSchema(apiClient: Pick<ApiClient, 'schema' | 'entries'>, branch: string, params: FetchEntriesParams): Promise<EntriesData>;
35
+ //# sourceMappingURL=useEntriesData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEntriesData.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useEntriesData.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAQ9D,+DAA+D;AAC/D,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAAoC,CAAA;AAEhF,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE;IAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,EAC1D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAkB5D;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC,CA4CtB"}
@@ -0,0 +1,96 @@
1
+ 'use client';
2
+ /**
3
+ * Fetch/key/type pieces for a branch's schema + entry list (GET
4
+ * /:branch/schema, GET /:branch/entries, paginated) -- consumed by
5
+ * useEntryManager.ts, which owns BOTH the automatic useSWR call (with its
6
+ * tagged cache values, see the note at the bottom of this file) and the
7
+ * imperative reload path (`refreshEntries`) with its out-of-order-response
8
+ * guard.
9
+ *
10
+ * Combines schema and entries into one fetch because building EditorEntry/
11
+ * EditorCollection objects requires the hydrated flatSchema either way (see
12
+ * `fetchEntriesAndSchema`). This is also the single source of truth for
13
+ * `availableSchemas` (the entry-type schema names, keyed off the same
14
+ * schema response) -- Editor.tsx used to fetch schema a second time on its
15
+ * own just to compute this list; it now reads it off useEntryManager's
16
+ * return value instead, eliminating that duplicate request.
17
+ */
18
+ import { notifications } from '@mantine/notifications';
19
+ import { MAX_ENTRIES_PER_PAGE } from '../../api/entries-constants.js';
20
+ import { buildEntriesFromListResponse } from '../editor-utils.js';
21
+ /** Page size for entry list requests -- the server's per-page cap, imported to avoid drift. */
22
+ const ENTRIES_PAGE_LIMIT = MAX_ENTRIES_PER_PAGE;
23
+ /** Safety cap on pagination: 50 pages x 200 = 10,000 entries. */
24
+ const MAX_ENTRY_PAGES = 50;
25
+ /** Cache key for a branch's combined schema + entries data. */
26
+ export const entriesKey = (branch) => `canopy:entries:${branch}`;
27
+ /**
28
+ * Fetch every entry on a branch by following the list endpoint's pagination
29
+ * cursor. Deduped by logicalPath: the cursor is offset-based, so an item can
30
+ * repeat across pages if content changes between requests.
31
+ *
32
+ * Exported for direct unit testing.
33
+ */
34
+ export async function listAllEntries(apiClient, branch) {
35
+ const byPath = new Map();
36
+ let cursor;
37
+ for (let page = 0; page < MAX_ENTRY_PAGES; page++) {
38
+ const result = await apiClient.entries.list({
39
+ branch,
40
+ limit: String(ENTRIES_PAGE_LIMIT),
41
+ ...(cursor !== undefined ? { cursor } : {}),
42
+ });
43
+ if (!result.ok || !result.data)
44
+ throw new Error(`Refresh failed: ${result.status}`);
45
+ const data = result.data;
46
+ for (const entry of data.entries)
47
+ byPath.set(entry.logicalPath, entry);
48
+ if (!data.pagination?.hasMore || !data.pagination.cursor) {
49
+ return { entries: [...byPath.values()], truncated: false };
50
+ }
51
+ cursor = data.pagination.cursor;
52
+ }
53
+ return { entries: [...byPath.values()], truncated: true };
54
+ }
55
+ /**
56
+ * Fetch a branch's schema and full entry list, and build the EditorEntry/
57
+ * EditorCollection objects the editor renders. Exported for direct testing
58
+ * and for the imperative reload path (useEntryManager.refreshEntries).
59
+ */
60
+ export async function fetchEntriesAndSchema(apiClient, branch, params) {
61
+ // Fetch schema from schema API
62
+ const schemaResult = await apiClient.schema.get({ branch });
63
+ if (!schemaResult.ok || !schemaResult.data) {
64
+ throw new Error(`Schema fetch failed: ${schemaResult.status}`);
65
+ }
66
+ // Hydrate wire flatSchema: resolve schemaRef -> schema from entrySchemas dict
67
+ const { entrySchemas } = schemaResult.data;
68
+ const hydratedFlatSchema = schemaResult.data.flatSchema.map((item) => item.type === 'entry-type' ? { ...item, schema: entrySchemas[item.schemaRef] ?? [] } : item);
69
+ // Build editor collections from hydrated flatSchema
70
+ // Dynamic import: lazy-load heavier editor config; only needed after API data arrives
71
+ const { buildEditorCollections } = await import('../editor-config.js');
72
+ const collections = buildEditorCollections(hydratedFlatSchema);
73
+ // Fetch ALL entries, following the pagination cursor
74
+ const { entries: allEntries, truncated } = await listAllEntries(apiClient, branch);
75
+ if (truncated) {
76
+ console.warn(`Entry list truncated at ${MAX_ENTRY_PAGES * ENTRIES_PAGE_LIMIT} entries for branch "${branch}"`);
77
+ notifications.show({
78
+ title: 'Entry list truncated',
79
+ message: `Showing the first ${(MAX_ENTRY_PAGES * ENTRIES_PAGE_LIMIT).toLocaleString()} entries.`,
80
+ color: 'yellow',
81
+ });
82
+ }
83
+ // Build entries with resolved schemas from flatSchema
84
+ const entries = buildEntriesFromListResponse({
85
+ response: {
86
+ entries: allEntries,
87
+ pagination: { hasMore: false, limit: ENTRIES_PAGE_LIMIT },
88
+ },
89
+ branchName: branch,
90
+ resolvePreviewSrc: (entry) => params.resolvePreviewSrc(entry) ?? '',
91
+ contentRoot: params.contentRoot || 'content',
92
+ flatSchema: hydratedFlatSchema,
93
+ });
94
+ return { collections, entries, availableSchemas: Object.keys(entrySchemas) };
95
+ }
96
+ //# sourceMappingURL=useEntriesData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEntriesData.js","sourceRoot":"","sources":["../../../src/editor/hooks/useEntriesData.ts"],"names":[],"mappings":"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"}