sanity 6.7.0 → 6.8.0-next.13

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 (140) hide show
  1. package/lib/{AddonDatasetProvider-DGvQRg0M.js → AddonDatasetProvider-j4tCiH3e.js} +2 -2
  2. package/lib/{AddonDatasetProvider-DGvQRg0M.js.map → AddonDatasetProvider-j4tCiH3e.js.map} +1 -1
  3. package/lib/{CalendarFilter-Cz5HCFLA.js → CalendarFilter-D7qsXo8l.js} +3 -3
  4. package/lib/{CalendarFilter-Cz5HCFLA.js.map → CalendarFilter-D7qsXo8l.js.map} +1 -1
  5. package/lib/{CommentsDocumentLayout-C8D--w7w.js → CommentsDocumentLayout-DdqM0Xva.js} +2 -2
  6. package/lib/{CommentsDocumentLayout-C8D--w7w.js.map → CommentsDocumentLayout-DdqM0Xva.js.map} +1 -1
  7. package/lib/{CommentsField-01fndj6n.js → CommentsField-boIeJpD6.js} +3 -3
  8. package/lib/{CommentsField-01fndj6n.js.map → CommentsField-boIeJpD6.js.map} +1 -1
  9. package/lib/{CommentsInput-DEXCCEGP.js → CommentsInput-CXUjX47s.js} +5 -5
  10. package/lib/{CommentsInput-DEXCCEGP.js.map → CommentsInput-CXUjX47s.js.map} +1 -1
  11. package/lib/{CommentsInspector-DBY7KD3P.js → CommentsInspector-DnhaBRvP.js} +5 -5
  12. package/lib/{CommentsInspector-DBY7KD3P.js.map → CommentsInspector-DnhaBRvP.js.map} +1 -1
  13. package/lib/{CommentsListItem-BEGOSIY0.js → CommentsListItem-Dn3MXuMi.js} +3 -3
  14. package/lib/{CommentsListItem-BEGOSIY0.js.map → CommentsListItem-Dn3MXuMi.js.map} +1 -1
  15. package/lib/{CommentsSelectedPathProvider-Clvemp0W.js → CommentsSelectedPathProvider-jbvY-MJ0.js} +3 -3
  16. package/lib/{CommentsSelectedPathProvider-Clvemp0W.js.map → CommentsSelectedPathProvider-jbvY-MJ0.js.map} +1 -1
  17. package/lib/{CommentsStudioLayout-D1kFwOni.js → CommentsStudioLayout-jxq4yKzW.js} +4 -4
  18. package/lib/{CommentsStudioLayout-D1kFwOni.js.map → CommentsStudioLayout-jxq4yKzW.js.map} +1 -1
  19. package/lib/{PaneContainer-QCEhEyzd.js → PaneContainer-BtFBEWLZ.js} +5 -6
  20. package/lib/PaneContainer-BtFBEWLZ.js.map +1 -0
  21. package/lib/{PresentationToolGrantsCheck-CxqDuu8I.js → PresentationToolGrantsCheck-CITNu5DG.js} +14 -6
  22. package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -0
  23. package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js → ReleasesMetadataProvider-16P_iZKZ.js} +2 -2
  24. package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js.map → ReleasesMetadataProvider-16P_iZKZ.js.map} +1 -1
  25. package/lib/{ReleasesNav-DIkvTixA.js → ReleasesNav-BzrUhOoJ.js} +59 -19
  26. package/lib/ReleasesNav-BzrUhOoJ.js.map +1 -0
  27. package/lib/{ReleasesStudioLayout-KuVpj5_v.js → ReleasesStudioLayout-DEWAqdmR.js} +8 -8
  28. package/lib/{ReleasesStudioLayout-KuVpj5_v.js.map → ReleasesStudioLayout-DEWAqdmR.js.map} +1 -1
  29. package/lib/{ReleasesTool-DN5FBLWz.js → ReleasesTool-DJhN0bPA.js} +14 -14
  30. package/lib/{ReleasesTool-DN5FBLWz.js.map → ReleasesTool-DJhN0bPA.js.map} +1 -1
  31. package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js → SchedulePublishingStudioLayout-B3d-Pcp4.js} +3 -3
  32. package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js.map → SchedulePublishingStudioLayout-B3d-Pcp4.js.map} +1 -1
  33. package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js → SchedulePublishingUpsellProvider-tHnK31n0.js} +2 -2
  34. package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js.map → SchedulePublishingUpsellProvider-tHnK31n0.js.map} +1 -1
  35. package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js → ScheduledPublishingEnabledProvider-CzQXgTsk.js} +3 -3
  36. package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js.map → ScheduledPublishingEnabledProvider-CzQXgTsk.js.map} +1 -1
  37. package/lib/{SearchProvider-Iy4-6hcz.js → SearchProvider-D_Y0UV_W.js} +24 -24
  38. package/lib/SearchProvider-D_Y0UV_W.js.map +1 -0
  39. package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js → SingleDocReleaseLayout-BCJmxy5s.js} +2 -2
  40. package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js.map → SingleDocReleaseLayout-BCJmxy5s.js.map} +1 -1
  41. package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js → SingleDocReleaseUpsellProvider-CpUQPbkP.js} +4 -4
  42. package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js.map → SingleDocReleaseUpsellProvider-CpUQPbkP.js.map} +1 -1
  43. package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js → TasksStudioActiveToolLayout-uoPm3E0Y.js} +11 -11
  44. package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js.map → TasksStudioActiveToolLayout-uoPm3E0Y.js.map} +1 -1
  45. package/lib/{TasksStudioLayout-ClMZ9sWa.js → TasksStudioLayout-CFRlrtHs.js} +5 -5
  46. package/lib/{TasksStudioLayout-ClMZ9sWa.js.map → TasksStudioLayout-CFRlrtHs.js.map} +1 -1
  47. package/lib/{Tool-CGMUCSOs.js → Tool-CjZmRZ_L.js} +12 -12
  48. package/lib/{Tool-CGMUCSOs.js.map → Tool-CjZmRZ_L.js.map} +1 -1
  49. package/lib/{UnpublishVersionDialog-DnGH3SLI.js → UnpublishVersionDialog-dJM5TcRn.js} +4 -4
  50. package/lib/{UnpublishVersionDialog-DnGH3SLI.js.map → UnpublishVersionDialog-dJM5TcRn.js.map} +1 -1
  51. package/lib/{UpsellDialog-Dcjf8OuF.js → UpsellDialog-2urLJ5H5.js} +2 -2
  52. package/lib/{UpsellDialog-Dcjf8OuF.js.map → UpsellDialog-2urLJ5H5.js.map} +1 -1
  53. package/lib/{VariantsStudioNavbar-D8L9UWqH.js → VariantsStudioNavbar-BbpP-SV6.js} +7 -27
  54. package/lib/VariantsStudioNavbar-BbpP-SV6.js.map +1 -0
  55. package/lib/{VariantsTool-JHeKZHcr.js → VariantsTool-BpDy94Yo.js} +7 -7
  56. package/lib/{VariantsTool-JHeKZHcr.js.map → VariantsTool-BpDy94Yo.js.map} +1 -1
  57. package/lib/{WorkspaceLoader-CtnP9tNF.js → WorkspaceLoader-COkgKUSq.js} +25 -25
  58. package/lib/{WorkspaceLoader-CtnP9tNF.js.map → WorkspaceLoader-COkgKUSq.js.map} +1 -1
  59. package/lib/_createContext.js +1 -1
  60. package/lib/_singletons.d.ts +1 -1
  61. package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js → buildTextSelectionFromFragment-DkScjl9L.js} +3 -3
  62. package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js.map → buildTextSelectionFromFragment-DkScjl9L.js.map} +1 -1
  63. package/lib/{datastores-X2znh4zT.js → datastores-BKRF0Q9p.js} +16 -5
  64. package/lib/datastores-BKRF0Q9p.js.map +1 -0
  65. package/lib/desk.d.ts +1 -1
  66. package/lib/desk.js +2 -2
  67. package/lib/{index-Z0jxEn8U.d.ts → index-CnGXln7W.d.ts} +62 -12
  68. package/lib/index.d.ts +2 -2
  69. package/lib/index.js +640 -257
  70. package/lib/index.js.map +1 -1
  71. package/lib/{inputResolver-CwZU1DyA.js → inputResolver-BxWoGLcP.js} +4 -4
  72. package/lib/{inputResolver-CwZU1DyA.js.map → inputResolver-BxWoGLcP.js.map} +1 -1
  73. package/lib/{list-CQ5wYKGN.js → list-BqCyKicl.js} +2 -2
  74. package/lib/{list-CQ5wYKGN.js.map → list-BqCyKicl.js.map} +1 -1
  75. package/lib/{navigation.telemetry-Poh1ANIW.js → navigation.telemetry-BdALj7hP.js} +7 -7
  76. package/lib/{navigation.telemetry-Poh1ANIW.js.map → navigation.telemetry-BdALj7hP.js.map} +1 -1
  77. package/lib/pane-8ExVl8qY.js +2 -0
  78. package/lib/pane-wKH9j_H3.js +2 -0
  79. package/lib/{plugin-CNhX_Tb7.js → plugin-BQpcUNhw.js} +6 -6
  80. package/lib/{plugin-CNhX_Tb7.js.map → plugin-BQpcUNhw.js.map} +1 -1
  81. package/lib/{plugin-CXnu--df.js → plugin-CWQXnaVS.js} +5 -5
  82. package/lib/{plugin-CXnu--df.js.map → plugin-CWQXnaVS.js.map} +1 -1
  83. package/lib/{plugin-WOJhZc9d.js → plugin-DbF85jWy.js} +4 -4
  84. package/lib/{plugin-WOJhZc9d.js.map → plugin-DbF85jWy.js.map} +1 -1
  85. package/lib/{plugin-C220AR82.js → plugin-QIqhqpZS.js} +3 -3
  86. package/lib/{plugin-C220AR82.js.map → plugin-QIqhqpZS.js.map} +1 -1
  87. package/lib/presentation.js +1 -1
  88. package/lib/{scheduleItem-DvRHEFEW.js → scheduleItem-CBN6T3h1.js} +8 -8
  89. package/lib/{scheduleItem-DvRHEFEW.js.map → scheduleItem-CBN6T3h1.js.map} +1 -1
  90. package/lib/{schedules-pdE6eEGn.js → schedules-ORlte5Aq.js} +3 -3
  91. package/lib/{schedules-pdE6eEGn.js.map → schedules-ORlte5Aq.js.map} +1 -1
  92. package/lib/structure.js +2 -2
  93. package/lib/{structureTool-BwC_ba3R.js → structureTool-CB6Y6xfI.js} +6 -6
  94. package/lib/{structureTool-BwC_ba3R.js.map → structureTool-CB6Y6xfI.js.map} +1 -1
  95. package/lib/{structureTool-BRYk4qG7.js → structureTool-CupaRvVm.js} +68 -68
  96. package/lib/structureTool-CupaRvVm.js.map +1 -0
  97. package/lib/{studioClient--dm-G_7a.js → studioClient-CJOrhmsT.js} +2 -2
  98. package/lib/{studioClient--dm-G_7a.js.map → studioClient-CJOrhmsT.js.map} +1 -1
  99. package/lib/{useBundleDocuments-oAq5rEkm.js → useBundleDocuments-Bhs3f0QF.js} +15 -13
  100. package/lib/useBundleDocuments-Bhs3f0QF.js.map +1 -0
  101. package/lib/{useComments-DYQ9xguT.js → useComments-b_kg13ZL.js} +2 -2
  102. package/lib/{useComments-DYQ9xguT.js.map → useComments-b_kg13ZL.js.map} +1 -1
  103. package/lib/{useCommentsTelemetry-BoYJL3eG.js → useCommentsTelemetry-BFtot5ib.js} +3 -3
  104. package/lib/{useCommentsTelemetry-BoYJL3eG.js.map → useCommentsTelemetry-BFtot5ib.js.map} +1 -1
  105. package/lib/{useDocumentPreviewValues-v43xdQrb.js → useDocumentPreviewValues-Cp12V_zK.js} +3 -3
  106. package/lib/{useDocumentPreviewValues-v43xdQrb.js.map → useDocumentPreviewValues-Cp12V_zK.js.map} +1 -1
  107. package/lib/{useFeatureEnabled-4gSsu40G.js → useFeatureEnabled-CKA9SpR4.js} +2 -2
  108. package/lib/{useFeatureEnabled-4gSsu40G.js.map → useFeatureEnabled-CKA9SpR4.js.map} +1 -1
  109. package/lib/{useFieldActions-BKWh56GI.js → useFieldActions-BT0dmvAk.js} +2 -2
  110. package/lib/{useFieldActions-BKWh56GI.js.map → useFieldActions-BT0dmvAk.js.map} +1 -1
  111. package/lib/{useReleasesToolAvailable-5DSPa2Gx.js → useReleasesToolAvailable-BtNPK1ns.js} +3 -3
  112. package/lib/{useReleasesToolAvailable-5DSPa2Gx.js.map → useReleasesToolAvailable-BtNPK1ns.js.map} +1 -1
  113. package/lib/{useScheduledDraftMenuActions-BxKkDOS8.js → useScheduledDraftMenuActions-Btn2NKF9.js} +38 -21
  114. package/lib/useScheduledDraftMenuActions-Btn2NKF9.js.map +1 -0
  115. package/lib/{useSetVariant-C6TkfVCm.js → useSetVariant-D6nDqKeX.js} +3 -3
  116. package/lib/{useSetVariant-C6TkfVCm.js.map → useSetVariant-D6nDqKeX.js.map} +1 -1
  117. package/lib/{useStudioUrl-CGakngEM.js → useStudioUrl-DFBaha5x.js} +5 -5
  118. package/lib/{useStudioUrl-CGakngEM.js.map → useStudioUrl-DFBaha5x.js.map} +1 -1
  119. package/lib/{useTimeZone-BoKWaSj6.js → useTimeZone-DceoecRg.js} +2 -2
  120. package/lib/{useTimeZone-BoKWaSj6.js.map → useTimeZone-DceoecRg.js.map} +1 -1
  121. package/lib/{userComponent-DIoiRgtl.js → userComponent-DBLembOH.js} +2 -2
  122. package/lib/{userComponent-DIoiRgtl.js.map → userComponent-DBLembOH.js.map} +1 -1
  123. package/lib/{validationUtils-CX9mO1s1.js → validationUtils-BefUKU_E.js} +4 -4
  124. package/lib/{validationUtils-CX9mO1s1.js.map → validationUtils-BefUKU_E.js.map} +1 -1
  125. package/lib/{version-CUL0S-Ix.js → version-D8FgjwBF.js} +2 -2
  126. package/lib/{version-CUL0S-Ix.js.map → version-D8FgjwBF.js.map} +1 -1
  127. package/package.json +10 -10
  128. package/lib/Delay-DjgiAi06.js +0 -21
  129. package/lib/Delay-DjgiAi06.js.map +0 -1
  130. package/lib/PaneContainer-QCEhEyzd.js.map +0 -1
  131. package/lib/PresentationToolGrantsCheck-CxqDuu8I.js.map +0 -1
  132. package/lib/ReleasesNav-DIkvTixA.js.map +0 -1
  133. package/lib/SearchProvider-Iy4-6hcz.js.map +0 -1
  134. package/lib/VariantsStudioNavbar-D8L9UWqH.js.map +0 -1
  135. package/lib/datastores-X2znh4zT.js.map +0 -1
  136. package/lib/pane-CoSiSpvR.js +0 -2
  137. package/lib/pane-ptq8ykm7.js +0 -2
  138. package/lib/structureTool-BRYk4qG7.js.map +0 -1
  139. package/lib/useBundleDocuments-oAq5rEkm.js.map +0 -1
  140. package/lib/useScheduledDraftMenuActions-BxKkDOS8.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { l as getPublishedId } from "./draftUtils-C1C4OKjo.js";
2
- import { c as useWorkspace } from "./studioClient--dm-G_7a.js";
2
+ import { c as useWorkspace } from "./studioClient-CJOrhmsT.js";
3
3
  import { t as useAddonDataset } from "./useAddonDataset-BvCgByG6.js";
4
- import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-4gSsu40G.js";
5
- import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-Dcjf8OuF.js";
4
+ import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-CKA9SpR4.js";
5
+ import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-2urLJ5H5.js";
6
6
  import { t as useTasksEnabled } from "./useTasksEnabled-DBNZp6wF.js";
7
- import { t as AddonDatasetProvider } from "./AddonDatasetProvider-DGvQRg0M.js";
7
+ import { t as AddonDatasetProvider } from "./AddonDatasetProvider-j4tCiH3e.js";
8
8
  import { n as TASKS_SIDEBAR_SEARCH_PARAM, o as TaskLinkCopied, r as TASKS_VIEW_MODE_SEARCH_PARAM, s as TaskLinkOpened, t as TASKS_SELECTED_TASK_SEARCH_PARAM } from "./types-B8Ny1dM-.js";
9
9
  import { useEffect, useReducer, useState } from "react";
10
10
  import { catchError, of } from "rxjs";
@@ -418,4 +418,4 @@ function TasksStudioLayout(props) {
418
418
  }
419
419
  export { TasksStudioLayout };
420
420
 
421
- //# sourceMappingURL=TasksStudioLayout-ClMZ9sWa.js.map
421
+ //# sourceMappingURL=TasksStudioLayout-CFRlrtHs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TasksStudioLayout-ClMZ9sWa.js","names":["useMemo","TasksEnabledContext","useFeatureEnabled","FEATURES","useWorkspace","TasksEnabledContextValue","TaksEnabledProviderProps","children","React","ReactNode","TasksEnabledProvider","t0","$","_c","enabled","isLoading","error","sanityTasks","isWorkspaceEnabled","tasks","t1","bb0","t2","Symbol","for","mode","t3","value","useTelemetry","useToast","uuid","ReactNode","useCallback","useEffect","useMemo","useReducer","TasksNavigationContext","useRouter","TaskLinkCopied","TaskLinkOpened","Action","SidebarTabsIds","State","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","ViewModeOptions","initialState","viewMode","selectedTask","activeTabId","duplicateTaskValues","isOpen","reducer","state","action","type","payload","id","TasksNavigationProvider","t0","$","_c","children","dispatch","router","toast","telemetry","t1","Symbol","for","bb2","setViewMode","t2","tabId","setActiveTab","t3","navigate","stickyParams","handleCloseTasks","t4","handleOpenTasks","t5","url","URL","window","location","href","searchParams","set","navigator","clipboard","writeText","toString","then","log","catch","push","closable","status","title","handleCopyLinkToTask","sidebar","viewMode_0","t6","t7","t8","value","t9","TaskDocument","TaskPostPayload","TaskAddedAction","payload","type","TaskDeletedAction","id","TaskUpdatedAction","Partial","TasksSetAction","tasks","TaskReceivedAction","TasksReducerAction","TasksReducerState","Record","createTasksSet","tasksById","reduce","acc","task","_id","tasksReducer","state","action","nextTaskResult","nextTaskValue","nextTask","_state","undefined","_createdAt","Date","toISOString","_","restTasks","updatedTask","ListenEvent","ListenOptions","useCallback","useEffect","useMemo","useReducer","useState","catchError","of","useAddonDataset","getPublishedId","Loadable","TaskDocument","tasksReducer","TasksReducerAction","TasksReducerState","TasksStoreOptions","documentId","TasksStoreReturnType","dispatch","React","Dispatch","INITIAL_STATE","tasks","LISTEN_OPTIONS","events","includeResult","visibility","includeAllVersions","tag","SORT_FIELD","SORT_ORDER","QUERY_FILTERS","QUERY_PROJECTION","QUERY_SORT_ORDER","QUERY","join","useTasksStore","opts","$","_c","client","state","isLoading","setIsLoading","error","setError","t0","t1","params","t2","res","fetch","type","t3","err","initialFetch","event","transition","nextTask","result","payload","id","updatedTask","handleListenerEvent","t4","bb0","t5","Symbol","for","observable","t6","err_0","listen","pipe","events$","listener$","sub","subscribe","unsubscribe","t7","Object","values","tasksAsArray","t8","data","debounce","useMemo","useState","TasksContext","useTasksStore","ActiveDocument","TasksContextValue","TasksProviderProps","children","React","ReactNode","EMPTY_ARRAY","TasksProvider","props","$","_c","activeDocument","setActiveDocument","t0","Symbol","for","data","t1","isLoading","undefined","t2","debouncedSetActiveDocument","t3","t4","value","t5","TasksUpsellContext","getDialogPropsFromContext","useUpsellContext","UpsellDialog","TasksUpsellProvider","props","$","_c","t0","Symbol","for","dataUri","feature","contextValue","t1","children","t2","t3","t4","LayoutProps","AddonDatasetProvider","TasksEnabledProvider","useTasksEnabled","TasksNavigationProvider","TasksProvider","TasksUpsellProvider","TasksStudioLayoutInner","props","$","_c","enabled","mode","t0","renderDefault","t1","children","t2","TasksStudioLayout"],"sources":["../src/core/tasks/context/enabled/TasksEnabledProvider.tsx","../src/core/tasks/context/navigation/TasksNavigationProvider.tsx","../src/core/tasks/store/reducer.ts","../src/core/tasks/store/useTasksStore.ts","../src/core/tasks/context/tasks/TasksProvider.tsx","../src/core/tasks/context/upsell/TasksUpsellProvider.tsx","../src/core/tasks/plugin/TasksStudioLayout.tsx"],"sourcesContent":["import {useMemo} from 'react'\nimport {TasksEnabledContext} from 'sanity/_singletons'\n\nimport {useFeatureEnabled, FEATURES} from '../../../hooks/useFeatureEnabled'\nimport {useWorkspace} from '../../../studio/workspace'\nimport {type TasksEnabledContextValue} from './types'\n\ninterface TaksEnabledProviderProps {\n children: React.ReactNode\n}\n\n/**\n * @internal\n */\nexport function TasksEnabledProvider({children}: TaksEnabledProviderProps) {\n const {enabled, isLoading, error} = useFeatureEnabled(FEATURES.sanityTasks)\n\n const isWorkspaceEnabled = useWorkspace().tasks?.enabled\n\n const value: TasksEnabledContextValue = useMemo(() => {\n if (!isWorkspaceEnabled || isLoading || error) {\n return {\n enabled: false,\n mode: null,\n }\n }\n return {\n enabled: true,\n mode: enabled ? 'default' : 'upsell',\n }\n }, [enabled, isLoading, isWorkspaceEnabled, error])\n\n return <TasksEnabledContext.Provider value={value}>{children}</TasksEnabledContext.Provider>\n}\n","import {useTelemetry} from '@sanity/telemetry/react'\nimport {useToast} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {type ReactNode, useCallback, useEffect, useMemo, useReducer} from 'react'\nimport {TasksNavigationContext} from 'sanity/_singletons'\nimport {useRouter} from 'sanity/router'\n\nimport {TaskLinkCopied, TaskLinkOpened} from '../../__telemetry__/tasks.telemetry'\nimport {\n type Action,\n type SidebarTabsIds,\n type State,\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n type ViewModeOptions,\n} from './types'\n\nconst initialState: State = {\n viewMode: 'list',\n selectedTask: null,\n activeTabId: 'assigned',\n duplicateTaskValues: null,\n isOpen: false,\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'TOGGLE_TASKS_VIEW': {\n if (!action.payload) {\n return {\n ...initialState,\n isOpen: action.payload,\n }\n }\n return {\n ...state,\n isOpen: action.payload,\n }\n }\n case 'CREATE_TASK':\n return {\n ...state,\n viewMode: 'create',\n selectedTask: uuid(),\n }\n case 'EDIT_TASK':\n return {\n ...state,\n viewMode: 'edit',\n selectedTask: action.payload.id,\n }\n case 'EDIT_DRAFT':\n return {\n ...state,\n viewMode: 'draft',\n selectedTask: action.payload.id,\n }\n case 'DUPLICATE_TASK':\n return {\n ...state,\n viewMode: 'duplicate',\n selectedTask: uuid(),\n duplicateTaskValues: action.payload.duplicateTaskValues,\n }\n case 'SET_ACTIVE_TAB':\n return {\n ...state,\n viewMode: 'list',\n activeTabId: action.payload,\n }\n case 'NAVIGATE_TO_LIST':\n return {\n ...state,\n viewMode: 'list',\n }\n default:\n return state\n }\n}\n\nexport const TasksNavigationProvider = ({children}: {children: ReactNode}) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n const router = useRouter()\n const toast = useToast()\n const telemetry = useTelemetry()\n\n const setViewMode = useCallback((viewMode: ViewModeOptions) => {\n switch (viewMode.type) {\n case 'list':\n dispatch({type: 'NAVIGATE_TO_LIST'})\n break\n case 'create':\n dispatch({type: 'CREATE_TASK'})\n break\n case 'edit':\n dispatch({type: 'EDIT_TASK', payload: {id: viewMode.id}})\n break\n case 'duplicate':\n dispatch({\n type: 'DUPLICATE_TASK',\n payload: {duplicateTaskValues: viewMode.duplicateTaskValues},\n })\n break\n case 'draft':\n dispatch({type: 'EDIT_DRAFT', payload: {id: viewMode.id}})\n break\n default:\n break\n }\n }, [])\n\n const setActiveTab = useCallback((tabId: SidebarTabsIds) => {\n dispatch({type: 'SET_ACTIVE_TAB', payload: tabId})\n }, [])\n\n const handleCloseTasks = useCallback(() => {\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: false})\n\n // Remove task-related query parameters from the URL\n router.navigate({\n stickyParams: {\n ...router.stickyParams,\n [TASKS_SIDEBAR_SEARCH_PARAM]: null,\n [TASKS_VIEW_MODE_SEARCH_PARAM]: null,\n [TASKS_SELECTED_TASK_SEARCH_PARAM]: null,\n },\n })\n }, [router])\n\n const handleOpenTasks = useCallback(() => {\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: true})\n }, [])\n\n const handleCopyLinkToTask = useCallback(() => {\n const url = new URL(window.location.href)\n url.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n url.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, state.viewMode)\n if (state.selectedTask) {\n url.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, state.selectedTask)\n }\n navigator.clipboard\n .writeText(url.toString())\n .then(() => {\n telemetry.log(TaskLinkCopied)\n })\n .catch(() => {\n toast.push({\n closable: true,\n status: 'error',\n title: 'Failed to copy link to clipboard',\n })\n })\n }, [state.selectedTask, state.viewMode, telemetry, toast])\n\n const sidebar = router.stickyParams[TASKS_SIDEBAR_SEARCH_PARAM]\n const viewMode = router.stickyParams[TASKS_VIEW_MODE_SEARCH_PARAM]\n const selectedTask = router.stickyParams[TASKS_SELECTED_TASK_SEARCH_PARAM]\n\n useEffect(() => {\n // listen to the URL to open the tasks view if the sidebar is set to task.\n if (sidebar !== 'tasks') {\n return\n }\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: true})\n if (viewMode === 'edit' && selectedTask) {\n dispatch({type: 'EDIT_TASK', payload: {id: selectedTask}})\n telemetry.log(TaskLinkOpened)\n }\n }, [selectedTask, sidebar, telemetry, viewMode])\n\n const value = useMemo(\n () => ({\n state,\n setViewMode,\n setActiveTab,\n handleCloseTasks,\n handleOpenTasks,\n handleCopyLinkToTask,\n }),\n [handleCloseTasks, handleCopyLinkToTask, handleOpenTasks, setActiveTab, setViewMode, state],\n )\n\n return <TasksNavigationContext.Provider value={value}>{children}</TasksNavigationContext.Provider>\n}\n","import {type TaskDocument, type TaskPostPayload} from '../types'\n\ninterface TaskAddedAction {\n payload: TaskDocument | TaskPostPayload\n type: 'TASK_ADDED'\n}\n\ninterface TaskDeletedAction {\n id: string\n type: 'TASK_DELETED'\n}\n\ninterface TaskUpdatedAction {\n payload: TaskDocument | Partial<TaskPostPayload>\n type: 'TASK_UPDATED'\n}\n\ninterface TasksSetAction {\n tasks: TaskDocument[]\n type: 'TASKS_SET'\n}\n\ninterface TaskReceivedAction {\n payload: TaskDocument\n type: 'TASK_RECEIVED'\n}\n\nexport type TasksReducerAction =\n | TaskAddedAction\n | TaskDeletedAction\n | TaskUpdatedAction\n | TasksSetAction\n | TaskReceivedAction\n\nexport interface TasksReducerState {\n tasks: Record<string, TaskDocument>\n}\n\n/**\n * Transform an array of tasks into an object with the task id as key:\n * ```\n * {\n * 'task-1': { _id: 'task-1', ... },\n * 'task-2': { _id: 'task-2', ... },\n * }\n * ```\n */\nfunction createTasksSet(tasks: TaskDocument[]) {\n const tasksById = tasks.reduce((acc, task) => ({...acc, [task._id]: task}), {})\n return tasksById\n}\n\nexport function tasksReducer(\n state: TasksReducerState,\n action: TasksReducerAction,\n): TasksReducerState {\n switch (action.type) {\n case 'TASKS_SET': {\n // Create an object with the task id as key\n const tasksById = createTasksSet(action.tasks)\n\n return {\n ...state,\n tasks: tasksById,\n }\n }\n\n case 'TASK_ADDED': {\n const nextTaskResult = action.payload as TaskDocument\n const nextTaskValue = nextTaskResult satisfies TaskDocument\n\n const nextTask = {\n [nextTaskResult._id]: {\n ...state.tasks[nextTaskResult._id],\n ...nextTaskValue,\n _state: nextTaskResult._state || undefined,\n // If the task is created optimistically, it won't have a createdAt date as this is set on the server.\n // However, we need to set a createdAt date to be able to sort the tasks correctly.\n // Therefore, we set the createdAt date to the current date here if it's missing while creating the task.\n // Once the task is created and received from the server, the createdAt date will be updated to the correct value.\n _createdAt: nextTaskResult._createdAt || new Date().toISOString(),\n } satisfies TaskDocument,\n }\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n ...nextTask,\n },\n }\n }\n\n case 'TASK_RECEIVED': {\n const nextTaskResult = action.payload\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n [nextTaskResult._id]: nextTaskResult,\n },\n }\n }\n\n case 'TASK_DELETED': {\n const {[action.id]: _, ...restTasks} = state.tasks\n\n return {\n ...state,\n tasks: restTasks,\n }\n }\n\n case 'TASK_UPDATED': {\n const updatedTask = action.payload\n const id = updatedTask._id as string\n const task = state.tasks[id]\n\n const nextTask = {\n // Add existing task data\n ...task,\n // Add incoming task data\n ...updatedTask,\n } satisfies TaskDocument\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n [id]: nextTask,\n },\n }\n }\n\n default:\n return state\n }\n}\n","import {type ListenEvent, type ListenOptions} from '@sanity/client'\nimport {useCallback, useEffect, useMemo, useReducer, useState} from 'react'\nimport {catchError, of} from 'rxjs'\n\nimport {useAddonDataset} from '../../studio/addonDataset/useAddonDataset'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type Loadable, type TaskDocument} from '../types'\nimport {tasksReducer, type TasksReducerAction, type TasksReducerState} from './reducer'\n\nexport interface TasksStoreOptions {\n documentId?: string\n}\n\ninterface TasksStoreReturnType extends Loadable<TaskDocument[]> {\n dispatch: React.Dispatch<TasksReducerAction>\n}\n\nconst INITIAL_STATE: TasksReducerState = {\n tasks: {},\n}\n\nconst LISTEN_OPTIONS: ListenOptions = {\n events: ['welcome', 'mutation', 'reconnect'],\n includeResult: true,\n visibility: 'query',\n includeAllVersions: true,\n tag: 'tasks-store',\n}\n\nconst SORT_FIELD = '_createdAt'\nconst SORT_ORDER = 'desc'\n\nconst QUERY_FILTERS = [`_type == \"tasks.task\"`]\n\nconst QUERY_PROJECTION = `{\n ...,\n}`\n\n// Newest tasks first\nconst QUERY_SORT_ORDER = `order(${SORT_FIELD} ${SORT_ORDER})`\n\nconst QUERY = `*[${QUERY_FILTERS.join(' && ')}] ${QUERY_PROJECTION} | ${QUERY_SORT_ORDER}`\n\nexport function useTasksStore(opts: TasksStoreOptions): TasksStoreReturnType {\n const {client} = useAddonDataset()\n const {documentId} = opts\n\n const [state, dispatch] = useReducer(tasksReducer, INITIAL_STATE)\n const [isLoading, setIsLoading] = useState<boolean>(client !== null)\n const [error, setError] = useState<Error | null>(null)\n\n const params = useMemo(\n () => ({documentId: documentId ? getPublishedId(documentId) : null}),\n [documentId],\n )\n\n const initialFetch = useCallback(async () => {\n if (!client) {\n setIsLoading(false)\n return\n }\n\n try {\n const res = await client.fetch(QUERY, params)\n dispatch({type: 'TASKS_SET', tasks: res})\n setIsLoading(false)\n } catch (err) {\n setError(err)\n }\n }, [client, params])\n\n const handleListenerEvent = useCallback(\n async (event: ListenEvent<Record<string, TaskDocument>>) => {\n // Fetch all tasks on initial connection\n if (event.type === 'welcome') {\n setIsLoading(true)\n await initialFetch()\n setIsLoading(false)\n }\n\n // The reconnect event means that we are trying to reconnect to the realtime listener.\n // In this case we set loading to true to indicate that we're trying to\n // reconnect. Once a connection has been established, the welcome event\n // will be received and we'll fetch all tasks again (above).\n if (event.type === 'reconnect') {\n setIsLoading(true)\n }\n\n // Handle mutations (create, update, delete) from the realtime listener\n // and update the tasks store accordingly\n if (event.type === 'mutation') {\n if (event.transition === 'appear') {\n const nextTask = event.result as TaskDocument | undefined\n\n if (nextTask) {\n dispatch({\n type: 'TASK_RECEIVED',\n payload: nextTask,\n })\n }\n }\n\n if (event.transition === 'disappear') {\n dispatch({type: 'TASK_DELETED', id: event.documentId})\n }\n\n if (event.transition === 'update') {\n const updatedTask = event.result as TaskDocument | undefined\n\n if (updatedTask) {\n dispatch({\n type: 'TASK_UPDATED',\n payload: updatedTask,\n })\n }\n }\n }\n },\n [initialFetch],\n )\n\n const listener$ = useMemo(() => {\n if (!client) return of()\n\n const events$ = client.observable.listen(QUERY, params, LISTEN_OPTIONS).pipe(\n catchError((err) => {\n setError(err)\n return of(err)\n }),\n )\n\n return events$\n }, [client, params])\n\n useEffect(() => {\n const sub = listener$.subscribe(handleListenerEvent)\n\n return () => {\n sub?.unsubscribe()\n }\n }, [handleListenerEvent, listener$])\n\n // Transform tasks object to array\n const tasksAsArray = useMemo(() => Object.values(state.tasks), [state.tasks])\n\n return {\n data: tasksAsArray,\n dispatch,\n error,\n isLoading,\n }\n}\n","import debounce from 'lodash-es/debounce.js'\nimport {useMemo, useState} from 'react'\nimport {TasksContext} from 'sanity/_singletons'\n\nimport {useTasksStore} from '../../store/useTasksStore'\nimport {type ActiveDocument, type TasksContextValue} from './types'\n\ninterface TasksProviderProps {\n children: React.ReactNode\n}\n\nconst EMPTY_ARRAY: [] = []\n\n/**\n * @internal\n */\nexport function TasksProvider(props: TasksProviderProps) {\n const {children} = props\n const [activeDocument, setActiveDocument] = useState<ActiveDocument | null>(null)\n const {data = EMPTY_ARRAY, isLoading} = useTasksStore({})\n\n // This change is debounced to wait until the next document loads if we are switching between documents.\n const debouncedSetActiveDocument = useMemo(() => debounce(setActiveDocument, 1000), [])\n\n const value: TasksContextValue = useMemo(\n () => ({\n activeDocument,\n setActiveDocument: debouncedSetActiveDocument,\n isLoading,\n data: data ?? [],\n }),\n [activeDocument, data, isLoading, debouncedSetActiveDocument],\n )\n\n return <TasksContext.Provider value={value}>{children}</TasksContext.Provider>\n}\n","import {TasksUpsellContext} from 'sanity/_singletons'\n\nimport {getDialogPropsFromContext, useUpsellContext} from '../../../hooks/useUpsellContext'\nimport {UpsellDialog} from '../../../studio/upsell/UpsellDialog'\n\n/**\n * @beta\n * @hidden\n */\nexport function TasksUpsellProvider(props: {children: React.ReactNode}) {\n const contextValue = useUpsellContext({\n dataUri: '/journey/tasks',\n feature: 'tasks',\n })\n\n return (\n <TasksUpsellContext.Provider value={contextValue}>\n {props.children}\n <UpsellDialog {...getDialogPropsFromContext(contextValue)} />\n </TasksUpsellContext.Provider>\n )\n}\n","import {type LayoutProps} from '../../config/studio/types'\nimport {AddonDatasetProvider} from '../../studio/addonDataset/AddonDatasetProvider'\nimport {TasksEnabledProvider} from '../context/enabled/TasksEnabledProvider'\nimport {useTasksEnabled} from '../context/enabled/useTasksEnabled'\nimport {TasksNavigationProvider} from '../context/navigation/TasksNavigationProvider'\nimport {TasksProvider} from '../context/tasks/TasksProvider'\nimport {TasksUpsellProvider} from '../context/upsell/TasksUpsellProvider'\n\nconst TasksStudioLayoutInner = (props: LayoutProps) => {\n const {enabled, mode} = useTasksEnabled()\n\n if (!enabled) {\n return props.renderDefault(props)\n }\n\n const children = (\n <TasksProvider>\n <TasksNavigationProvider>{props.renderDefault(props)}</TasksNavigationProvider>\n </TasksProvider>\n )\n\n if (mode === 'upsell') {\n return (\n <AddonDatasetProvider>\n <TasksUpsellProvider>{children}</TasksUpsellProvider>\n </AddonDatasetProvider>\n )\n }\n\n return <AddonDatasetProvider>{children}</AddonDatasetProvider>\n}\n\nexport function TasksStudioLayout(props: LayoutProps) {\n return (\n <TasksEnabledProvider>\n <TasksStudioLayoutInner {...props} />\n </TasksEnabledProvider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TasksStudioLayout-CFRlrtHs.js","names":["useMemo","TasksEnabledContext","useFeatureEnabled","FEATURES","useWorkspace","TasksEnabledContextValue","TaksEnabledProviderProps","children","React","ReactNode","TasksEnabledProvider","t0","$","_c","enabled","isLoading","error","sanityTasks","isWorkspaceEnabled","tasks","t1","bb0","t2","Symbol","for","mode","t3","value","useTelemetry","useToast","uuid","ReactNode","useCallback","useEffect","useMemo","useReducer","TasksNavigationContext","useRouter","TaskLinkCopied","TaskLinkOpened","Action","SidebarTabsIds","State","TASKS_SELECTED_TASK_SEARCH_PARAM","TASKS_SIDEBAR_SEARCH_PARAM","TASKS_VIEW_MODE_SEARCH_PARAM","ViewModeOptions","initialState","viewMode","selectedTask","activeTabId","duplicateTaskValues","isOpen","reducer","state","action","type","payload","id","TasksNavigationProvider","t0","$","_c","children","dispatch","router","toast","telemetry","t1","Symbol","for","bb2","setViewMode","t2","tabId","setActiveTab","t3","navigate","stickyParams","handleCloseTasks","t4","handleOpenTasks","t5","url","URL","window","location","href","searchParams","set","navigator","clipboard","writeText","toString","then","log","catch","push","closable","status","title","handleCopyLinkToTask","sidebar","viewMode_0","t6","t7","t8","value","t9","TaskDocument","TaskPostPayload","TaskAddedAction","payload","type","TaskDeletedAction","id","TaskUpdatedAction","Partial","TasksSetAction","tasks","TaskReceivedAction","TasksReducerAction","TasksReducerState","Record","createTasksSet","tasksById","reduce","acc","task","_id","tasksReducer","state","action","nextTaskResult","nextTaskValue","nextTask","_state","undefined","_createdAt","Date","toISOString","_","restTasks","updatedTask","ListenEvent","ListenOptions","useCallback","useEffect","useMemo","useReducer","useState","catchError","of","useAddonDataset","getPublishedId","Loadable","TaskDocument","tasksReducer","TasksReducerAction","TasksReducerState","TasksStoreOptions","documentId","TasksStoreReturnType","dispatch","React","Dispatch","INITIAL_STATE","tasks","LISTEN_OPTIONS","events","includeResult","visibility","includeAllVersions","tag","SORT_FIELD","SORT_ORDER","QUERY_FILTERS","QUERY_PROJECTION","QUERY_SORT_ORDER","QUERY","join","useTasksStore","opts","$","_c","client","state","isLoading","setIsLoading","error","setError","t0","t1","params","t2","res","fetch","type","t3","err","initialFetch","event","transition","nextTask","result","payload","id","updatedTask","handleListenerEvent","t4","bb0","t5","Symbol","for","observable","t6","err_0","listen","pipe","events$","listener$","sub","subscribe","unsubscribe","t7","Object","values","tasksAsArray","t8","data","debounce","useMemo","useState","TasksContext","useTasksStore","ActiveDocument","TasksContextValue","TasksProviderProps","children","React","ReactNode","EMPTY_ARRAY","TasksProvider","props","$","_c","activeDocument","setActiveDocument","t0","Symbol","for","data","t1","isLoading","undefined","t2","debouncedSetActiveDocument","t3","t4","value","t5","TasksUpsellContext","getDialogPropsFromContext","useUpsellContext","UpsellDialog","TasksUpsellProvider","props","$","_c","t0","Symbol","for","dataUri","feature","contextValue","t1","children","t2","t3","t4","LayoutProps","AddonDatasetProvider","TasksEnabledProvider","useTasksEnabled","TasksNavigationProvider","TasksProvider","TasksUpsellProvider","TasksStudioLayoutInner","props","$","_c","enabled","mode","t0","renderDefault","t1","children","t2","TasksStudioLayout"],"sources":["../src/core/tasks/context/enabled/TasksEnabledProvider.tsx","../src/core/tasks/context/navigation/TasksNavigationProvider.tsx","../src/core/tasks/store/reducer.ts","../src/core/tasks/store/useTasksStore.ts","../src/core/tasks/context/tasks/TasksProvider.tsx","../src/core/tasks/context/upsell/TasksUpsellProvider.tsx","../src/core/tasks/plugin/TasksStudioLayout.tsx"],"sourcesContent":["import {useMemo} from 'react'\nimport {TasksEnabledContext} from 'sanity/_singletons'\n\nimport {useFeatureEnabled, FEATURES} from '../../../hooks/useFeatureEnabled'\nimport {useWorkspace} from '../../../studio/workspace'\nimport {type TasksEnabledContextValue} from './types'\n\ninterface TaksEnabledProviderProps {\n children: React.ReactNode\n}\n\n/**\n * @internal\n */\nexport function TasksEnabledProvider({children}: TaksEnabledProviderProps) {\n const {enabled, isLoading, error} = useFeatureEnabled(FEATURES.sanityTasks)\n\n const isWorkspaceEnabled = useWorkspace().tasks?.enabled\n\n const value: TasksEnabledContextValue = useMemo(() => {\n if (!isWorkspaceEnabled || isLoading || error) {\n return {\n enabled: false,\n mode: null,\n }\n }\n return {\n enabled: true,\n mode: enabled ? 'default' : 'upsell',\n }\n }, [enabled, isLoading, isWorkspaceEnabled, error])\n\n return <TasksEnabledContext.Provider value={value}>{children}</TasksEnabledContext.Provider>\n}\n","import {useTelemetry} from '@sanity/telemetry/react'\nimport {useToast} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {type ReactNode, useCallback, useEffect, useMemo, useReducer} from 'react'\nimport {TasksNavigationContext} from 'sanity/_singletons'\nimport {useRouter} from 'sanity/router'\n\nimport {TaskLinkCopied, TaskLinkOpened} from '../../__telemetry__/tasks.telemetry'\nimport {\n type Action,\n type SidebarTabsIds,\n type State,\n TASKS_SELECTED_TASK_SEARCH_PARAM,\n TASKS_SIDEBAR_SEARCH_PARAM,\n TASKS_VIEW_MODE_SEARCH_PARAM,\n type ViewModeOptions,\n} from './types'\n\nconst initialState: State = {\n viewMode: 'list',\n selectedTask: null,\n activeTabId: 'assigned',\n duplicateTaskValues: null,\n isOpen: false,\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'TOGGLE_TASKS_VIEW': {\n if (!action.payload) {\n return {\n ...initialState,\n isOpen: action.payload,\n }\n }\n return {\n ...state,\n isOpen: action.payload,\n }\n }\n case 'CREATE_TASK':\n return {\n ...state,\n viewMode: 'create',\n selectedTask: uuid(),\n }\n case 'EDIT_TASK':\n return {\n ...state,\n viewMode: 'edit',\n selectedTask: action.payload.id,\n }\n case 'EDIT_DRAFT':\n return {\n ...state,\n viewMode: 'draft',\n selectedTask: action.payload.id,\n }\n case 'DUPLICATE_TASK':\n return {\n ...state,\n viewMode: 'duplicate',\n selectedTask: uuid(),\n duplicateTaskValues: action.payload.duplicateTaskValues,\n }\n case 'SET_ACTIVE_TAB':\n return {\n ...state,\n viewMode: 'list',\n activeTabId: action.payload,\n }\n case 'NAVIGATE_TO_LIST':\n return {\n ...state,\n viewMode: 'list',\n }\n default:\n return state\n }\n}\n\nexport const TasksNavigationProvider = ({children}: {children: ReactNode}) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n const router = useRouter()\n const toast = useToast()\n const telemetry = useTelemetry()\n\n const setViewMode = useCallback((viewMode: ViewModeOptions) => {\n switch (viewMode.type) {\n case 'list':\n dispatch({type: 'NAVIGATE_TO_LIST'})\n break\n case 'create':\n dispatch({type: 'CREATE_TASK'})\n break\n case 'edit':\n dispatch({type: 'EDIT_TASK', payload: {id: viewMode.id}})\n break\n case 'duplicate':\n dispatch({\n type: 'DUPLICATE_TASK',\n payload: {duplicateTaskValues: viewMode.duplicateTaskValues},\n })\n break\n case 'draft':\n dispatch({type: 'EDIT_DRAFT', payload: {id: viewMode.id}})\n break\n default:\n break\n }\n }, [])\n\n const setActiveTab = useCallback((tabId: SidebarTabsIds) => {\n dispatch({type: 'SET_ACTIVE_TAB', payload: tabId})\n }, [])\n\n const handleCloseTasks = useCallback(() => {\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: false})\n\n // Remove task-related query parameters from the URL\n router.navigate({\n stickyParams: {\n ...router.stickyParams,\n [TASKS_SIDEBAR_SEARCH_PARAM]: null,\n [TASKS_VIEW_MODE_SEARCH_PARAM]: null,\n [TASKS_SELECTED_TASK_SEARCH_PARAM]: null,\n },\n })\n }, [router])\n\n const handleOpenTasks = useCallback(() => {\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: true})\n }, [])\n\n const handleCopyLinkToTask = useCallback(() => {\n const url = new URL(window.location.href)\n url.searchParams.set(TASKS_SIDEBAR_SEARCH_PARAM, 'tasks')\n url.searchParams.set(TASKS_VIEW_MODE_SEARCH_PARAM, state.viewMode)\n if (state.selectedTask) {\n url.searchParams.set(TASKS_SELECTED_TASK_SEARCH_PARAM, state.selectedTask)\n }\n navigator.clipboard\n .writeText(url.toString())\n .then(() => {\n telemetry.log(TaskLinkCopied)\n })\n .catch(() => {\n toast.push({\n closable: true,\n status: 'error',\n title: 'Failed to copy link to clipboard',\n })\n })\n }, [state.selectedTask, state.viewMode, telemetry, toast])\n\n const sidebar = router.stickyParams[TASKS_SIDEBAR_SEARCH_PARAM]\n const viewMode = router.stickyParams[TASKS_VIEW_MODE_SEARCH_PARAM]\n const selectedTask = router.stickyParams[TASKS_SELECTED_TASK_SEARCH_PARAM]\n\n useEffect(() => {\n // listen to the URL to open the tasks view if the sidebar is set to task.\n if (sidebar !== 'tasks') {\n return\n }\n dispatch({type: 'TOGGLE_TASKS_VIEW', payload: true})\n if (viewMode === 'edit' && selectedTask) {\n dispatch({type: 'EDIT_TASK', payload: {id: selectedTask}})\n telemetry.log(TaskLinkOpened)\n }\n }, [selectedTask, sidebar, telemetry, viewMode])\n\n const value = useMemo(\n () => ({\n state,\n setViewMode,\n setActiveTab,\n handleCloseTasks,\n handleOpenTasks,\n handleCopyLinkToTask,\n }),\n [handleCloseTasks, handleCopyLinkToTask, handleOpenTasks, setActiveTab, setViewMode, state],\n )\n\n return <TasksNavigationContext.Provider value={value}>{children}</TasksNavigationContext.Provider>\n}\n","import {type TaskDocument, type TaskPostPayload} from '../types'\n\ninterface TaskAddedAction {\n payload: TaskDocument | TaskPostPayload\n type: 'TASK_ADDED'\n}\n\ninterface TaskDeletedAction {\n id: string\n type: 'TASK_DELETED'\n}\n\ninterface TaskUpdatedAction {\n payload: TaskDocument | Partial<TaskPostPayload>\n type: 'TASK_UPDATED'\n}\n\ninterface TasksSetAction {\n tasks: TaskDocument[]\n type: 'TASKS_SET'\n}\n\ninterface TaskReceivedAction {\n payload: TaskDocument\n type: 'TASK_RECEIVED'\n}\n\nexport type TasksReducerAction =\n | TaskAddedAction\n | TaskDeletedAction\n | TaskUpdatedAction\n | TasksSetAction\n | TaskReceivedAction\n\nexport interface TasksReducerState {\n tasks: Record<string, TaskDocument>\n}\n\n/**\n * Transform an array of tasks into an object with the task id as key:\n * ```\n * {\n * 'task-1': { _id: 'task-1', ... },\n * 'task-2': { _id: 'task-2', ... },\n * }\n * ```\n */\nfunction createTasksSet(tasks: TaskDocument[]) {\n const tasksById = tasks.reduce((acc, task) => ({...acc, [task._id]: task}), {})\n return tasksById\n}\n\nexport function tasksReducer(\n state: TasksReducerState,\n action: TasksReducerAction,\n): TasksReducerState {\n switch (action.type) {\n case 'TASKS_SET': {\n // Create an object with the task id as key\n const tasksById = createTasksSet(action.tasks)\n\n return {\n ...state,\n tasks: tasksById,\n }\n }\n\n case 'TASK_ADDED': {\n const nextTaskResult = action.payload as TaskDocument\n const nextTaskValue = nextTaskResult satisfies TaskDocument\n\n const nextTask = {\n [nextTaskResult._id]: {\n ...state.tasks[nextTaskResult._id],\n ...nextTaskValue,\n _state: nextTaskResult._state || undefined,\n // If the task is created optimistically, it won't have a createdAt date as this is set on the server.\n // However, we need to set a createdAt date to be able to sort the tasks correctly.\n // Therefore, we set the createdAt date to the current date here if it's missing while creating the task.\n // Once the task is created and received from the server, the createdAt date will be updated to the correct value.\n _createdAt: nextTaskResult._createdAt || new Date().toISOString(),\n } satisfies TaskDocument,\n }\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n ...nextTask,\n },\n }\n }\n\n case 'TASK_RECEIVED': {\n const nextTaskResult = action.payload\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n [nextTaskResult._id]: nextTaskResult,\n },\n }\n }\n\n case 'TASK_DELETED': {\n const {[action.id]: _, ...restTasks} = state.tasks\n\n return {\n ...state,\n tasks: restTasks,\n }\n }\n\n case 'TASK_UPDATED': {\n const updatedTask = action.payload\n const id = updatedTask._id as string\n const task = state.tasks[id]\n\n const nextTask = {\n // Add existing task data\n ...task,\n // Add incoming task data\n ...updatedTask,\n } satisfies TaskDocument\n\n return {\n ...state,\n tasks: {\n ...state.tasks,\n [id]: nextTask,\n },\n }\n }\n\n default:\n return state\n }\n}\n","import {type ListenEvent, type ListenOptions} from '@sanity/client'\nimport {useCallback, useEffect, useMemo, useReducer, useState} from 'react'\nimport {catchError, of} from 'rxjs'\n\nimport {useAddonDataset} from '../../studio/addonDataset/useAddonDataset'\nimport {getPublishedId} from '../../util/draftUtils'\nimport {type Loadable, type TaskDocument} from '../types'\nimport {tasksReducer, type TasksReducerAction, type TasksReducerState} from './reducer'\n\nexport interface TasksStoreOptions {\n documentId?: string\n}\n\ninterface TasksStoreReturnType extends Loadable<TaskDocument[]> {\n dispatch: React.Dispatch<TasksReducerAction>\n}\n\nconst INITIAL_STATE: TasksReducerState = {\n tasks: {},\n}\n\nconst LISTEN_OPTIONS: ListenOptions = {\n events: ['welcome', 'mutation', 'reconnect'],\n includeResult: true,\n visibility: 'query',\n includeAllVersions: true,\n tag: 'tasks-store',\n}\n\nconst SORT_FIELD = '_createdAt'\nconst SORT_ORDER = 'desc'\n\nconst QUERY_FILTERS = [`_type == \"tasks.task\"`]\n\nconst QUERY_PROJECTION = `{\n ...,\n}`\n\n// Newest tasks first\nconst QUERY_SORT_ORDER = `order(${SORT_FIELD} ${SORT_ORDER})`\n\nconst QUERY = `*[${QUERY_FILTERS.join(' && ')}] ${QUERY_PROJECTION} | ${QUERY_SORT_ORDER}`\n\nexport function useTasksStore(opts: TasksStoreOptions): TasksStoreReturnType {\n const {client} = useAddonDataset()\n const {documentId} = opts\n\n const [state, dispatch] = useReducer(tasksReducer, INITIAL_STATE)\n const [isLoading, setIsLoading] = useState<boolean>(client !== null)\n const [error, setError] = useState<Error | null>(null)\n\n const params = useMemo(\n () => ({documentId: documentId ? getPublishedId(documentId) : null}),\n [documentId],\n )\n\n const initialFetch = useCallback(async () => {\n if (!client) {\n setIsLoading(false)\n return\n }\n\n try {\n const res = await client.fetch(QUERY, params)\n dispatch({type: 'TASKS_SET', tasks: res})\n setIsLoading(false)\n } catch (err) {\n setError(err)\n }\n }, [client, params])\n\n const handleListenerEvent = useCallback(\n async (event: ListenEvent<Record<string, TaskDocument>>) => {\n // Fetch all tasks on initial connection\n if (event.type === 'welcome') {\n setIsLoading(true)\n await initialFetch()\n setIsLoading(false)\n }\n\n // The reconnect event means that we are trying to reconnect to the realtime listener.\n // In this case we set loading to true to indicate that we're trying to\n // reconnect. Once a connection has been established, the welcome event\n // will be received and we'll fetch all tasks again (above).\n if (event.type === 'reconnect') {\n setIsLoading(true)\n }\n\n // Handle mutations (create, update, delete) from the realtime listener\n // and update the tasks store accordingly\n if (event.type === 'mutation') {\n if (event.transition === 'appear') {\n const nextTask = event.result as TaskDocument | undefined\n\n if (nextTask) {\n dispatch({\n type: 'TASK_RECEIVED',\n payload: nextTask,\n })\n }\n }\n\n if (event.transition === 'disappear') {\n dispatch({type: 'TASK_DELETED', id: event.documentId})\n }\n\n if (event.transition === 'update') {\n const updatedTask = event.result as TaskDocument | undefined\n\n if (updatedTask) {\n dispatch({\n type: 'TASK_UPDATED',\n payload: updatedTask,\n })\n }\n }\n }\n },\n [initialFetch],\n )\n\n const listener$ = useMemo(() => {\n if (!client) return of()\n\n const events$ = client.observable.listen(QUERY, params, LISTEN_OPTIONS).pipe(\n catchError((err) => {\n setError(err)\n return of(err)\n }),\n )\n\n return events$\n }, [client, params])\n\n useEffect(() => {\n const sub = listener$.subscribe(handleListenerEvent)\n\n return () => {\n sub?.unsubscribe()\n }\n }, [handleListenerEvent, listener$])\n\n // Transform tasks object to array\n const tasksAsArray = useMemo(() => Object.values(state.tasks), [state.tasks])\n\n return {\n data: tasksAsArray,\n dispatch,\n error,\n isLoading,\n }\n}\n","import debounce from 'lodash-es/debounce.js'\nimport {useMemo, useState} from 'react'\nimport {TasksContext} from 'sanity/_singletons'\n\nimport {useTasksStore} from '../../store/useTasksStore'\nimport {type ActiveDocument, type TasksContextValue} from './types'\n\ninterface TasksProviderProps {\n children: React.ReactNode\n}\n\nconst EMPTY_ARRAY: [] = []\n\n/**\n * @internal\n */\nexport function TasksProvider(props: TasksProviderProps) {\n const {children} = props\n const [activeDocument, setActiveDocument] = useState<ActiveDocument | null>(null)\n const {data = EMPTY_ARRAY, isLoading} = useTasksStore({})\n\n // This change is debounced to wait until the next document loads if we are switching between documents.\n const debouncedSetActiveDocument = useMemo(() => debounce(setActiveDocument, 1000), [])\n\n const value: TasksContextValue = useMemo(\n () => ({\n activeDocument,\n setActiveDocument: debouncedSetActiveDocument,\n isLoading,\n data: data ?? [],\n }),\n [activeDocument, data, isLoading, debouncedSetActiveDocument],\n )\n\n return <TasksContext.Provider value={value}>{children}</TasksContext.Provider>\n}\n","import {TasksUpsellContext} from 'sanity/_singletons'\n\nimport {getDialogPropsFromContext, useUpsellContext} from '../../../hooks/useUpsellContext'\nimport {UpsellDialog} from '../../../studio/upsell/UpsellDialog'\n\n/**\n * @beta\n * @hidden\n */\nexport function TasksUpsellProvider(props: {children: React.ReactNode}) {\n const contextValue = useUpsellContext({\n dataUri: '/journey/tasks',\n feature: 'tasks',\n })\n\n return (\n <TasksUpsellContext.Provider value={contextValue}>\n {props.children}\n <UpsellDialog {...getDialogPropsFromContext(contextValue)} />\n </TasksUpsellContext.Provider>\n )\n}\n","import {type LayoutProps} from '../../config/studio/types'\nimport {AddonDatasetProvider} from '../../studio/addonDataset/AddonDatasetProvider'\nimport {TasksEnabledProvider} from '../context/enabled/TasksEnabledProvider'\nimport {useTasksEnabled} from '../context/enabled/useTasksEnabled'\nimport {TasksNavigationProvider} from '../context/navigation/TasksNavigationProvider'\nimport {TasksProvider} from '../context/tasks/TasksProvider'\nimport {TasksUpsellProvider} from '../context/upsell/TasksUpsellProvider'\n\nconst TasksStudioLayoutInner = (props: LayoutProps) => {\n const {enabled, mode} = useTasksEnabled()\n\n if (!enabled) {\n return props.renderDefault(props)\n }\n\n const children = (\n <TasksProvider>\n <TasksNavigationProvider>{props.renderDefault(props)}</TasksNavigationProvider>\n </TasksProvider>\n )\n\n if (mode === 'upsell') {\n return (\n <AddonDatasetProvider>\n <TasksUpsellProvider>{children}</TasksUpsellProvider>\n </AddonDatasetProvider>\n )\n }\n\n return <AddonDatasetProvider>{children}</AddonDatasetProvider>\n}\n\nexport function TasksStudioLayout(props: LayoutProps) {\n return (\n <TasksEnabledProvider>\n <TasksStudioLayoutInner {...props} />\n </TasksEnabledProvider>\n )\n}\n"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import { a as Button$1, o as Tooltip$1, r as MenuButton$1, t as MenuItem$1 } from "./MenuItem-B0ry3E4J.js";
2
- import { c as useWorkspace } from "./studioClient--dm-G_7a.js";
2
+ import { c as useWorkspace } from "./studioClient-CJOrhmsT.js";
3
3
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
4
- import { An as SanityDefaultPreview, bt as TimeZoneButton } from "./useBundleDocuments-oAq5rEkm.js";
4
+ import { An as SanityDefaultPreview, bt as TimeZoneButton } from "./useBundleDocuments-Bhs3f0QF.js";
5
5
  import { t as ContextMenuButton } from "./ContextMenuButton-B8hLJ3hV.js";
6
6
  import { n as LoadingBlock } from "./useDidUpdate-Br1Dx-yJ.js";
7
- import { t as useTimeZone } from "./useTimeZone-BoKWaSj6.js";
8
- import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, g as SCHEDULE_STATE_DICTIONARY, h as SCHEDULE_FILTERS, i as usePollSchedules, p as SCHEDULE_ACTION_DICTIONARY, s as getLastExecuteDate, u as RELEASES_DOCS_URL } from "./validationUtils-CX9mO1s1.js";
9
- import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-DGpt_kKu.js";
10
- import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-DvRHEFEW.js";
11
- import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-CSMocuXk.js";
12
- import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-CNhX_Tb7.js";
13
- import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-BRUYOryN.js";
14
- import { n as SchedulesProvider, r as useSchedules } from "./schedules-pdE6eEGn.js";
7
+ import { t as useTimeZone } from "./useTimeZone-DceoecRg.js";
8
+ import { a as useScheduleOperation, d as SCHEDULED_PUBLISHING_TIME_ZONE_SCOPE, g as SCHEDULE_STATE_DICTIONARY, h as SCHEDULE_FILTERS, i as usePollSchedules, p as SCHEDULE_ACTION_DICTIONARY, s as getLastExecuteDate, u as RELEASES_DOCS_URL } from "./validationUtils-BefUKU_E.js";
9
+ import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-CzQXgTsk.js";
10
+ import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-CBN6T3h1.js";
11
+ import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-tHnK31n0.js";
12
+ import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-BQpcUNhw.js";
13
+ import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-CpUQPbkP.js";
14
+ import { n as SchedulesProvider, r as useSchedules } from "./schedules-ORlte5Aq.js";
15
15
  import { t as UpsellPanel } from "./UpsellPanel-DY8RssH7.js";
16
- import { t as CalendarFilter } from "./CalendarFilter-Cz5HCFLA.js";
16
+ import { t as CalendarFilter } from "./CalendarFilter-D7qsXo8l.js";
17
17
  import { useEffect, useMemo, useRef, useState } from "react";
18
18
  import { c } from "react/compiler-runtime";
19
19
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1219,4 +1219,4 @@ function useFallbackNavigation(router, filter, selectedDate) {
1219
1219
  }
1220
1220
  export { Tool as default };
1221
1221
 
1222
- //# sourceMappingURL=Tool-CGMUCSOs.js.map
1222
+ //# sourceMappingURL=Tool-CjZmRZ_L.js.map