@payloadcms/ui 3.26.0-canary.bbb3083 → 3.27.0-canary.ecc3f49
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/AnimateHeight/index.scss +7 -5
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +1 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
- package/dist/elements/BulkUpload/FormsManager/index.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 +2 -3
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -3
- 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/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +4 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +1 -1
- package/dist/elements/DuplicateDocument/index.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/FieldSelect/index.js +1 -1
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts +8 -0
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +1 -0
- package/dist/elements/ListControls/ActiveListPreset/index.js +102 -0
- package/dist/elements/ListControls/ActiveListPreset/index.js.map +1 -0
- package/dist/elements/ListControls/ActiveListPreset/index.scss +21 -0
- package/dist/elements/ListControls/index.d.ts +1 -24
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +110 -86
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +5 -9
- package/dist/elements/ListControls/types.d.ts +27 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -0
- package/dist/elements/ListControls/types.js +2 -0
- package/dist/elements/ListControls/types.js.map +1 -0
- package/dist/elements/ListControls/useListPresets.d.ts +15 -0
- package/dist/elements/ListControls/useListPresets.d.ts.map +1 -0
- package/dist/elements/ListControls/useListPresets.js +251 -0
- package/dist/elements/ListControls/useListPresets.js.map +1 -0
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +4 -2
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +3 -2
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.js +25 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.js.map +1 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js +11 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +1 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.js +23 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +3 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.js +19 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +4 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.js +64 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.scss +28 -0
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts +4 -0
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/WhereField/index.js +118 -0
- package/dist/elements/ListPresets/fields/WhereField/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/WhereField/index.scss +23 -0
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +36 -24
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Logout/index.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +8 -1
- package/dist/elements/Nav/context.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 +2 -0
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +29 -6
- package/dist/elements/PublishButton/index.js +1 -0
- package/dist/elements/PublishButton/index.js.map +1 -1
- 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 +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +6 -14
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +1 -1
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +1 -2
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +7 -7
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +22 -32
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +6 -2
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/index.d.ts +8 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +11 -11
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +8 -3
- 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/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +12 -4
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +15 -5
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
- package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +13 -11
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +3 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +4 -0
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +1 -1
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +1 -0
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +2 -0
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +2 -0
- package/dist/icons/Dots/index.d.ts.map +1 -1
- package/dist/icons/Dots/index.js +5 -2
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/Dots/index.scss +14 -0
- package/dist/icons/People/index.d.ts +6 -0
- package/dist/icons/People/index.d.ts.map +1 -0
- package/dist/icons/People/index.js +18 -0
- package/dist/icons/People/index.js.map +1 -0
- package/dist/icons/People/index.scss +11 -0
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +1 -0
- 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 +6 -0
- package/dist/providers/ListQuery/context.d.ts.map +1 -0
- package/dist/providers/ListQuery/context.js +6 -0
- package/dist/providers/ListQuery/context.js.map +1 -0
- package/dist/providers/ListQuery/index.d.ts +2 -27
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +72 -46
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +36 -0
- package/dist/providers/ListQuery/types.d.ts.map +1 -0
- package/dist/providers/ListQuery/types.js +2 -0
- package/dist/providers/ListQuery/types.js.map +1 -0
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
- package/dist/providers/ServerFunctions/index.d.ts +1 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
- package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/providers/TableColumns/context.d.ts +6 -0
- package/dist/providers/TableColumns/context.d.ts.map +1 -0
- package/dist/providers/TableColumns/context.js +6 -0
- package/dist/providers/TableColumns/context.js.map +1 -0
- package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/providers/TableColumns/filterFields.js.map +1 -0
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/providers/TableColumns/index.d.ts +5 -0
- package/dist/providers/TableColumns/index.d.ts.map +1 -0
- package/dist/providers/TableColumns/index.js +105 -0
- package/dist/providers/TableColumns/index.js.map +1 -0
- package/dist/{elements/TableColumns/index.d.ts → providers/TableColumns/types.d.ts} +32 -11
- package/dist/providers/TableColumns/types.d.ts.map +1 -0
- package/dist/providers/TableColumns/types.js +2 -0
- package/dist/providers/TableColumns/types.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +6 -2
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +1 -7
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.js +1 -18
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.js +1 -1
- package/dist/utilities/handleBackToDashboard.js.map +1 -1
- package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +4 -2
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/handleGoBack.js +1 -1
- package/dist/utilities/handleGoBack.js.map +1 -1
- package/dist/utilities/renderTable.js +4 -4
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +7 -2
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +11 -5
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +4 -3
- 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 +5 -8
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
- package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
- package/dist/elements/TableColumns/filterFields.js.map +0 -1
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
- package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
- package/dist/elements/TableColumns/index.d.ts.map +0 -1
- package/dist/elements/TableColumns/index.js +0 -206
- package/dist/elements/TableColumns/index.js.map +0 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
- package/dist/utilities/mergeListSearchAndWhere.js +0 -47
- package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
- /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
- /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
- /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
|
@@ -17,6 +17,20 @@
|
|
|
17
17
|
background-color: var(--theme-elevation-100);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
&--no-background {
|
|
21
|
+
background-color: transparent;
|
|
22
|
+
width: auto;
|
|
23
|
+
height: auto;
|
|
24
|
+
|
|
25
|
+
&:hover {
|
|
26
|
+
background-color: transparent;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&--horizontal {
|
|
31
|
+
flex-direction: row;
|
|
32
|
+
}
|
|
33
|
+
|
|
20
34
|
> div {
|
|
21
35
|
width: 2.5px;
|
|
22
36
|
height: 2.5px;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/People/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAA;CAClB,CAcA,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import './index.scss';
|
|
4
|
+
export const PeopleIcon = ({
|
|
5
|
+
className
|
|
6
|
+
}) => /*#__PURE__*/_jsx("svg", {
|
|
7
|
+
className: ['icon', 'icon--people', className].filter(Boolean).join(' '),
|
|
8
|
+
height: "14",
|
|
9
|
+
viewBox: "0 0 16 14",
|
|
10
|
+
width: "16",
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
children: /*#__PURE__*/_jsx("path", {
|
|
13
|
+
className: "stroke",
|
|
14
|
+
d: "M12.0002 13C12.0002 11.5855 11.4383 10.229 10.4381 9.22876C9.43787 8.22857 8.08132 7.66667 6.66683 7.66667M6.66683 7.66667C5.25234 7.66667 3.89579 8.22857 2.89559 9.22876C1.8954 10.229 1.3335 11.5855 1.3335 13M6.66683 7.66667C8.50778 7.66667 10.0002 6.17428 10.0002 4.33333C10.0002 2.49238 8.50778 1 6.66683 1C4.82588 1 3.3335 2.49238 3.3335 4.33333C3.3335 6.17428 4.82588 7.66667 6.66683 7.66667ZM14.6668 12.3333C14.6668 10.0867 13.3335 8 12.0002 7C12.4384 6.67118 12.7889 6.23939 13.0205 5.74285C13.2522 5.2463 13.3578 4.70031 13.3282 4.1532C13.2985 3.60609 13.1344 3.07472 12.8505 2.60613C12.5665 2.13754 12.1714 1.74617 11.7002 1.46667",
|
|
15
|
+
strokeLinecap: "square"
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PeopleIcon","className","_jsx","filter","Boolean","join","height","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/People/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const PeopleIcon: React.FC<{\n className: string\n}> = ({ className }) => (\n <svg\n className={['icon', 'icon--people', className].filter(Boolean).join(' ')}\n height=\"14\"\n viewBox=\"0 0 16 14\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n className=\"stroke\"\n d=\"M12.0002 13C12.0002 11.5855 11.4383 10.229 10.4381 9.22876C9.43787 8.22857 8.08132 7.66667 6.66683 7.66667M6.66683 7.66667C5.25234 7.66667 3.89579 8.22857 2.89559 9.22876C1.8954 10.229 1.3335 11.5855 1.3335 13M6.66683 7.66667C8.50778 7.66667 10.0002 6.17428 10.0002 4.33333C10.0002 2.49238 8.50778 1 6.66683 1C4.82588 1 3.3335 2.49238 3.3335 4.33333C3.3335 6.17428 4.82588 7.66667 6.66683 7.66667ZM14.6668 12.3333C14.6668 10.0867 13.3335 8 12.0002 7C12.4384 6.67118 12.7889 6.23939 13.0205 5.74285C13.2522 5.2463 13.3578 4.70031 13.3282 4.1532C13.2985 3.60609 13.1344 3.07472 12.8505 2.60613C12.5665 2.13754 12.1714 1.74617 11.7002 1.46667\"\n strokeLinecap=\"square\"\n />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,UAAA,GAERA,CAAC;EAAEC;AAAS,CAAE,kBACjBC,IAAA,CAAC;EACCD,SAAA,EAAW,CAAC,QAAQ,gBAAgBA,SAAA,CAAU,CAACE,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;EACpEC,MAAA,EAAO;EACPC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAP,IAAA,CAAC;IACCD,SAAA,EAAU;IACVS,CAAA,EAAE;IACFC,aAAA,EAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAMrE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,UAAU,IAAI;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC3D,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAA;CAChB,CAAA;AAMD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACzB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,WAAW,GAClB,EAAE,KAAK,qBAkRP;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,oBAAmB,WAAW,CAAC,CAAC,CAA0C,CAAA"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
import { useModal } from '@faceless-ui/modal';
|
|
5
5
|
import { usePathname, useRouter } from 'next/navigation.js';
|
|
6
|
+
import { formatAdminURL } from 'payload/shared';
|
|
6
7
|
import * as qs from 'qs-esm';
|
|
7
8
|
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
8
9
|
import { toast } from 'sonner';
|
|
@@ -10,7 +11,6 @@ import { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js';
|
|
|
10
11
|
import { useDebounce } from '../../hooks/useDebounce.js';
|
|
11
12
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
12
13
|
import { requests } from '../../utilities/api.js';
|
|
13
|
-
import { formatAdminURL } from '../../utilities/formatAdminURL.js';
|
|
14
14
|
import { useConfig } from '../Config/index.js';
|
|
15
15
|
import { useRouteTransition } from '../RouteTransition/index.js';
|
|
16
16
|
const Context = /*#__PURE__*/createContext({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","useRouteTransition","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUserInMemory","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","refreshTokenTimeoutRef","useRef","startRouteTransition","id","redirectToInactivityRoute","replace","path","window","location","startsWith","encodeURIComponent","revokeTokenAndExpire","undefined","clearTimeout","current","setNewUser","userResponse","token","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","json","e","error","message","refreshCookieAsync","skipSetUser","logOut","collection","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","credentials","reminder","forceLogOut","remindInTimeFromNow","max","min","forceLogOutInTimeFromNow","_jsx","Provider","value","setUser","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, SanitizedPermissions, User } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\n\nexport type UserWithToken<T = ClientUser> = {\n exp: number\n token: string\n user: T\n}\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<null | User>\n logOut: () => Promise<boolean>\n permissions?: SanitizedPermissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: SanitizedPermissions) => void\n setUser: (user: null | UserWithToken<T>) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: null | T\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: SanitizedPermissions\n user?: ClientUser | null\n}\n\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUserInMemory] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<SanitizedPermissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n const refreshTokenTimeoutRef = React.useRef<ReturnType<typeof setTimeout>>(null)\n const { startRouteTransition } = useRouteTransition()\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n startRouteTransition(() =>\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${window.location.pathname.startsWith(adminRoute) ? `?redirect=${encodeURIComponent(window.location.pathname)}` : ''}`,\n }),\n ),\n )\n\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals, startRouteTransition])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n clearTimeout(refreshTokenTimeoutRef.current)\n }, [])\n\n const setNewUser = useCallback(\n (userResponse: null | UserWithToken) => {\n if (userResponse?.user) {\n setUserInMemory(userResponse.user)\n setTokenInMemory(userResponse.token)\n setTokenExpiration(userResponse.exp)\n } else {\n setUserInMemory(null)\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n refreshTokenTimeoutRef.current = setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token?refresh`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setNewUser(json)\n } else {\n setNewUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n\n return () => {\n clearTimeout(refreshTokenTimeoutRef.current)\n }\n },\n [\n apiRoute,\n i18n.language,\n redirectToInactivityRoute,\n serverURL,\n setNewUser,\n tokenExpiration,\n userSlug,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setNewUser(json)\n }\n return json.user\n }\n\n setNewUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [apiRoute, i18n.language, redirectToInactivityRoute, serverURL, setNewUser, userSlug],\n )\n\n const logOut = useCallback(async () => {\n try {\n await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)\n setNewUser(null)\n revokeTokenAndExpire()\n return true\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n return false\n }\n }, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, user])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: SanitizedPermissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: UserWithToken = await request.json()\n const user = null\n\n setNewUser(json)\n return user\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n\n return null\n }, [serverURL, apiRoute, userSlug, i18n.language, setNewUser])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n const remindInTimeFromNow = Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime), 0)\n const forceLogOutInTimeFromNow = Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0)\n\n if (!user) {\n clearTimeout(reminder)\n clearTimeout(forceLogOut)\n return\n }\n\n if (remainingTime > 0) {\n reminder = setTimeout(() => {\n openModal(stayLoggedInModalSlug)\n }, remindInTimeFromNow)\n\n forceLogOut = setTimeout(() => {\n setNewUser(null)\n redirectToInactivityRoute()\n }, forceLogOutInTimeFromNow)\n }\n\n return () => {\n if (reminder) {\n clearTimeout(reminder)\n }\n if (forceLogOut) {\n clearTimeout(forceLogOut)\n }\n }\n }, [tokenExpiration, openModal, i18n, setNewUser, user, redirectToInactivityRoute])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser: setNewUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","formatAdminURL","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","useConfig","useRouteTransition","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUserInMemory","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","refreshTokenTimeoutRef","useRef","startRouteTransition","id","redirectToInactivityRoute","replace","path","window","location","startsWith","encodeURIComponent","revokeTokenAndExpire","undefined","clearTimeout","current","setNewUser","userResponse","token","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","json","e","error","message","refreshCookieAsync","skipSetUser","logOut","collection","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","credentials","reminder","forceLogOut","remindInTimeFromNow","max","min","forceLogOutInTimeFromNow","_jsx","Provider","value","setUser","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, SanitizedPermissions, User } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\n\nexport type UserWithToken<T = ClientUser> = {\n exp: number\n token: string\n user: T\n}\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<null | User>\n logOut: () => Promise<boolean>\n permissions?: SanitizedPermissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: SanitizedPermissions) => void\n setUser: (user: null | UserWithToken<T>) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: null | T\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: SanitizedPermissions\n user?: ClientUser | null\n}\n\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUserInMemory] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<SanitizedPermissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n const refreshTokenTimeoutRef = React.useRef<ReturnType<typeof setTimeout>>(null)\n const { startRouteTransition } = useRouteTransition()\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n startRouteTransition(() =>\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${window.location.pathname.startsWith(adminRoute) ? `?redirect=${encodeURIComponent(window.location.pathname)}` : ''}`,\n }),\n ),\n )\n\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals, startRouteTransition])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n clearTimeout(refreshTokenTimeoutRef.current)\n }, [])\n\n const setNewUser = useCallback(\n (userResponse: null | UserWithToken) => {\n if (userResponse?.user) {\n setUserInMemory(userResponse.user)\n setTokenInMemory(userResponse.token)\n setTokenExpiration(userResponse.exp)\n } else {\n setUserInMemory(null)\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n refreshTokenTimeoutRef.current = setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token?refresh`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setNewUser(json)\n } else {\n setNewUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n\n return () => {\n clearTimeout(refreshTokenTimeoutRef.current)\n }\n },\n [\n apiRoute,\n i18n.language,\n redirectToInactivityRoute,\n serverURL,\n setNewUser,\n tokenExpiration,\n userSlug,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setNewUser(json)\n }\n return json.user\n }\n\n setNewUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [apiRoute, i18n.language, redirectToInactivityRoute, serverURL, setNewUser, userSlug],\n )\n\n const logOut = useCallback(async () => {\n try {\n await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)\n setNewUser(null)\n revokeTokenAndExpire()\n return true\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n return false\n }\n }, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, user])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: SanitizedPermissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: UserWithToken = await request.json()\n const user = null\n\n setNewUser(json)\n return user\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n\n return null\n }, [serverURL, apiRoute, userSlug, i18n.language, setNewUser])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n const remindInTimeFromNow = Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime), 0)\n const forceLogOutInTimeFromNow = Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0)\n\n if (!user) {\n clearTimeout(reminder)\n clearTimeout(forceLogOut)\n return\n }\n\n if (remainingTime > 0) {\n reminder = setTimeout(() => {\n openModal(stayLoggedInModalSlug)\n }, remindInTimeFromNow)\n\n forceLogOut = setTimeout(() => {\n setNewUser(null)\n redirectToInactivityRoute()\n }, forceLogOutInTimeFromNow)\n }\n\n return () => {\n if (reminder) {\n clearTimeout(reminder)\n }\n if (forceLogOut) {\n clearTimeout(forceLogOut)\n }\n }\n }, [tokenExpiration, openModal, i18n, setNewUser, user, redirectToInactivityRoute])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser: setNewUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,7 @@ export type DocumentInfoProps = {
|
|
|
23
23
|
readonly isLocked: boolean;
|
|
24
24
|
readonly lastUpdateTime: number;
|
|
25
25
|
readonly mostRecentVersionIsAutosaved: boolean;
|
|
26
|
+
readonly redirectAfterCreate?: boolean;
|
|
26
27
|
readonly redirectAfterDelete?: boolean;
|
|
27
28
|
readonly redirectAfterDuplicate?: boolean;
|
|
28
29
|
readonly unpublishedVersionCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n incrementVersionCount: () => void\n isInitializing: boolean\n preferencesKey?: string\n savedDocumentData?: Data\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n setUploadStatus?: (status: 'failed' | 'idle' | 'uploading') => void\n title: string\n unlockDocument: (docID: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser) => Promise<void>\n updateSavedDocumentData: (data: Data) => void\n uploadStatus?: 'failed' | 'idle' | 'uploading'\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n incrementVersionCount: () => void\n isInitializing: boolean\n preferencesKey?: string\n savedDocumentData?: Data\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n setUploadStatus?: (status: 'failed' | 'idle' | 'uploading') => void\n title: string\n unlockDocument: (docID: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser) => Promise<void>\n updateSavedDocumentData: (data: Data) => void\n uploadStatus?: 'failed' | 'idle' | 'uploading'\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"AA8CA","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IListQueryContext } from './types.js';
|
|
2
|
+
export declare const ListQueryContext: import("react").Context<IListQueryContext>;
|
|
3
|
+
export declare const useListQuery: () => IListQueryContext;
|
|
4
|
+
export declare const ListQueryModifiedContext: import("react").Context<boolean>;
|
|
5
|
+
export declare const useListQueryModified: () => boolean;
|
|
6
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,eAAO,MAAM,gBAAgB,4CAAyC,CAAA;AAEtE,eAAO,MAAM,YAAY,QAAO,iBAAiD,CAAA;AAEjF,eAAO,MAAM,wBAAwB,kCAAuB,CAAA;AAE5D,eAAO,MAAM,oBAAoB,QAAO,OAA+C,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const ListQueryContext = createContext({});
|
|
3
|
+
export const useListQuery = () => useContext(ListQueryContext);
|
|
4
|
+
export const ListQueryModifiedContext = createContext(false);
|
|
5
|
+
export const useListQueryModified = () => useContext(ListQueryModifiedContext);
|
|
6
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery","ListQueryModifiedContext","useListQueryModified"],"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\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => useContext(ListQueryModifiedContext)\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;AAEhE,OAAO,MAAME,wBAAA,GAA2BJ,aAAA,CAAc;AAEtD,OAAO,MAAMK,oBAAA,GAAuBA,CAAA,KAAeJ,UAAA,CAAWG,wBAAA","ignoreList":[]}
|
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
import type { ListQuery, PaginatedDocs, Sort, Where } from 'payload';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
handlePerPageChange?: (limit: number) => Promise<void>;
|
|
6
|
-
handleSearchChange?: (search: string) => Promise<void>;
|
|
7
|
-
handleSortChange?: (sort: string) => Promise<void>;
|
|
8
|
-
handleWhereChange?: (where: Where) => Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
export type ListQueryProps = {
|
|
11
|
-
readonly children: React.ReactNode;
|
|
12
|
-
readonly collectionSlug?: string;
|
|
13
|
-
readonly data: PaginatedDocs;
|
|
14
|
-
readonly defaultLimit?: number;
|
|
15
|
-
readonly defaultSort?: Sort;
|
|
16
|
-
readonly modifySearchParams?: boolean;
|
|
17
|
-
readonly onQueryChange?: (query: ListQuery) => void;
|
|
18
|
-
readonly preferenceKey?: string;
|
|
19
|
-
};
|
|
20
|
-
export type ListQueryContext = {
|
|
21
|
-
data: PaginatedDocs;
|
|
22
|
-
defaultLimit?: number;
|
|
23
|
-
defaultSort?: Sort;
|
|
24
|
-
query: ListQuery;
|
|
25
|
-
refineListData: (args: ListQuery) => Promise<void>;
|
|
26
|
-
} & ContextHandlers;
|
|
27
|
-
export declare const useListQuery: () => ListQueryContext;
|
|
2
|
+
import type { ListQueryProps } from './types.js';
|
|
3
|
+
export { useListQuery } from './context.js';
|
|
28
4
|
export declare const ListQueryProvider: React.FC<ListQueryProps>;
|
|
29
|
-
export {};
|
|
30
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAQnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuMtD,CAAA"}
|
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
5
|
-
import { isNumber } from 'payload/shared';
|
|
5
|
+
import { isNumber, transformColumnsToSearchParams } from 'payload/shared';
|
|
6
6
|
import * as qs from 'qs-esm';
|
|
7
|
-
import React, {
|
|
7
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
|
|
9
|
+
import { useEffectEvent } from '../../hooks/useEffectEvent.js';
|
|
10
|
+
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
9
11
|
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
return useContext(Context);
|
|
13
|
-
};
|
|
12
|
+
import { ListQueryContext, ListQueryModifiedContext } from './context.js';
|
|
13
|
+
export { useListQuery } from './context.js';
|
|
14
14
|
export const ListQueryProvider = ({
|
|
15
15
|
children,
|
|
16
|
+
collectionSlug,
|
|
17
|
+
columns,
|
|
16
18
|
data,
|
|
17
19
|
defaultLimit,
|
|
18
20
|
defaultSort,
|
|
21
|
+
listPreferences,
|
|
19
22
|
modifySearchParams,
|
|
20
23
|
onQueryChange: onQueryChangeFromProps
|
|
21
24
|
}) => {
|
|
@@ -23,7 +26,13 @@ export const ListQueryProvider = ({
|
|
|
23
26
|
|
|
24
27
|
const router = useRouter();
|
|
25
28
|
const rawSearchParams = useSearchParams();
|
|
29
|
+
const {
|
|
30
|
+
startRouteTransition
|
|
31
|
+
} = useRouteTransition();
|
|
32
|
+
const [modified, setModified] = useState(false);
|
|
26
33
|
const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams]);
|
|
34
|
+
const contextRef = useRef({});
|
|
35
|
+
contextRef.current.modified = modified;
|
|
27
36
|
const {
|
|
28
37
|
onQueryChange
|
|
29
38
|
} = useListDrawerContext();
|
|
@@ -34,37 +43,36 @@ export const ListQueryProvider = ({
|
|
|
34
43
|
return {};
|
|
35
44
|
}
|
|
36
45
|
});
|
|
37
|
-
const currentQueryRef = React.useRef(currentQuery);
|
|
38
|
-
// If the search params change externally, update the current query
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
if (modifySearchParams) {
|
|
41
|
-
setCurrentQuery(searchParams);
|
|
42
|
-
}
|
|
43
|
-
}, [searchParams, modifySearchParams]);
|
|
44
46
|
const refineListData = useCallback(
|
|
45
47
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
46
|
-
async
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
async incomingQuery => {
|
|
49
|
+
setModified(true);
|
|
50
|
+
let page = 'page' in incomingQuery ? incomingQuery.page : currentQuery?.page;
|
|
51
|
+
if ('where' in incomingQuery || 'search' in incomingQuery) {
|
|
49
52
|
page = '1';
|
|
50
53
|
}
|
|
51
54
|
const newQuery = {
|
|
52
|
-
|
|
55
|
+
columns: 'columns' in incomingQuery ? incomingQuery.columns : currentQuery.columns,
|
|
56
|
+
limit: 'limit' in incomingQuery ? incomingQuery.limit : currentQuery?.limit ?? String(defaultLimit),
|
|
53
57
|
page,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
preset: 'preset' in incomingQuery ? incomingQuery.preset : currentQuery?.preset,
|
|
59
|
+
search: 'search' in incomingQuery ? incomingQuery.search : currentQuery?.search,
|
|
60
|
+
sort: 'sort' in incomingQuery ? incomingQuery.sort : currentQuery?.sort ?? defaultSort,
|
|
61
|
+
where: 'where' in incomingQuery ? incomingQuery.where : currentQuery?.where
|
|
57
62
|
};
|
|
58
63
|
if (modifySearchParams) {
|
|
59
|
-
router.replace(`${qs.stringify(
|
|
64
|
+
startRouteTransition(() => router.replace(`${qs.stringify({
|
|
65
|
+
...newQuery,
|
|
66
|
+
columns: JSON.stringify(newQuery.columns)
|
|
67
|
+
}, {
|
|
60
68
|
addQueryPrefix: true
|
|
61
|
-
})}`);
|
|
69
|
+
})}`));
|
|
62
70
|
} else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
|
|
63
71
|
const onChangeFn = onQueryChange || onQueryChangeFromProps;
|
|
64
72
|
onChangeFn(newQuery);
|
|
65
73
|
}
|
|
66
74
|
setCurrentQuery(newQuery);
|
|
67
|
-
}, [currentQuery?.
|
|
75
|
+
}, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where, currentQuery?.preset, startRouteTransition, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
|
|
68
76
|
const handlePageChange = useCallback(async arg => {
|
|
69
77
|
await refineListData({
|
|
70
78
|
page: String(arg)
|
|
@@ -92,33 +100,46 @@ export const ListQueryProvider = ({
|
|
|
92
100
|
where: arg_3
|
|
93
101
|
});
|
|
94
102
|
}, [refineListData]);
|
|
103
|
+
const syncQuery = useEffectEvent(() => {
|
|
104
|
+
let shouldUpdateQueryString = false;
|
|
105
|
+
const newQuery_0 = {
|
|
106
|
+
...(currentQuery || {})
|
|
107
|
+
};
|
|
108
|
+
// Allow the URL to override the default limit
|
|
109
|
+
if (isNumber(defaultLimit) && !('limit' in currentQuery)) {
|
|
110
|
+
newQuery_0.limit = String(defaultLimit);
|
|
111
|
+
shouldUpdateQueryString = true;
|
|
112
|
+
}
|
|
113
|
+
// Allow the URL to override the default sort
|
|
114
|
+
if (defaultSort && !('sort' in currentQuery)) {
|
|
115
|
+
newQuery_0.sort = defaultSort;
|
|
116
|
+
shouldUpdateQueryString = true;
|
|
117
|
+
}
|
|
118
|
+
// Only modify columns if they originated from preferences
|
|
119
|
+
// We can assume they did if `listPreferences.columns` is defined
|
|
120
|
+
if (columns && listPreferences?.columns && !('columns' in currentQuery)) {
|
|
121
|
+
newQuery_0.columns = transformColumnsToSearchParams(columns);
|
|
122
|
+
shouldUpdateQueryString = true;
|
|
123
|
+
}
|
|
124
|
+
if (shouldUpdateQueryString) {
|
|
125
|
+
setCurrentQuery(newQuery_0);
|
|
126
|
+
// Do not use router.replace here to avoid re-rendering on initial load
|
|
127
|
+
window.history.replaceState(null, '', `?${qs.stringify({
|
|
128
|
+
...newQuery_0,
|
|
129
|
+
columns: JSON.stringify(newQuery_0.columns)
|
|
130
|
+
})}`);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
95
133
|
// If `defaultLimit` or `defaultSort` are updated externally, update the query
|
|
96
134
|
// I.e. when HMR runs, these properties may be different
|
|
97
135
|
useEffect(() => {
|
|
98
136
|
if (modifySearchParams) {
|
|
99
|
-
|
|
100
|
-
const newQuery_0 = {
|
|
101
|
-
...(currentQueryRef.current || {})
|
|
102
|
-
};
|
|
103
|
-
// Allow the URL to override the default limit
|
|
104
|
-
if (isNumber(defaultLimit) && !('limit' in currentQueryRef.current)) {
|
|
105
|
-
newQuery_0.limit = String(defaultLimit);
|
|
106
|
-
shouldUpdateQueryString = true;
|
|
107
|
-
}
|
|
108
|
-
// Allow the URL to override the default sort
|
|
109
|
-
if (defaultSort && !('sort' in currentQueryRef.current)) {
|
|
110
|
-
newQuery_0.sort = defaultSort;
|
|
111
|
-
shouldUpdateQueryString = true;
|
|
112
|
-
}
|
|
113
|
-
if (shouldUpdateQueryString) {
|
|
114
|
-
setCurrentQuery(newQuery_0);
|
|
115
|
-
// Do not use router.replace here to avoid re-rendering on initial load
|
|
116
|
-
window.history.replaceState(null, '', `?${qs.stringify(newQuery_0)}`);
|
|
117
|
-
}
|
|
137
|
+
syncQuery();
|
|
118
138
|
}
|
|
119
|
-
}, [defaultSort, defaultLimit,
|
|
120
|
-
return /*#__PURE__*/_jsx(
|
|
139
|
+
}, [defaultSort, defaultLimit, modifySearchParams, columns]);
|
|
140
|
+
return /*#__PURE__*/_jsx(ListQueryContext.Provider, {
|
|
121
141
|
value: {
|
|
142
|
+
collectionSlug,
|
|
122
143
|
data,
|
|
123
144
|
handlePageChange,
|
|
124
145
|
handlePerPageChange,
|
|
@@ -126,9 +147,14 @@ export const ListQueryProvider = ({
|
|
|
126
147
|
handleSortChange,
|
|
127
148
|
handleWhereChange,
|
|
128
149
|
query: currentQuery,
|
|
129
|
-
refineListData
|
|
150
|
+
refineListData,
|
|
151
|
+
setModified,
|
|
152
|
+
...contextRef.current
|
|
130
153
|
},
|
|
131
|
-
children:
|
|
154
|
+
children: /*#__PURE__*/_jsx(ListQueryModifiedContext.Provider, {
|
|
155
|
+
value: modified,
|
|
156
|
+
children: children
|
|
157
|
+
})
|
|
132
158
|
});
|
|
133
159
|
};
|
|
134
160
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useMemo","useState","useListDrawerContext","parseSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","router","rawSearchParams","searchParams","currentQuery","setCurrentQuery","currentQueryRef","useRef","refineListData","query","page","newQuery","limit","String","search","sort","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","current","window","history","replaceState","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, Sort, Where } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\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 ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: string\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: Sort\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: (query: ListQuery) => void\n readonly preferenceKey?: string\n}\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: Sort\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n}) => {\n 'use no memo'\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\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 currentQueryRef = React.useRef(currentQuery)\n\n // If the search params change externally, update the current query\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\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 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 router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`)\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?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\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 // 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 let shouldUpdateQueryString = false\n const newQuery = { ...(currentQueryRef.current || {}) }\n\n // Allow the URL to override the default limit\n if (isNumber(defaultLimit) && !('limit' in currentQueryRef.current)) {\n newQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n // Allow the URL to override the default sort\n if (defaultSort && !('sort' in currentQueryRef.current)) {\n newQuery.sort = defaultSort\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(null, '', `?${qs.stringify(newQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams])\n\n return (\n <Context.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 </Context.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","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":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ClientCollectionConfig, ColumnPreference, ListPreferences, ListQuery, PaginatedDocs, Sort, Where } from 'payload';
|
|
2
|
+
type ContextHandlers = {
|
|
3
|
+
handlePageChange?: (page: number) => Promise<void>;
|
|
4
|
+
handlePerPageChange?: (limit: number) => Promise<void>;
|
|
5
|
+
handleSearchChange?: (search: string) => Promise<void>;
|
|
6
|
+
handleSortChange?: (sort: string) => Promise<void>;
|
|
7
|
+
handleWhereChange?: (where: Where) => Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
export type OnListQueryChange = (query: ListQuery) => void;
|
|
10
|
+
export type ListQueryProps = {
|
|
11
|
+
readonly children: React.ReactNode;
|
|
12
|
+
readonly collectionSlug?: ClientCollectionConfig['slug'];
|
|
13
|
+
readonly columns?: ColumnPreference[];
|
|
14
|
+
readonly data: PaginatedDocs;
|
|
15
|
+
readonly defaultLimit?: number;
|
|
16
|
+
readonly defaultSort?: Sort;
|
|
17
|
+
readonly listPreferences?: ListPreferences;
|
|
18
|
+
readonly modifySearchParams?: boolean;
|
|
19
|
+
readonly onQueryChange?: OnListQueryChange;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated
|
|
22
|
+
*/
|
|
23
|
+
readonly preferenceKey?: string;
|
|
24
|
+
};
|
|
25
|
+
export type IListQueryContext = {
|
|
26
|
+
collectionSlug: ClientCollectionConfig['slug'];
|
|
27
|
+
data: PaginatedDocs;
|
|
28
|
+
defaultLimit?: number;
|
|
29
|
+
defaultSort?: Sort;
|
|
30
|
+
modified: boolean;
|
|
31
|
+
query: ListQuery;
|
|
32
|
+
refineListData: (args: ListQuery) => Promise<void>;
|
|
33
|
+
setModified: (modified: boolean) => void;
|
|
34
|
+
} & ContextHandlers;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,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,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACxD,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,cAAc,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACzC,GAAG,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/ListQuery/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\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?: ClientCollectionConfig['slug']\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 collectionSlug: ClientCollectionConfig['slug']\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: Sort\n modified: boolean\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n setModified: (modified: boolean) => void\n} & ContextHandlers\n"],"mappings":"AAoCA","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,CAkIxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAyC,CAAA"}
|