sanity 6.9.2-next.21 → 6.9.2-next.22

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 (105) hide show
  1. package/lib/{AddonDatasetProvider-B5npf4J4.js → AddonDatasetProvider-CfAw3oMr.js} +2 -2
  2. package/lib/{AddonDatasetProvider-B5npf4J4.js.map → AddonDatasetProvider-CfAw3oMr.js.map} +1 -1
  3. package/lib/{CalendarFilter-DYJEZDCP.js → CalendarFilter-OHGevGRx.js} +3 -3
  4. package/lib/{CalendarFilter-DYJEZDCP.js.map → CalendarFilter-OHGevGRx.js.map} +1 -1
  5. package/lib/{CommentsDocumentLayout-CTL7lt6a.js → CommentsDocumentLayout-p8p-oNuH.js} +2 -2
  6. package/lib/{CommentsDocumentLayout-CTL7lt6a.js.map → CommentsDocumentLayout-p8p-oNuH.js.map} +1 -1
  7. package/lib/{CommentsField-BE_CI2SY.js → CommentsField-CqXs722Y.js} +3 -3
  8. package/lib/{CommentsField-BE_CI2SY.js.map → CommentsField-CqXs722Y.js.map} +1 -1
  9. package/lib/{CommentsInput-D_EM-t5a.js → CommentsInput-B3rd8HlF.js} +5 -5
  10. package/lib/{CommentsInput-D_EM-t5a.js.map → CommentsInput-B3rd8HlF.js.map} +1 -1
  11. package/lib/{CommentsInspector-DtBIUadl.js → CommentsInspector-DTHmjTFc.js} +5 -5
  12. package/lib/{CommentsInspector-DtBIUadl.js.map → CommentsInspector-DTHmjTFc.js.map} +1 -1
  13. package/lib/{CommentsListItem-BFRqZMJ6.js → CommentsListItem-C2Ac0esL.js} +3 -3
  14. package/lib/{CommentsListItem-BFRqZMJ6.js.map → CommentsListItem-C2Ac0esL.js.map} +1 -1
  15. package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js → CommentsSelectedPathProvider-DwDw8s-s.js} +3 -3
  16. package/lib/{CommentsSelectedPathProvider-CIKpHpK3.js.map → CommentsSelectedPathProvider-DwDw8s-s.js.map} +1 -1
  17. package/lib/{CommentsStudioLayout-Dx0jIDle.js → CommentsStudioLayout-e2hCA_5z.js} +4 -4
  18. package/lib/{CommentsStudioLayout-Dx0jIDle.js.map → CommentsStudioLayout-e2hCA_5z.js.map} +1 -1
  19. package/lib/{ReleasesMetadataProvider-hILX90V4.js → ReleasesMetadataProvider-BWsmHWkh.js} +2 -2
  20. package/lib/{ReleasesMetadataProvider-hILX90V4.js.map → ReleasesMetadataProvider-BWsmHWkh.js.map} +1 -1
  21. package/lib/{ReleasesNav-DIv-1iR7.js → ReleasesNav-DPSjEs29.js} +14 -14
  22. package/lib/{ReleasesNav-DIv-1iR7.js.map → ReleasesNav-DPSjEs29.js.map} +1 -1
  23. package/lib/{ReleasesStudioLayout-DW7fJSfG.js → ReleasesStudioLayout-CtyE88nI.js} +8 -8
  24. package/lib/{ReleasesStudioLayout-DW7fJSfG.js.map → ReleasesStudioLayout-CtyE88nI.js.map} +1 -1
  25. package/lib/{ReleasesTool-BQjO7osC.js → ReleasesTool-BjbRMZlc.js} +15 -15
  26. package/lib/{ReleasesTool-BQjO7osC.js.map → ReleasesTool-BjbRMZlc.js.map} +1 -1
  27. package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js → SchedulePublishingStudioLayout-gZWH97ZL.js} +3 -3
  28. package/lib/{SchedulePublishingStudioLayout-Cwmdz7HZ.js.map → SchedulePublishingStudioLayout-gZWH97ZL.js.map} +1 -1
  29. package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js → SchedulePublishingUpsellProvider-DsI8OUg-.js} +2 -2
  30. package/lib/{SchedulePublishingUpsellProvider-C5B21VDh.js.map → SchedulePublishingUpsellProvider-DsI8OUg-.js.map} +1 -1
  31. package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js → ScheduledPublishingEnabledProvider-BDRtV8OB.js} +3 -3
  32. package/lib/{ScheduledPublishingEnabledProvider-BNMAVqrS.js.map → ScheduledPublishingEnabledProvider-BDRtV8OB.js.map} +1 -1
  33. package/lib/{SearchProvider-DkGUk8a6.js → SearchProvider-Hk7IMQqR.js} +4 -4
  34. package/lib/{SearchProvider-DkGUk8a6.js.map → SearchProvider-Hk7IMQqR.js.map} +1 -1
  35. package/lib/{SingleDocReleaseLayout-fW8U-ktp.js → SingleDocReleaseLayout-evCp37zs.js} +2 -2
  36. package/lib/{SingleDocReleaseLayout-fW8U-ktp.js.map → SingleDocReleaseLayout-evCp37zs.js.map} +1 -1
  37. package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js → SingleDocReleaseUpsellProvider-BOe2BACb.js} +4 -4
  38. package/lib/{SingleDocReleaseUpsellProvider-BNF2Rj3j.js.map → SingleDocReleaseUpsellProvider-BOe2BACb.js.map} +1 -1
  39. package/lib/{TasksStudioActiveToolLayout-CHazNA61.js → TasksStudioActiveToolLayout-Dbs-1GX6.js} +11 -11
  40. package/lib/{TasksStudioActiveToolLayout-CHazNA61.js.map → TasksStudioActiveToolLayout-Dbs-1GX6.js.map} +1 -1
  41. package/lib/{TasksStudioLayout-B7bCL28Q.js → TasksStudioLayout-Pn-RwtPi.js} +5 -5
  42. package/lib/{TasksStudioLayout-B7bCL28Q.js.map → TasksStudioLayout-Pn-RwtPi.js.map} +1 -1
  43. package/lib/{Tool-rkq_tjXo.js → Tool-D4-WLZtb.js} +12 -12
  44. package/lib/{Tool-rkq_tjXo.js.map → Tool-D4-WLZtb.js.map} +1 -1
  45. package/lib/{UnpublishVersionDialog-DWYCXGkz.js → UnpublishVersionDialog-DmFHVqhI.js} +4 -4
  46. package/lib/{UnpublishVersionDialog-DWYCXGkz.js.map → UnpublishVersionDialog-DmFHVqhI.js.map} +1 -1
  47. package/lib/{UpsellDialog-BiDSVmne.js → UpsellDialog-DRhOCOce.js} +2 -2
  48. package/lib/{UpsellDialog-BiDSVmne.js.map → UpsellDialog-DRhOCOce.js.map} +1 -1
  49. package/lib/{VariantsStudioNavbar-Bae9LOIN.js → VariantsStudioNavbar-CXpr7UUl.js} +7 -7
  50. package/lib/{VariantsStudioNavbar-Bae9LOIN.js.map → VariantsStudioNavbar-CXpr7UUl.js.map} +1 -1
  51. package/lib/{VariantsTool-E4ptTHik.js → VariantsTool-BCtrSWfP.js} +7 -7
  52. package/lib/{VariantsTool-E4ptTHik.js.map → VariantsTool-BCtrSWfP.js.map} +1 -1
  53. package/lib/{WorkspaceLoader-sdFQ9rkh.js → WorkspaceLoader-_w6NnbDb.js} +21 -21
  54. package/lib/{WorkspaceLoader-sdFQ9rkh.js.map → WorkspaceLoader-_w6NnbDb.js.map} +1 -1
  55. package/lib/_createContext.js +1 -1
  56. package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js → buildTextSelectionFromFragment-Egmw5rNs.js} +3 -3
  57. package/lib/{buildTextSelectionFromFragment-CuXpitEZ.js.map → buildTextSelectionFromFragment-Egmw5rNs.js.map} +1 -1
  58. package/lib/{datastores-XTDIa3jc.js → datastores-DpJ5Y313.js} +2 -2
  59. package/lib/{datastores-XTDIa3jc.js.map → datastores-DpJ5Y313.js.map} +1 -1
  60. package/lib/index.js +28 -28
  61. package/lib/{inputResolver-DLP8YZcM.js → inputResolver-BX-VuloN.js} +4 -4
  62. package/lib/{inputResolver-DLP8YZcM.js.map → inputResolver-BX-VuloN.js.map} +1 -1
  63. package/lib/{navigation.telemetry-4pppJENG.js → navigation.telemetry-VbqjOek0.js} +7 -7
  64. package/lib/{navigation.telemetry-4pppJENG.js.map → navigation.telemetry-VbqjOek0.js.map} +1 -1
  65. package/lib/{plugin-BmARoHKH.js → plugin-DGOEvpWT.js} +4 -4
  66. package/lib/{plugin-BmARoHKH.js.map → plugin-DGOEvpWT.js.map} +1 -1
  67. package/lib/{plugin-BUox1zeI.js → plugin-Da_fKb0U.js} +3 -3
  68. package/lib/{plugin-BUox1zeI.js.map → plugin-Da_fKb0U.js.map} +1 -1
  69. package/lib/{plugin-CjN39wwt.js → plugin-DqqaZdOH.js} +5 -5
  70. package/lib/{plugin-CjN39wwt.js.map → plugin-DqqaZdOH.js.map} +1 -1
  71. package/lib/{plugin-BRnqEpCl.js → plugin-qHXYpO99.js} +6 -6
  72. package/lib/{plugin-BRnqEpCl.js.map → plugin-qHXYpO99.js.map} +1 -1
  73. package/lib/{scheduleItem-Dtb26ejO.js → scheduleItem-DcC1HE9G.js} +8 -8
  74. package/lib/{scheduleItem-Dtb26ejO.js.map → scheduleItem-DcC1HE9G.js.map} +1 -1
  75. package/lib/{schedules-6qsR7E_I.js → schedules-CbnXaXM9.js} +3 -3
  76. package/lib/{schedules-6qsR7E_I.js.map → schedules-CbnXaXM9.js.map} +1 -1
  77. package/lib/{searchDocumentRelease-CUk7BiST.js → searchDocumentRelease-C5sClmGF.js} +4 -4
  78. package/lib/{searchDocumentRelease-CUk7BiST.js.map → searchDocumentRelease-C5sClmGF.js.map} +1 -1
  79. package/lib/{studioClient-D1Z2zK3C.js → studioClient-CwMJwOTd.js} +2 -2
  80. package/lib/{studioClient-D1Z2zK3C.js.map → studioClient-CwMJwOTd.js.map} +1 -1
  81. package/lib/{useBundleDocuments-BnCBcbdJ.js → useBundleDocuments-DvVAF6cf.js} +7 -7
  82. package/lib/{useBundleDocuments-BnCBcbdJ.js.map → useBundleDocuments-DvVAF6cf.js.map} +1 -1
  83. package/lib/{useComments-Bm-0CwNH.js → useComments-DuEOnDkA.js} +2 -2
  84. package/lib/{useComments-Bm-0CwNH.js.map → useComments-DuEOnDkA.js.map} +1 -1
  85. package/lib/{useCommentsTelemetry-D1kYRuPU.js → useCommentsTelemetry-BgNdQdz5.js} +3 -3
  86. package/lib/{useCommentsTelemetry-D1kYRuPU.js.map → useCommentsTelemetry-BgNdQdz5.js.map} +1 -1
  87. package/lib/{useDocumentPreviewValues-DJvES8Wi.js → useDocumentPreviewValues-B1zNjl_D.js} +3 -3
  88. package/lib/{useDocumentPreviewValues-DJvES8Wi.js.map → useDocumentPreviewValues-B1zNjl_D.js.map} +1 -1
  89. package/lib/{useFeatureEnabled-g8eZoiLM.js → useFeatureEnabled-4qCpV_mX.js} +2 -2
  90. package/lib/{useFeatureEnabled-g8eZoiLM.js.map → useFeatureEnabled-4qCpV_mX.js.map} +1 -1
  91. package/lib/{useFieldActions-BV_qfe65.js → useFieldActions-uDe2qh98.js} +2 -2
  92. package/lib/{useFieldActions-BV_qfe65.js.map → useFieldActions-uDe2qh98.js.map} +1 -1
  93. package/lib/{useReleasesToolAvailable-Duu10qV0.js → useReleasesToolAvailable-DDuNc6HV.js} +3 -3
  94. package/lib/{useReleasesToolAvailable-Duu10qV0.js.map → useReleasesToolAvailable-DDuNc6HV.js.map} +1 -1
  95. package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js → useScheduledDraftMenuActions-DqkHlC0c.js} +5 -5
  96. package/lib/{useScheduledDraftMenuActions-Byiy3-k3.js.map → useScheduledDraftMenuActions-DqkHlC0c.js.map} +1 -1
  97. package/lib/{useStudioUrl-BEb30_UK.js → useStudioUrl-B4w58A2i.js} +5 -5
  98. package/lib/{useStudioUrl-BEb30_UK.js.map → useStudioUrl-B4w58A2i.js.map} +1 -1
  99. package/lib/{useTimeZone-zs0ybzXu.js → useTimeZone-8Wd1UR4j.js} +2 -2
  100. package/lib/{useTimeZone-zs0ybzXu.js.map → useTimeZone-8Wd1UR4j.js.map} +1 -1
  101. package/lib/{validationUtils-LdwtMTh5.js → validationUtils-Cuk0jhWJ.js} +4 -4
  102. package/lib/{validationUtils-LdwtMTh5.js.map → validationUtils-Cuk0jhWJ.js.map} +1 -1
  103. package/lib/{version-XEmBTnIh.js → version-BVcB_xWL.js} +2 -2
  104. package/lib/{version-XEmBTnIh.js.map → version-BVcB_xWL.js.map} +1 -1
  105. package/package.json +10 -10
@@ -1,10 +1,10 @@
1
1
  import { l as getPublishedId } from "./draftUtils-D3HJGQaW.js";
2
- import { c as useWorkspace } from "./studioClient-D1Z2zK3C.js";
2
+ import { c as useWorkspace } from "./studioClient-CwMJwOTd.js";
3
3
  import { t as useAddonDataset } from "./useAddonDataset-BvCgByG6.js";
4
- import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-g8eZoiLM.js";
5
- import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-BiDSVmne.js";
4
+ import { n as useFeatureEnabled, t as FEATURES } from "./useFeatureEnabled-4qCpV_mX.js";
5
+ import { n as getDialogPropsFromContext, r as useUpsellContext, t as UpsellDialog } from "./UpsellDialog-DRhOCOce.js";
6
6
  import { t as useTasksEnabled } from "./useTasksEnabled-DBNZp6wF.js";
7
- import { t as AddonDatasetProvider } from "./AddonDatasetProvider-B5npf4J4.js";
7
+ import { t as AddonDatasetProvider } from "./AddonDatasetProvider-CfAw3oMr.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";
@@ -417,4 +417,4 @@ function TasksStudioLayout(props) {
417
417
  }
418
418
  export { TasksStudioLayout };
419
419
 
420
- //# sourceMappingURL=TasksStudioLayout-B7bCL28Q.js.map
420
+ //# sourceMappingURL=TasksStudioLayout-Pn-RwtPi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TasksStudioLayout-B7bCL28Q.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-Pn-RwtPi.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-BWdL61CI.js";
2
- import { c as useWorkspace } from "./studioClient-D1Z2zK3C.js";
2
+ import { c as useWorkspace } from "./studioClient-CwMJwOTd.js";
3
3
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
4
- import { An as SanityDefaultPreview, bt as TimeZoneButton } from "./useBundleDocuments-BnCBcbdJ.js";
4
+ import { An as SanityDefaultPreview, bt as TimeZoneButton } from "./useBundleDocuments-DvVAF6cf.js";
5
5
  import { t as ContextMenuButton } from "./ContextMenuButton-i3QSjB9U.js";
6
6
  import { n as LoadingBlock } from "./useDidUpdate-Br1Dx-yJ.js";
7
- import { t as useTimeZone } from "./useTimeZone-zs0ybzXu.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-LdwtMTh5.js";
9
- import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-BNMAVqrS.js";
10
- import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-Dtb26ejO.js";
11
- import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-C5B21VDh.js";
12
- import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-BRnqEpCl.js";
13
- import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-BNF2Rj3j.js";
14
- import { n as SchedulesProvider, r as useSchedules } from "./schedules-6qsR7E_I.js";
7
+ import { t as useTimeZone } from "./useTimeZone-8Wd1UR4j.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-Cuk0jhWJ.js";
9
+ import { n as useScheduledPublishingEnabled } from "./ScheduledPublishingEnabledProvider-BDRtV8OB.js";
10
+ import { l as TimeZoneButtonElementQuery, o as ErrorCallout, t as ScheduleItem } from "./scheduleItem-DcC1HE9G.js";
11
+ import { n as useSchedulePublishingUpsell } from "./SchedulePublishingUpsellProvider-DsI8OUg-.js";
12
+ import { t as RELEASES_SCHEDULED_DRAFTS_INTENT } from "./plugin-qHXYpO99.js";
13
+ import { a as useScheduledDraftsEnabled } from "./SingleDocReleaseUpsellProvider-BOe2BACb.js";
14
+ import { n as SchedulesProvider, r as useSchedules } from "./schedules-CbnXaXM9.js";
15
15
  import { t as UpsellPanel } from "./UpsellPanel-CEM0uqXr.js";
16
- import { t as CalendarFilter } from "./CalendarFilter-DYJEZDCP.js";
16
+ import { t as CalendarFilter } from "./CalendarFilter-OHGevGRx.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";
@@ -1217,4 +1217,4 @@ function useFallbackNavigation(router, filter, selectedDate) {
1217
1217
  }
1218
1218
  export { Tool as default };
1219
1219
 
1220
- //# sourceMappingURL=Tool-rkq_tjXo.js.map
1220
+ //# sourceMappingURL=Tool-D4-WLZtb.js.map