@payloadcms/ui 3.27.0-canary.ecc3f49 → 3.27.0
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.
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.js +2 -3
- package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.scss +3 -2
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +1 -2
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +0 -4
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +24 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +86 -110
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +9 -5
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +2 -4
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -3
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/Pill/index.d.ts +1 -1
- package/dist/elements/Pill/index.d.ts.map +1 -1
- package/dist/elements/Pill/index.js +0 -2
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +6 -29
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +4 -3
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.js +2 -2
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.js +1 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.js +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/context.d.ts +0 -2
- package/dist/elements/TableColumns/context.d.ts.map +1 -0
- package/dist/elements/TableColumns/context.js +4 -0
- package/dist/elements/TableColumns/context.js.map +1 -0
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/elements/TableColumns/filterFields.js.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/index.js +6 -20
- package/dist/elements/TableColumns/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/types.d.ts +1 -3
- package/dist/elements/TableColumns/types.d.ts.map +1 -0
- package/dist/elements/TableColumns/types.js.map +1 -0
- package/dist/elements/Toasts/fieldErrors.d.ts +5 -0
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -0
- package/dist/elements/Toasts/fieldErrors.js +85 -0
- package/dist/elements/Toasts/fieldErrors.js.map +1 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +2 -1
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +8 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js +45 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +4 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js +36 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -0
- package/dist/exports/client/index.d.ts +2 -8
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +3 -8
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +42 -39
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +6 -4
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +0 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +0 -2
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +0 -2
- package/dist/icons/Dots/index.d.ts.map +1 -1
- package/dist/icons/Dots/index.js +2 -5
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/Dots/index.scss +0 -14
- package/dist/providers/DocumentInfo/types.d.ts +0 -1
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListQuery/context.d.ts +0 -2
- package/dist/providers/ListQuery/context.d.ts.map +1 -1
- package/dist/providers/ListQuery/context.js +0 -2
- package/dist/providers/ListQuery/context.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +13 -25
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +2 -5
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +0 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts +10 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.js +47 -0
- package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
- package/dist/utilities/renderTable.js +4 -4
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +2 -7
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +5 -11
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +20 -25
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/index.js +3 -4
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +3 -9
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts +0 -8
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +0 -1
- package/dist/elements/ListControls/ActiveListPreset/index.js +0 -102
- package/dist/elements/ListControls/ActiveListPreset/index.js.map +0 -1
- package/dist/elements/ListControls/ActiveListPreset/index.scss +0 -21
- package/dist/elements/ListControls/types.d.ts +0 -27
- package/dist/elements/ListControls/types.d.ts.map +0 -1
- package/dist/elements/ListControls/types.js.map +0 -1
- package/dist/elements/ListControls/useListPresets.d.ts +0 -15
- package/dist/elements/ListControls/useListPresets.d.ts.map +0 -1
- package/dist/elements/ListControls/useListPresets.js +0 -251
- package/dist/elements/ListControls/useListPresets.js.map +0 -1
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +0 -4
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/cells/AccessCell/index.js +0 -25
- package/dist/elements/ListPresets/cells/AccessCell/index.js.map +0 -1
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +0 -4
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js +0 -11
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +0 -1
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +0 -4
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/cells/WhereCell/index.js +0 -23
- package/dist/elements/ListPresets/cells/WhereCell/index.js.map +0 -1
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +0 -3
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/fields/AccessLabel/index.js +0 -19
- package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +0 -1
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +0 -4
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/fields/ColumnsField/index.js +0 -64
- package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +0 -1
- package/dist/elements/ListPresets/fields/ColumnsField/index.scss +0 -28
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts +0 -4
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +0 -1
- package/dist/elements/ListPresets/fields/WhereField/index.js +0 -118
- package/dist/elements/ListPresets/fields/WhereField/index.js.map +0 -1
- package/dist/elements/ListPresets/fields/WhereField/index.scss +0 -23
- package/dist/icons/People/index.d.ts +0 -6
- package/dist/icons/People/index.d.ts.map +0 -1
- package/dist/icons/People/index.js +0 -18
- package/dist/icons/People/index.js.map +0 -1
- package/dist/icons/People/index.scss +0 -11
- package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.js.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +0 -1
- package/dist/providers/TableColumns/context.d.ts.map +0 -1
- package/dist/providers/TableColumns/context.js +0 -6
- package/dist/providers/TableColumns/context.js.map +0 -1
- package/dist/providers/TableColumns/filterFields.d.ts.map +0 -1
- package/dist/providers/TableColumns/filterFields.js.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.js.map +0 -1
- package/dist/providers/TableColumns/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/index.js.map +0 -1
- package/dist/providers/TableColumns/types.d.ts.map +0 -1
- package/dist/providers/TableColumns/types.js +0 -2
- package/dist/providers/TableColumns/types.js.map +0 -1
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.scss +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.js +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.js +0 -0
- /package/dist/{providers → elements}/TableColumns/index.d.ts +0 -0
- /package/dist/elements/{ListControls → TableColumns}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery"
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => useContext(ListQueryContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAI1C,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,UAAA,CAAWC,gBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkLtD,CAAA"}
|
|
@@ -4,16 +4,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
5
5
|
import { isNumber, transformColumnsToSearchParams } from 'payload/shared';
|
|
6
6
|
import * as qs from 'qs-esm';
|
|
7
|
-
import React, { useCallback, useEffect, useMemo,
|
|
7
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
8
|
import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
|
|
9
9
|
import { useEffectEvent } from '../../hooks/useEffectEvent.js';
|
|
10
10
|
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
11
11
|
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
12
|
-
import { ListQueryContext
|
|
12
|
+
import { ListQueryContext } from './context.js';
|
|
13
13
|
export { useListQuery } from './context.js';
|
|
14
14
|
export const ListQueryProvider = ({
|
|
15
15
|
children,
|
|
16
|
-
collectionSlug,
|
|
17
16
|
columns,
|
|
18
17
|
data,
|
|
19
18
|
defaultLimit,
|
|
@@ -29,10 +28,7 @@ export const ListQueryProvider = ({
|
|
|
29
28
|
const {
|
|
30
29
|
startRouteTransition
|
|
31
30
|
} = useRouteTransition();
|
|
32
|
-
const [modified, setModified] = useState(false);
|
|
33
31
|
const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams]);
|
|
34
|
-
const contextRef = useRef({});
|
|
35
|
-
contextRef.current.modified = modified;
|
|
36
32
|
const {
|
|
37
33
|
onQueryChange
|
|
38
34
|
} = useListDrawerContext();
|
|
@@ -45,20 +41,18 @@ export const ListQueryProvider = ({
|
|
|
45
41
|
});
|
|
46
42
|
const refineListData = useCallback(
|
|
47
43
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
48
|
-
async
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if ('where' in incomingQuery || 'search' in incomingQuery) {
|
|
44
|
+
async query => {
|
|
45
|
+
let page = 'page' in query ? query.page : currentQuery?.page;
|
|
46
|
+
if ('where' in query || 'search' in query) {
|
|
52
47
|
page = '1';
|
|
53
48
|
}
|
|
54
49
|
const newQuery = {
|
|
55
|
-
columns: 'columns' in
|
|
56
|
-
limit: 'limit' in
|
|
50
|
+
columns: 'columns' in query ? query.columns : currentQuery.columns,
|
|
51
|
+
limit: 'limit' in query ? query.limit : currentQuery?.limit ?? String(defaultLimit),
|
|
57
52
|
page,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
where: 'where' in incomingQuery ? incomingQuery.where : currentQuery?.where
|
|
53
|
+
search: 'search' in query ? query.search : currentQuery?.search,
|
|
54
|
+
sort: 'sort' in query ? query.sort : currentQuery?.sort ?? defaultSort,
|
|
55
|
+
where: 'where' in query ? query.where : currentQuery?.where
|
|
62
56
|
};
|
|
63
57
|
if (modifySearchParams) {
|
|
64
58
|
startRouteTransition(() => router.replace(`${qs.stringify({
|
|
@@ -72,7 +66,7 @@ export const ListQueryProvider = ({
|
|
|
72
66
|
onChangeFn(newQuery);
|
|
73
67
|
}
|
|
74
68
|
setCurrentQuery(newQuery);
|
|
75
|
-
}, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where,
|
|
69
|
+
}, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where, startRouteTransition, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
|
|
76
70
|
const handlePageChange = useCallback(async arg => {
|
|
77
71
|
await refineListData({
|
|
78
72
|
page: String(arg)
|
|
@@ -139,7 +133,6 @@ export const ListQueryProvider = ({
|
|
|
139
133
|
}, [defaultSort, defaultLimit, modifySearchParams, columns]);
|
|
140
134
|
return /*#__PURE__*/_jsx(ListQueryContext.Provider, {
|
|
141
135
|
value: {
|
|
142
|
-
collectionSlug,
|
|
143
136
|
data,
|
|
144
137
|
handlePageChange,
|
|
145
138
|
handlePerPageChange,
|
|
@@ -147,14 +140,9 @@ export const ListQueryProvider = ({
|
|
|
147
140
|
handleSortChange,
|
|
148
141
|
handleWhereChange,
|
|
149
142
|
query: currentQuery,
|
|
150
|
-
refineListData
|
|
151
|
-
setModified,
|
|
152
|
-
...contextRef.current
|
|
143
|
+
refineListData
|
|
153
144
|
},
|
|
154
|
-
children:
|
|
155
|
-
value: modified,
|
|
156
|
-
children: children
|
|
157
|
-
})
|
|
145
|
+
children: children
|
|
158
146
|
});
|
|
159
147
|
};
|
|
160
148
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","transformColumnsToSearchParams","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","ListQueryContext","ListQueryModifiedContext","useListQuery","ListQueryProvider","children","collectionSlug","columns","data","defaultLimit","defaultSort","listPreferences","modifySearchParams","onQueryChange","onQueryChangeFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","searchParams","contextRef","current","currentQuery","setCurrentQuery","refineListData","incomingQuery","page","newQuery","limit","String","preset","search","sort","where","replace","stringify","JSON","addQueryPrefix","onChangeFn","handlePageChange","arg","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","syncQuery","shouldUpdateQueryString","window","history","replaceState","_jsx","Provider","value","query"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport { isNumber, transformColumnsToSearchParams } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n columns,\n data,\n defaultLimit,\n defaultSort,\n listPreferences,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n}) => {\n 'use no memo'\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n\n const searchParams = useMemo<ListQuery>(\n () => parseSearchParams(rawSearchParams),\n [rawSearchParams],\n )\n\n const contextRef = useRef({} as IListQueryContext)\n\n contextRef.current.modified = modified\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery) => {\n setModified(true)\n\n let page = 'page' in incomingQuery ? incomingQuery.page : currentQuery?.page\n\n if ('where' in incomingQuery || 'search' in incomingQuery) {\n page = '1'\n }\n\n const newQuery: ListQuery = {\n columns: 'columns' in incomingQuery ? incomingQuery.columns : currentQuery.columns,\n limit:\n 'limit' in incomingQuery\n ? incomingQuery.limit\n : (currentQuery?.limit ?? String(defaultLimit)),\n page,\n preset: 'preset' in incomingQuery ? incomingQuery.preset : currentQuery?.preset,\n search: 'search' in incomingQuery ? incomingQuery.search : currentQuery?.search,\n sort:\n 'sort' in incomingQuery\n ? incomingQuery.sort\n : ((currentQuery?.sort as string) ?? defaultSort),\n where: 'where' in incomingQuery ? incomingQuery.where : currentQuery?.where,\n }\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n { ...newQuery, columns: JSON.stringify(newQuery.columns) },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setCurrentQuery(newQuery)\n },\n [\n currentQuery?.columns,\n currentQuery?.limit,\n currentQuery?.page,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n currentQuery?.preset,\n startRouteTransition,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n const syncQuery = useEffectEvent(() => {\n let shouldUpdateQueryString = false\n const newQuery = { ...(currentQuery || {}) }\n\n // Allow the URL to override the default limit\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n newQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n // Allow the URL to override the default sort\n if (defaultSort && !('sort' in currentQuery)) {\n newQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n // Only modify columns if they originated from preferences\n // We can assume they did if `listPreferences.columns` is defined\n if (columns && listPreferences?.columns && !('columns' in currentQuery)) {\n newQuery.columns = transformColumnsToSearchParams(columns)\n shouldUpdateQueryString = true\n }\n\n if (shouldUpdateQueryString) {\n setCurrentQuery(newQuery)\n // Do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(\n null,\n '',\n `?${qs.stringify({ ...newQuery, columns: JSON.stringify(newQuery.columns) })}`,\n )\n }\n })\n\n // If `defaultLimit` or `defaultSort` are updated externally, update the query\n // I.e. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n syncQuery()\n }\n }, [defaultSort, defaultLimit, modifySearchParams, columns])\n\n return (\n <ListQueryContext.Provider\n value={{\n collectionSlug,\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext.Provider value={modified}>\n {children}\n </ListQueryModifiedContext.Provider>\n </ListQueryContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","transformColumnsToSearchParams","qs","React","useCallback","useEffect","useMemo","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","ListQueryContext","useListQuery","ListQueryProvider","children","columns","data","defaultLimit","defaultSort","listPreferences","modifySearchParams","onQueryChange","onQueryChangeFromProps","router","rawSearchParams","startRouteTransition","searchParams","currentQuery","setCurrentQuery","refineListData","query","page","newQuery","limit","String","search","sort","where","replace","stringify","JSON","addQueryPrefix","onChangeFn","handlePageChange","arg","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","syncQuery","shouldUpdateQueryString","window","history","replaceState","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport { isNumber, transformColumnsToSearchParams } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ListQueryContext } from './context.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n columns,\n data,\n defaultLimit,\n defaultSort,\n listPreferences,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n}) => {\n 'use no memo'\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n\n const searchParams = useMemo<ListQuery>(\n () => parseSearchParams(rawSearchParams),\n [rawSearchParams],\n )\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (query: ListQuery) => {\n let page = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n page = '1'\n }\n\n const newQuery: ListQuery = {\n columns: 'columns' in query ? query.columns : currentQuery.columns,\n limit: 'limit' in query ? query.limit : (currentQuery?.limit ?? String(defaultLimit)),\n page,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : ((currentQuery?.sort as string) ?? defaultSort),\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n { ...newQuery, columns: JSON.stringify(newQuery.columns) },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setCurrentQuery(newQuery)\n },\n [\n currentQuery?.columns,\n currentQuery?.limit,\n currentQuery?.page,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n startRouteTransition,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n const syncQuery = useEffectEvent(() => {\n let shouldUpdateQueryString = false\n const newQuery = { ...(currentQuery || {}) }\n\n // Allow the URL to override the default limit\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n newQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n // Allow the URL to override the default sort\n if (defaultSort && !('sort' in currentQuery)) {\n newQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n // Only modify columns if they originated from preferences\n // We can assume they did if `listPreferences.columns` is defined\n if (columns && listPreferences?.columns && !('columns' in currentQuery)) {\n newQuery.columns = transformColumnsToSearchParams(columns)\n shouldUpdateQueryString = true\n }\n\n if (shouldUpdateQueryString) {\n setCurrentQuery(newQuery)\n // Do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(\n null,\n '',\n `?${qs.stringify({ ...newQuery, columns: JSON.stringify(newQuery.columns) })}`,\n )\n }\n })\n\n // If `defaultLimit` or `defaultSort` are updated externally, update the query\n // I.e. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n syncQuery()\n }\n }, [defaultSort, defaultLimit, modifySearchParams, columns])\n\n return (\n <ListQueryContext.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n }}\n >\n {children}\n </ListQueryContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ColumnPreference, ListPreferences, ListQuery, PaginatedDocs, Sort, Where } from 'payload';
|
|
2
2
|
type ContextHandlers = {
|
|
3
3
|
handlePageChange?: (page: number) => Promise<void>;
|
|
4
4
|
handlePerPageChange?: (limit: number) => Promise<void>;
|
|
@@ -9,7 +9,7 @@ type ContextHandlers = {
|
|
|
9
9
|
export type OnListQueryChange = (query: ListQuery) => void;
|
|
10
10
|
export type ListQueryProps = {
|
|
11
11
|
readonly children: React.ReactNode;
|
|
12
|
-
readonly collectionSlug?:
|
|
12
|
+
readonly collectionSlug?: string;
|
|
13
13
|
readonly columns?: ColumnPreference[];
|
|
14
14
|
readonly data: PaginatedDocs;
|
|
15
15
|
readonly defaultLimit?: number;
|
|
@@ -23,14 +23,11 @@ export type ListQueryProps = {
|
|
|
23
23
|
readonly preferenceKey?: string;
|
|
24
24
|
};
|
|
25
25
|
export type IListQueryContext = {
|
|
26
|
-
collectionSlug: ClientCollectionConfig['slug'];
|
|
27
26
|
data: PaginatedDocs;
|
|
28
27
|
defaultLimit?: number;
|
|
29
28
|
defaultSort?: Sort;
|
|
30
|
-
modified: boolean;
|
|
31
29
|
query: ListQuery;
|
|
32
30
|
refineListData: (args: ListQuery) => Promise<void>;
|
|
33
|
-
setModified: (modified: boolean) => void;
|
|
34
31
|
} & ContextHandlers;
|
|
35
32
|
export {};
|
|
36
33
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,aAAa,EACb,IAAI,EACJ,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAC1C;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/ListQuery/types.ts"],"sourcesContent":["import type {\n
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/ListQuery/types.ts"],"sourcesContent":["import type {\n ColumnPreference,\n ListPreferences,\n ListQuery,\n PaginatedDocs,\n Sort,\n Where,\n} from 'payload'\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type OnListQueryChange = (query: ListQuery) => void\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: string\n readonly columns?: ColumnPreference[]\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: Sort\n readonly listPreferences?: ListPreferences\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: OnListQueryChange\n /**\n * @deprecated\n */\n readonly preferenceKey?: string\n}\n\nexport type IListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: Sort\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n"],"mappings":"AAmCA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAQxF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAQxF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA0HxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAyC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dequal","React","createContext","useCallback","useContext","useEffect","useRef","useTranslation","requests","deepMergeSimple","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","serverURL","current","getPreference","key","prefs","promise","Promise","resolve","request","get","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","setTimeout","_jsx","Provider","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport React, { createContext, useCallback, useContext, useEffect, useRef } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { deepMergeSimple } from '../../utilities/deepMerge.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = any>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false\n */\n setPreference: <T = any>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = any,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["dequal","React","createContext","useCallback","useContext","useEffect","useRef","useTranslation","requests","deepMergeSimple","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","serverURL","current","getPreference","key","prefs","promise","Promise","resolve","request","get","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","setTimeout","_jsx","Provider","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport React, { createContext, useCallback, useContext, useEffect, useRef } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { deepMergeSimple } from '../../utilities/deepMerge.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = any>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false\n */\n setPreference: <T = any>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = any,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n if (typeof prefs[key] !== 'undefined') {\n return prefs[key]\n }\n const promise = new Promise((resolve: (value: T) => void) => {\n void (async () => {\n const request = await requests.get(`${serverURL}${api}/payload-preferences/${key}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n let value = null\n if (request.status === 200) {\n const preference = await request.json()\n value = preference.value\n }\n preferencesRef.current[key] = value\n resolve(value)\n })()\n })\n prefs[key] = promise\n return promise\n },\n [i18n.language, api, preferencesRef, serverURL],\n )\n\n const setPreference = useCallback(\n async (key: string, value: unknown, merge = false): Promise<void> => {\n if (merge === false) {\n preferencesRef.current[key] = value\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(value, i18n.language),\n )\n\n return\n }\n\n let newValue = value\n const currentPreference = await getPreference(key)\n\n // handle value objects where multiple values can be set under one key\n if (\n typeof value === 'object' &&\n typeof currentPreference === 'object' &&\n typeof newValue === 'object'\n ) {\n // merge the value with any existing preference for the key\n if (currentPreference) {\n newValue = deepMergeSimple(currentPreference, newValue)\n }\n\n if (dequal(newValue, currentPreference)) {\n return\n }\n\n // add the requested changes to a pendingUpdate batch for the key\n pendingUpdate.current[key] = {\n ...pendingUpdate.current[key],\n ...(newValue as Record<string, unknown>),\n }\n } else {\n if (newValue === currentPreference) {\n return\n }\n\n pendingUpdate.current[key] = newValue\n }\n\n const updatePreference = async () => {\n // compare the value stored in context before sending to eliminate duplicate requests\n if (dequal(pendingUpdate.current[key], preferencesRef.current[key])) {\n return\n }\n\n // preference set in context here to prevent other updatePreference at the same time\n preferencesRef.current[key] = pendingUpdate.current[key]\n\n await requests.post(\n `${serverURL}${api}/payload-preferences/${key}`,\n requestOptions(preferencesRef.current[key], i18n.language),\n )\n\n // reset any changes for this key after sending the request\n delete pendingUpdate.current[key]\n }\n\n // use timeout to allow multiple changes of different values using the same key in one request\n setTimeout(() => {\n void updatePreference()\n })\n },\n [api, getPreference, i18n.language, pendingUpdate, serverURL],\n )\n\n contextRef.current.getPreference = getPreference\n contextRef.current.setPreference = setPreference\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const usePreferences = (): PreferencesContext => useContext(Context)\n"],"mappings":"AAAA;;;AACA,SAASA,MAAM,QAAQ,cAAa,CAAC;AACrC,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAEjF,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,eAAe,QAAQ;AAChC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAY1B,MAAMC,OAAA,gBAAUV,aAAA,CAAc,CAAC;AAE/B,MAAMW,cAAA,GAAiBA,CAACC,KAAA,EAAOC,QAAA,MAAc;EAC3CC,IAAA,EAAMC,IAAA,CAAKC,SAAS,CAAC;IAAEJ;EAAM;EAC7BK,OAAA,EAAS;IACP,mBAAmBJ,QAAA;IACnB,gBAAgB;EAClB;AACF;AAEA,OAAO,MAAMK,mBAAA,GAAgEA,CAAC;EAAEC;AAAQ,CAAE;EACxF,MAAMC,UAAA,GAAahB,MAAA,CAAO,CAAC;EAC3B,MAAMiB,cAAA,GAAiBjB,MAAA,CAAO,CAAC;EAC/B,MAAMkB,aAAA,GAAgBlB,MAAA,CAAO,CAAC;EAC9B,MAAM;IAAEmB;EAAM,CAAE,GAAGd,SAAA;EACnB,MAAM;IAAEe;EAAI,CAAE,GAAGhB,OAAA;EACjB,MAAM;IAAEiB;EAAI,CAAE,GAAGpB,cAAA;EAEjB,MAAM;IACJqB,MAAA,EAAQ;MAAEC;IAAG,CAAE;IACfC;EAAS,CACV,GAAGL,MAAA;EAEJpB,SAAA,CAAU;IACR,IAAI,CAACqB,IAAA,EAAM;MACT;MACAH,cAAA,CAAeQ,OAAO,GAAG,CAAC;IAC5B;EACF,GAAG,CAACL,IAAA,CAAK;EAET,MAAMM,aAAA,GAAgB7B,WAAA,CACpB,MAAiB8B,GAAA;IACf,MAAMC,KAAA,GAAQX,cAAA,CAAeQ,OAAO;IACpC,IAAI,OAAOG,KAAK,CAACD,GAAA,CAAI,KAAK,aAAa;MACrC,OAAOC,KAAK,CAACD,GAAA,CAAI;IACnB;IACA,MAAME,OAAA,GAAU,IAAIC,OAAA,CAASC,OAAA;MAC3B,KAAK,CAAC;QACJ,MAAMC,OAAA,GAAU,MAAM9B,QAAA,CAAS+B,GAAG,CAAC,GAAGT,SAAA,GAAYD,GAAA,wBAA2BI,GAAA,EAAK,EAAE;UAClFd,OAAA,EAAS;YACP,mBAAmBQ,IAAA,CAAKZ;UAC1B;QACF;QACA,IAAID,KAAA,GAAQ;QACZ,IAAIwB,OAAA,CAAQE,MAAM,KAAK,KAAK;UAC1B,MAAMC,UAAA,GAAa,MAAMH,OAAA,CAAQI,IAAI;UACrC5B,KAAA,GAAQ2B,UAAA,CAAW3B,KAAK;QAC1B;QACAS,cAAA,CAAeQ,OAAO,CAACE,GAAA,CAAI,GAAGnB,KAAA;QAC9BuB,OAAA,CAAQvB,KAAA;MACV;IACF;IACAoB,KAAK,CAACD,GAAA,CAAI,GAAGE,OAAA;IACb,OAAOA,OAAA;EACT,GACA,CAACR,IAAA,CAAKZ,QAAQ,EAAEc,GAAA,EAAKN,cAAA,EAAgBO,SAAA,CAAU;EAGjD,MAAMa,aAAA,GAAgBxC,WAAA,CACpB,OAAO8B,KAAA,EAAanB,OAAA,EAAgB8B,KAAA,GAAQ,KAAK;IAC/C,IAAIA,KAAA,KAAU,OAAO;MACnBrB,cAAA,CAAeQ,OAAO,CAACE,KAAA,CAAI,GAAGnB,OAAA;MAE9B,MAAMN,QAAA,CAASqC,IAAI,CACjB,GAAGf,SAAA,GAAYD,GAAA,wBAA2BI,KAAA,EAAK,EAC/CpB,cAAA,CAAeC,OAAA,EAAOa,IAAA,CAAKZ,QAAQ;MAGrC;IACF;IAEA,IAAI+B,QAAA,GAAWhC,OAAA;IACf,MAAMiC,iBAAA,GAAoB,MAAMf,aAAA,CAAcC,KAAA;IAE9C;IACA,IACE,OAAOnB,OAAA,KAAU,YACjB,OAAOiC,iBAAA,KAAsB,YAC7B,OAAOD,QAAA,KAAa,UACpB;MACA;MACA,IAAIC,iBAAA,EAAmB;QACrBD,QAAA,GAAWrC,eAAA,CAAgBsC,iBAAA,EAAmBD,QAAA;MAChD;MAEA,IAAI9C,MAAA,CAAO8C,QAAA,EAAUC,iBAAA,GAAoB;QACvC;MACF;MAEA;MACAvB,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI,GAAG;QAC3B,GAAGT,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI;QAC7B,GAAIa;MACN;IACF,OAAO;MACL,IAAIA,QAAA,KAAaC,iBAAA,EAAmB;QAClC;MACF;MAEAvB,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI,GAAGa,QAAA;IAC/B;IAEA,MAAME,gBAAA,GAAmB,MAAAA,CAAA;MACvB;MACA,IAAIhD,MAAA,CAAOwB,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI,EAAEV,cAAA,CAAeQ,OAAO,CAACE,KAAA,CAAI,GAAG;QACnE;MACF;MAEA;MACAV,cAAA,CAAeQ,OAAO,CAACE,KAAA,CAAI,GAAGT,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI;MAExD,MAAMzB,QAAA,CAASqC,IAAI,CACjB,GAAGf,SAAA,GAAYD,GAAA,wBAA2BI,KAAA,EAAK,EAC/CpB,cAAA,CAAeU,cAAA,CAAeQ,OAAO,CAACE,KAAA,CAAI,EAAEN,IAAA,CAAKZ,QAAQ;MAG3D;MACA,OAAOS,aAAA,CAAcO,OAAO,CAACE,KAAA,CAAI;IACnC;IAEA;IACAgB,UAAA,CAAW;MACT,KAAKD,gBAAA;IACP;EACF,GACA,CAACnB,GAAA,EAAKG,aAAA,EAAeL,IAAA,CAAKZ,QAAQ,EAAES,aAAA,EAAeM,SAAA,CAAU;EAG/DR,UAAA,CAAWS,OAAO,CAACC,aAAa,GAAGA,aAAA;EACnCV,UAAA,CAAWS,OAAO,CAACY,aAAa,GAAGA,aAAA;EAEnC,oBAAOO,IAAA,CAACtC,OAAA,CAAQuC,QAAQ;IAACrC,KAAA,EAAOQ,UAAA,CAAWS,OAAO;cAAGV;;AACvD;AAEA,OAAO,MAAM+B,cAAA,GAAiBA,CAAA;EAAA,OAA0BhD,UAAA,CAAAQ,OAAW;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,WAAW,EACX,MAAM,EACN,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqC,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AACnF,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2CAA2C,CAAA;AAElD,KAAK,kBAAkB,GAAG,CACxB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,KAAK,CAAC,KACjD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE7C,KAAK,qBAAqB,GAAG,CAC3B,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,KAAK,CAAC,KACzD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9C,KAAK,mBAAmB,GAAG,CACzB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,KAAK,CAAC,KAClD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9C,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","useContext","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","_jsx","Provider"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentSlots,\n ErrorResult,\n Locale,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype RenderDocument = (args: {\n collectionSlug: string\n disableActions?: boolean\n docID?: number | string\n drawerSlug?: string\n initialData?: Data\n locale?: Locale\n overrideEntityVisibility?: boolean\n redirectAfterCreate?: boolean\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n signal?: AbortSignal\n}) => Promise<\n { data: Data; Document: React.ReactNode } | ({ data: never; Document: never } & ErrorResult)\n>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype ServerFunctionsContextType = {\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocument\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.useContext(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })) as Awaited<ReturnType<typeof schedulePublishHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error: '' }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocument>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof renderDocument>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as { data: Data }\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext.Provider\n value={{\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext.Provider>\n )\n}\n"],"mappings":";AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,QAAQ;AAiElD,OAAO,MAAMC,sBAAA,gBAAyBF,aAAA,CACpCG,SAAA;AAGF,OAAO,MAAMC,kBAAA,GAAqBA,CAAA;EAChC,MAAMC,OAAA,GAAUN,KAAA,CAAMO,UAAU,CAACJ,sBAAA;EACjC,IAAIG,OAAA,KAAYF,SAAA,EAAW;IACzB,MAAM,IAAII,KAAA,CAAM;EAClB;EACA,OAAOF,OAAA;AACT;AAEA,OAAO,MAAMG,uBAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAE;EAChC,IAAI,CAACA,cAAA,EAAgB;IACnB,MAAM,IAAIH,KAAA,CAAM;EAClB;EAEA,MAAMI,gBAAA,GAAmBV,WAAA,CACvB,MAAOW,IAAA,IACL,MAAMF,cAAA,CAAe;IACnBG,IAAA,EAAM;IACND;EACF,IACF,CAACF,cAAA,CAAe;EAGlB,MAAMI,eAAA,GAAkBb,WAAA,CACtB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA;IAE1C,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAE,GAAGK;UAAK;QAClB;QAA0D;QAE1D,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA,IAAIE,KAAA,GAAQ,oBAAoBL,IAAA,CAAKM,IAAI,EAAE;IAE3C,IAAIN,IAAA,CAAKO,GAAG,EAAE;MACZF,KAAA,IAAS,yBAAyBL,IAAA,CAAKO,GAAG,CAACC,KAAK,kBAAkBR,IAAA,CAAKO,GAAG,CAACE,UAAU,EAAE;IACzF;IAEA,OAAO;MAAEJ,KAAA,EAAO;IAAG;EACrB,GACA,CAACZ,cAAA,CAAe;EAGlB,MAAMiB,YAAA,GAAe1B,WAAA,CACnB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEgB,cAAA,EAAgB;YAAO,GAAGX;UAAK;QACzC;QAAyD;QAEzD,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA,OAAO;MAAES,KAAA,EAAO;IAAK;EACvB,GACA,CAACnB,cAAA,CAAe;EAGlB,MAAMoB,aAAA,GAAgB7B,WAAA,CACpB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEgB,cAAA,EAAgB;YAAO,GAAGX;UAAK;QACzC;QAA0D;QAE1D,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,MAAMqB,cAAA,GAAiB9B,WAAA,CACrB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAM;UAAEgB,cAAA,EAAgB;UAAO,GAAGX;QAAK;MACzC;MAAkD;MAElD,OAAOE,MAAA;IACT,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,MAAMsB,kBAAA,GAAqB/B,WAAA,CACzB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAMK;MACR;MAEA,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;QAC1B,OAAOC,MAAA;MACT;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,oBACEuB,IAAA,CAAC/B,sBAAA,CAAuBgC,QAAQ;IAC9BT,KAAA,EAAO;MACLO,kBAAA;MACArB,gBAAA;MACAgB,YAAA;MACAG,aAAA;MACAC,cAAA;MACAjB,eAAA;MACAJ;IACF;cAECD;;AAGP","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","useContext","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","_jsx","Provider"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentSlots,\n ErrorResult,\n Locale,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype RenderDocument = (args: {\n collectionSlug: string\n disableActions?: boolean\n docID?: number | string\n drawerSlug?: string\n initialData?: Data\n locale?: Locale\n overrideEntityVisibility?: boolean\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n signal?: AbortSignal\n}) => Promise<\n { data: Data; Document: React.ReactNode } | ({ data: never; Document: never } & ErrorResult)\n>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype ServerFunctionsContextType = {\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocument\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.useContext(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })) as Awaited<ReturnType<typeof schedulePublishHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error: '' }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocument>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof renderDocument>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as { data: Data }\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext.Provider\n value={{\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|