@payloadcms/ui 3.25.0 → 3.26.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.
Files changed (103) hide show
  1. package/dist/elements/AnimateHeight/index.scss +7 -5
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +2 -3
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +13 -2
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/FieldSelect/index.js +1 -1
  12. package/dist/elements/FieldSelect/index.js.map +1 -1
  13. package/dist/elements/Localizer/index.d.ts.map +1 -1
  14. package/dist/elements/Localizer/index.js +36 -24
  15. package/dist/elements/Localizer/index.js.map +1 -1
  16. package/dist/elements/Logout/index.d.ts.map +1 -1
  17. package/dist/elements/Logout/index.js +4 -9
  18. package/dist/elements/Logout/index.js.map +1 -1
  19. package/dist/elements/Nav/context.d.ts.map +1 -1
  20. package/dist/elements/Nav/context.js +8 -1
  21. package/dist/elements/Nav/context.js.map +1 -1
  22. package/dist/elements/PublishButton/index.js +1 -0
  23. package/dist/elements/PublishButton/index.js.map +1 -1
  24. package/dist/elements/RelationshipTable/index.d.ts +1 -1
  25. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  26. package/dist/elements/RelationshipTable/index.js +4 -11
  27. package/dist/elements/RelationshipTable/index.js.map +1 -1
  28. package/dist/elements/TableColumns/context.d.ts +4 -0
  29. package/dist/elements/TableColumns/context.d.ts.map +1 -0
  30. package/dist/elements/TableColumns/context.js +4 -0
  31. package/dist/elements/TableColumns/context.js.map +1 -0
  32. package/dist/elements/TableColumns/index.d.ts +3 -31
  33. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/index.js +49 -164
  35. package/dist/elements/TableColumns/index.js.map +1 -1
  36. package/dist/elements/TableColumns/types.d.ts +52 -0
  37. package/dist/elements/TableColumns/types.d.ts.map +1 -0
  38. package/dist/elements/TableColumns/types.js +2 -0
  39. package/dist/elements/TableColumns/types.js.map +1 -0
  40. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
  41. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  42. package/dist/elements/WhereBuilder/Condition/index.js +7 -7
  43. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  44. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  45. package/dist/elements/WhereBuilder/index.js +22 -31
  46. package/dist/elements/WhereBuilder/index.js.map +1 -1
  47. package/dist/elements/WhereBuilder/types.d.ts +6 -2
  48. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  49. package/dist/elements/WhereBuilder/types.js.map +1 -1
  50. package/dist/exports/client/index.d.ts +1 -1
  51. package/dist/exports/client/index.d.ts.map +1 -1
  52. package/dist/exports/client/index.js +11 -11
  53. package/dist/exports/client/index.js.map +4 -4
  54. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  55. package/dist/fields/Upload/HasMany/index.js +12 -4
  56. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  57. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  58. package/dist/fields/Upload/HasOne/index.js +15 -5
  59. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  60. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  61. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  62. package/dist/fields/Upload/RelationshipContent/index.js +13 -11
  63. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  64. package/dist/forms/Form/context.d.ts +11 -1
  65. package/dist/forms/Form/context.d.ts.map +1 -1
  66. package/dist/forms/Form/context.js +13 -1
  67. package/dist/forms/Form/context.js.map +1 -1
  68. package/dist/forms/Form/index.d.ts.map +1 -1
  69. package/dist/forms/Form/index.js +14 -7
  70. package/dist/forms/Form/index.js.map +1 -1
  71. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  72. package/dist/forms/Form/initContextState.js +2 -0
  73. package/dist/forms/Form/initContextState.js.map +1 -1
  74. package/dist/forms/Form/types.d.ts +9 -0
  75. package/dist/forms/Form/types.d.ts.map +1 -1
  76. package/dist/forms/Form/types.js.map +1 -1
  77. package/dist/forms/Submit/index.d.ts.map +1 -1
  78. package/dist/forms/Submit/index.js +3 -2
  79. package/dist/forms/Submit/index.js.map +1 -1
  80. package/dist/providers/ListQuery/context.d.ts +4 -0
  81. package/dist/providers/ListQuery/context.d.ts.map +1 -0
  82. package/dist/providers/ListQuery/context.js +4 -0
  83. package/dist/providers/ListQuery/context.js.map +1 -0
  84. package/dist/providers/ListQuery/index.d.ts +2 -27
  85. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  86. package/dist/providers/ListQuery/index.js +51 -37
  87. package/dist/providers/ListQuery/index.js.map +1 -1
  88. package/dist/providers/ListQuery/types.d.ts +33 -0
  89. package/dist/providers/ListQuery/types.d.ts.map +1 -0
  90. package/dist/providers/ListQuery/types.js +2 -0
  91. package/dist/providers/ListQuery/types.js.map +1 -0
  92. package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
  93. package/dist/styles.css +1 -1
  94. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  95. package/dist/utilities/copyDataFromLocale.js +6 -2
  96. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  97. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  98. package/dist/utilities/handleFormStateLocking.js +4 -2
  99. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  100. package/dist/views/List/index.d.ts.map +1 -1
  101. package/dist/views/List/index.js +0 -7
  102. package/dist/views/List/index.js.map +1 -1
  103. package/package.json +4 -4
@@ -2,20 +2,22 @@
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, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
7
+ import React, { useCallback, useEffect, useMemo, 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
- const Context = /*#__PURE__*/createContext({});
11
- export const useListQuery = () => {
12
- return useContext(Context);
13
- };
12
+ import { ListQueryContext } from './context.js';
13
+ export { useListQuery } from './context.js';
14
14
  export const ListQueryProvider = ({
15
15
  children,
16
+ columns,
16
17
  data,
17
18
  defaultLimit,
18
19
  defaultSort,
20
+ listPreferences,
19
21
  modifySearchParams,
20
22
  onQueryChange: onQueryChangeFromProps
21
23
  }) => {
@@ -23,6 +25,9 @@ export const ListQueryProvider = ({
23
25
 
24
26
  const router = useRouter();
25
27
  const rawSearchParams = useSearchParams();
28
+ const {
29
+ startRouteTransition
30
+ } = useRouteTransition();
26
31
  const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams]);
27
32
  const {
28
33
  onQueryChange
@@ -34,13 +39,6 @@ export const ListQueryProvider = ({
34
39
  return {};
35
40
  }
36
41
  });
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
42
  const refineListData = useCallback(
45
43
  // eslint-disable-next-line @typescript-eslint/require-await
46
44
  async query => {
@@ -49,6 +47,7 @@ export const ListQueryProvider = ({
49
47
  page = '1';
50
48
  }
51
49
  const newQuery = {
50
+ columns: 'columns' in query ? query.columns : currentQuery.columns,
52
51
  limit: 'limit' in query ? query.limit : currentQuery?.limit ?? String(defaultLimit),
53
52
  page,
54
53
  search: 'search' in query ? query.search : currentQuery?.search,
@@ -56,15 +55,18 @@ export const ListQueryProvider = ({
56
55
  where: 'where' in query ? query.where : currentQuery?.where
57
56
  };
58
57
  if (modifySearchParams) {
59
- router.replace(`${qs.stringify(newQuery, {
58
+ startRouteTransition(() => router.replace(`${qs.stringify({
59
+ ...newQuery,
60
+ columns: JSON.stringify(newQuery.columns)
61
+ }, {
60
62
  addQueryPrefix: true
61
- })}`);
63
+ })}`));
62
64
  } else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
63
65
  const onChangeFn = onQueryChange || onQueryChangeFromProps;
64
66
  onChangeFn(newQuery);
65
67
  }
66
68
  setCurrentQuery(newQuery);
67
- }, [currentQuery?.page, currentQuery?.limit, currentQuery?.search, currentQuery?.sort, currentQuery?.where, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
69
+ }, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where, startRouteTransition, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
68
70
  const handlePageChange = useCallback(async arg => {
69
71
  await refineListData({
70
72
  page: String(arg)
@@ -92,32 +94,44 @@ export const ListQueryProvider = ({
92
94
  where: arg_3
93
95
  });
94
96
  }, [refineListData]);
97
+ const syncQuery = useEffectEvent(() => {
98
+ let shouldUpdateQueryString = false;
99
+ const newQuery_0 = {
100
+ ...(currentQuery || {})
101
+ };
102
+ // Allow the URL to override the default limit
103
+ if (isNumber(defaultLimit) && !('limit' in currentQuery)) {
104
+ newQuery_0.limit = String(defaultLimit);
105
+ shouldUpdateQueryString = true;
106
+ }
107
+ // Allow the URL to override the default sort
108
+ if (defaultSort && !('sort' in currentQuery)) {
109
+ newQuery_0.sort = defaultSort;
110
+ shouldUpdateQueryString = true;
111
+ }
112
+ // Only modify columns if they originated from preferences
113
+ // We can assume they did if `listPreferences.columns` is defined
114
+ if (columns && listPreferences?.columns && !('columns' in currentQuery)) {
115
+ newQuery_0.columns = transformColumnsToSearchParams(columns);
116
+ shouldUpdateQueryString = true;
117
+ }
118
+ if (shouldUpdateQueryString) {
119
+ setCurrentQuery(newQuery_0);
120
+ // Do not use router.replace here to avoid re-rendering on initial load
121
+ window.history.replaceState(null, '', `?${qs.stringify({
122
+ ...newQuery_0,
123
+ columns: JSON.stringify(newQuery_0.columns)
124
+ })}`);
125
+ }
126
+ });
95
127
  // If `defaultLimit` or `defaultSort` are updated externally, update the query
96
128
  // I.e. when HMR runs, these properties may be different
97
129
  useEffect(() => {
98
130
  if (modifySearchParams) {
99
- let shouldUpdateQueryString = false;
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
- }
131
+ syncQuery();
118
132
  }
119
- }, [defaultSort, defaultLimit, router, modifySearchParams]);
120
- return /*#__PURE__*/_jsx(Context.Provider, {
133
+ }, [defaultSort, defaultLimit, modifySearchParams, columns]);
134
+ return /*#__PURE__*/_jsx(ListQueryContext.Provider, {
121
135
  value: {
122
136
  data,
123
137
  handlePageChange,
@@ -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","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":[]}
@@ -0,0 +1,33 @@
1
+ import type { 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?: string;
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
+ data: PaginatedDocs;
27
+ defaultLimit?: number;
28
+ defaultSort?: Sort;
29
+ query: ListQuery;
30
+ refineListData: (args: ListQuery) => Promise<void>;
31
+ } & ContextHandlers;
32
+ export {};
33
+ //# 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,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
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,21 +1,23 @@
1
- .progress-bar {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 2px;
7
- z-index: 9999;
8
- opacity: 1;
1
+ @layer payload-default {
2
+ .progress-bar {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100%;
7
+ height: 2px;
8
+ z-index: 9999;
9
+ opacity: 1;
9
10
 
10
- &__progress {
11
- height: 100%;
12
- background-color: var(--theme-elevation-1000);
13
- transition: width ease-in var(--transition-duration);
14
- }
11
+ &__progress {
12
+ height: 100%;
13
+ background-color: var(--theme-elevation-1000);
14
+ transition: width ease-in var(--transition-duration);
15
+ }
15
16
 
16
- &--fade-out {
17
- opacity: 0;
18
- transition: opacity linear var(--transition-duration);
19
- transition-delay: var(--transition-duration);
17
+ &--fade-out {
18
+ opacity: 0;
19
+ transition: opacity linear var(--transition-duration);
20
+ transition-delay: var(--transition-duration);
21
+ }
20
22
  }
21
23
  }