@payloadcms/ui 3.2.3-canary.5e3c2f6 → 3.2.3-canary.6302476
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.d.ts.map +1 -1
- package/dist/elements/AnimateHeight/index.js +4 -1
- package/dist/elements/AnimateHeight/index.js.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +2 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +67 -80
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +10 -14
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +11 -12
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +14 -13
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +10 -10
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/SortComplex/index.d.ts.map +1 -1
- package/dist/elements/SortComplex/index.js +3 -6
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +11 -11
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +4 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +4 -2
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +4 -2
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +4 -2
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +6 -4
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Number/index.js +5 -5
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +4 -2
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +4 -2
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +15 -0
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +2 -2
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js +2 -2
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +66 -60
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Params/index.d.ts +16 -0
- package/dist/providers/Params/index.d.ts.map +1 -1
- package/dist/providers/Params/index.js +16 -1
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/SearchParams/index.d.ts +22 -4
- package/dist/providers/SearchParams/index.d.ts.map +1 -1
- package/dist/providers/SearchParams/index.js +24 -10
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +4 -5
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/parseSearchParams.d.ts +4 -0
- package/dist/utilities/parseSearchParams.d.ts.map +1 -0
- package/dist/utilities/parseSearchParams.js +9 -0
- package/dist/utilities/parseSearchParams.js.map +1 -0
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +2 -0
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useMemo","useState","useListDrawerContext","usePreferences","createParams","Context","useListQuery","ListQueryProvider","children","collectionSlug","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","preferenceKey","router","setPreference","rawSearchParams","searchParams","currentQuery","setCurrentQuery","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","Number","sort","newQuery","search","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","String","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, 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 type { Column } from '../../elements/Table/index.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { createParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\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?: string\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?: string\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 collectionSlug,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n preferenceKey,\n}) => {\n 'use no memo'\n const router = useRouter()\n const { setPreference } = usePreferences()\n const rawSearchParams = useSearchParams()\n const searchParams = useMemo(() => createParams(rawSearchParams), [rawSearchParams])\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n async (query: ListQuery) => {\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = Number(query.limit)\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences, true)\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit as string),\n page: pageQuery as string,\n search: 'search' in query ? query.search : (currentQuery?.search as string),\n sort: 'sort' in query ? query.sort : (currentQuery?.sort as string),\n where: 'where' in query ? query.where : (currentQuery?.where as 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 [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.sort,\n currentQuery?.where,\n currentQuery?.search,\n preferenceKey,\n router,\n setPreference,\n onQueryChange,\n onQueryChangeFromProps,\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 useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n setCurrentQuery(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\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","qs","React","createContext","useCallback","useContext","useEffect","useMemo","useState","useListDrawerContext","parseSearchParams","usePreferences","Context","useListQuery","ListQueryProvider","children","collectionSlug","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","preferenceKey","router","setPreference","rawSearchParams","searchParams","currentQuery","setCurrentQuery","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","Number","sort","newQuery","search","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","String","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, 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 type { Column } from '../../elements/Table/index.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { usePreferences } from '../Preferences/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\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?: string\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?: string\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 collectionSlug,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n preferenceKey,\n}) => {\n 'use no memo'\n const router = useRouter()\n const { setPreference } = usePreferences()\n const rawSearchParams = useSearchParams()\n const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n async (query: ListQuery) => {\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = Number(query.limit)\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences, true)\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit as string),\n page: pageQuery as string,\n search: 'search' in query ? query.search : (currentQuery?.search as string),\n sort: 'sort' in query ? query.sort : (currentQuery?.sort as string),\n where: 'where' in query ? query.where : (currentQuery?.where as 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 [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.sort,\n currentQuery?.where,\n currentQuery?.search,\n preferenceKey,\n router,\n setPreference,\n onQueryChange,\n onQueryChangeFromProps,\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 useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n setCurrentQuery(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,KAAyD,MAAM,OAAO,CAAA;AAS7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAyEnE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { useSearchParams } from 'next/navigation.js';
|
|
5
6
|
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
6
7
|
import { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js';
|
|
7
8
|
import { useAuth } from '../Auth/index.js';
|
|
8
9
|
import { useConfig } from '../Config/index.js';
|
|
9
10
|
import { usePreferences } from '../Preferences/index.js';
|
|
10
|
-
import { useSearchParams } from '../SearchParams/index.js';
|
|
11
11
|
const LocaleContext = /*#__PURE__*/createContext({});
|
|
12
12
|
export const LocaleProvider = t0 => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(28);
|
|
14
14
|
const {
|
|
15
15
|
children
|
|
16
16
|
} = t0;
|
|
@@ -25,28 +25,34 @@ export const LocaleProvider = t0 => {
|
|
|
25
25
|
user
|
|
26
26
|
} = useAuth();
|
|
27
27
|
const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : "en";
|
|
28
|
-
const
|
|
29
|
-
searchParams
|
|
30
|
-
} = useSearchParams();
|
|
31
|
-
const localeFromParams = searchParams?.locale;
|
|
32
|
-
const [localeCode, setLocaleCode] = useState(localeFromParams || defaultLocale);
|
|
28
|
+
const searchParams = useSearchParams();
|
|
33
29
|
let t3;
|
|
34
|
-
if ($[0] !==
|
|
35
|
-
t3 =
|
|
36
|
-
$[0] =
|
|
37
|
-
$[1] =
|
|
38
|
-
$[2] = t3;
|
|
30
|
+
if ($[0] !== searchParams) {
|
|
31
|
+
t3 = searchParams.get("locale");
|
|
32
|
+
$[0] = searchParams;
|
|
33
|
+
$[1] = t3;
|
|
39
34
|
} else {
|
|
40
|
-
t3 = $[
|
|
35
|
+
t3 = $[1];
|
|
41
36
|
}
|
|
42
|
-
const
|
|
37
|
+
const localeFromParams = t3;
|
|
38
|
+
const [localeCode, setLocaleCode] = useState(localeFromParams || defaultLocale);
|
|
39
|
+
let t4;
|
|
40
|
+
if ($[2] !== localeCode || $[3] !== localization) {
|
|
41
|
+
t4 = localization && findLocaleFromCode(localization, localeCode);
|
|
42
|
+
$[2] = localeCode;
|
|
43
|
+
$[3] = localization;
|
|
44
|
+
$[4] = t4;
|
|
45
|
+
} else {
|
|
46
|
+
t4 = $[4];
|
|
47
|
+
}
|
|
48
|
+
const [locale, setLocale] = useState(t4);
|
|
43
49
|
const {
|
|
44
50
|
getPreference,
|
|
45
51
|
setPreference
|
|
46
52
|
} = usePreferences();
|
|
47
|
-
let
|
|
48
|
-
if ($[
|
|
49
|
-
|
|
53
|
+
let t5;
|
|
54
|
+
if ($[5] !== defaultLocale || $[6] !== localeCode || $[7] !== localization || $[8] !== setPreference || $[9] !== user) {
|
|
55
|
+
t5 = async newLocale => {
|
|
50
56
|
if (!localization) {
|
|
51
57
|
return;
|
|
52
58
|
}
|
|
@@ -59,24 +65,24 @@ export const LocaleProvider = t0 => {
|
|
|
59
65
|
if (user) {
|
|
60
66
|
await setPreference("locale", localeToSet);
|
|
61
67
|
}
|
|
62
|
-
} catch (
|
|
63
|
-
const error =
|
|
68
|
+
} catch (t6) {
|
|
69
|
+
const error = t6;
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
};
|
|
67
|
-
$[
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
73
|
+
$[5] = defaultLocale;
|
|
74
|
+
$[6] = localeCode;
|
|
75
|
+
$[7] = localization;
|
|
76
|
+
$[8] = setPreference;
|
|
77
|
+
$[9] = user;
|
|
78
|
+
$[10] = t5;
|
|
73
79
|
} else {
|
|
74
|
-
|
|
80
|
+
t5 = $[10];
|
|
75
81
|
}
|
|
76
|
-
const switchLocale =
|
|
77
|
-
let
|
|
78
|
-
if ($[
|
|
79
|
-
|
|
82
|
+
const switchLocale = t5;
|
|
83
|
+
let t6;
|
|
84
|
+
if ($[11] !== defaultLocale || $[12] !== getPreference || $[13] !== localeFromParams || $[14] !== switchLocale || $[15] !== user) {
|
|
85
|
+
t6 = () => {
|
|
80
86
|
const setInitialLocale = async function setInitialLocale() {
|
|
81
87
|
let localeToSet_0 = defaultLocale;
|
|
82
88
|
if (typeof localeFromParams === "string") {
|
|
@@ -86,8 +92,8 @@ export const LocaleProvider = t0 => {
|
|
|
86
92
|
;
|
|
87
93
|
try {
|
|
88
94
|
localeToSet_0 = await getPreference("locale");
|
|
89
|
-
} catch (
|
|
90
|
-
const error_0 =
|
|
95
|
+
} catch (t7) {
|
|
96
|
+
const error_0 = t7;
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
99
|
}
|
|
@@ -95,43 +101,43 @@ export const LocaleProvider = t0 => {
|
|
|
95
101
|
};
|
|
96
102
|
setInitialLocale();
|
|
97
103
|
};
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
+
$[11] = defaultLocale;
|
|
105
|
+
$[12] = getPreference;
|
|
106
|
+
$[13] = localeFromParams;
|
|
107
|
+
$[14] = switchLocale;
|
|
108
|
+
$[15] = user;
|
|
109
|
+
$[16] = t6;
|
|
104
110
|
} else {
|
|
105
|
-
|
|
111
|
+
t6 = $[16];
|
|
106
112
|
}
|
|
107
|
-
let
|
|
108
|
-
if ($[
|
|
109
|
-
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
113
|
+
let t7;
|
|
114
|
+
if ($[17] !== defaultLocale || $[18] !== getPreference || $[19] !== localeFromParams || $[20] !== localization || $[21] !== setPreference || $[22] !== switchLocale || $[23] !== user) {
|
|
115
|
+
t7 = [defaultLocale, getPreference, localization, localeFromParams, setPreference, user, switchLocale];
|
|
116
|
+
$[17] = defaultLocale;
|
|
117
|
+
$[18] = getPreference;
|
|
118
|
+
$[19] = localeFromParams;
|
|
119
|
+
$[20] = localization;
|
|
120
|
+
$[21] = setPreference;
|
|
121
|
+
$[22] = switchLocale;
|
|
122
|
+
$[23] = user;
|
|
123
|
+
$[24] = t7;
|
|
118
124
|
} else {
|
|
119
|
-
|
|
125
|
+
t7 = $[24];
|
|
120
126
|
}
|
|
121
|
-
useEffect(
|
|
122
|
-
let
|
|
123
|
-
if ($[
|
|
124
|
-
|
|
127
|
+
useEffect(t6, t7);
|
|
128
|
+
let t8;
|
|
129
|
+
if ($[25] !== children || $[26] !== locale) {
|
|
130
|
+
t8 = _jsx(LocaleContext.Provider, {
|
|
125
131
|
value: locale,
|
|
126
132
|
children
|
|
127
133
|
});
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
134
|
+
$[25] = children;
|
|
135
|
+
$[26] = locale;
|
|
136
|
+
$[27] = t8;
|
|
131
137
|
} else {
|
|
132
|
-
|
|
138
|
+
t8 = $[27];
|
|
133
139
|
}
|
|
134
|
-
return
|
|
140
|
+
return t8;
|
|
135
141
|
};
|
|
136
142
|
/**
|
|
137
143
|
* A hook that returns the current locale object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","t2","undefined","user","defaultLocale","searchParams","t3","get","localeFromParams","localeCode","setLocaleCode","t4","locale","setLocale","getPreference","setPreference","t5","newLocale","localeToSet","localeCodes","indexOf","t6","error","switchLocale","setInitialLocale","localeToSet_0","t7","t8","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { createContext, useContext, useEffect, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { usePreferences } from '../Preferences/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const {\n config: { localization = false },\n } = useConfig()\n\n const { user } = useAuth()\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const searchParams = useSearchParams()\n const localeFromParams = searchParams.get('locale')\n\n const [localeCode, setLocaleCode] = useState<string>(localeFromParams || defaultLocale)\n\n const [locale, setLocale] = useState<Locale | null>(\n localization && findLocaleFromCode(localization, localeCode),\n )\n\n const { getPreference, setPreference } = usePreferences()\n\n const switchLocale = React.useCallback(\n async (newLocale: string) => {\n if (!localization) {\n return\n }\n\n const localeToSet =\n localization.localeCodes.indexOf(newLocale) > -1 ? newLocale : defaultLocale\n\n if (localeToSet !== localeCode) {\n setLocaleCode(localeToSet)\n setLocale(findLocaleFromCode(localization, localeToSet))\n try {\n if (user) {\n await setPreference('locale', localeToSet)\n }\n } catch (error) {\n // swallow error\n }\n }\n },\n [localization, setPreference, user, defaultLocale, localeCode],\n )\n\n useEffect(() => {\n async function setInitialLocale() {\n let localeToSet = defaultLocale\n\n if (typeof localeFromParams === 'string') {\n localeToSet = localeFromParams\n } else if (user) {\n try {\n localeToSet = await getPreference<string>('locale')\n } catch (error) {\n // swallow error\n }\n }\n\n await switchLocale(localeToSet)\n }\n\n void setInitialLocale()\n }, [\n defaultLocale,\n getPreference,\n localization,\n localeFromParams,\n setPreference,\n user,\n switchLocale,\n ])\n\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>\n}\n\n/**\n * A hook that returns the current locale object.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,9 +3,25 @@ import React from 'react';
|
|
|
3
3
|
export type Params = ReturnType<typeof useNextParams>;
|
|
4
4
|
interface IParamsContext extends Params {
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated
|
|
8
|
+
* The ParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { useParams } from 'next/navigation'
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
6
14
|
export declare const ParamsProvider: React.FC<{
|
|
7
15
|
children?: React.ReactNode;
|
|
8
16
|
}>;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated
|
|
19
|
+
* The `useParams` hook is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* import { useParams } from 'next/navigation'
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
9
25
|
export declare const useParams: () => IParamsContext;
|
|
10
26
|
export {};
|
|
11
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Params/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;AACrD,UAAU,cAAe,SAAQ,MAAM;CAAG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Params/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;AACrD,UAAU,cAAe,SAAQ,MAAM;CAAG;AAI1C;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAGnE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,QAAO,cAAqC,CAAA"}
|
|
@@ -5,7 +5,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { useParams as useNextParams } from 'next/navigation.js';
|
|
6
6
|
import React, { createContext, useContext } from 'react';
|
|
7
7
|
const Context = /*#__PURE__*/createContext({});
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated
|
|
10
|
+
* The ParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { useParams } from 'next/navigation'
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
9
16
|
export const ParamsProvider = t0 => {
|
|
10
17
|
const $ = _c(3);
|
|
11
18
|
const {
|
|
@@ -26,6 +33,14 @@ export const ParamsProvider = t0 => {
|
|
|
26
33
|
}
|
|
27
34
|
return t1;
|
|
28
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated
|
|
38
|
+
* The `useParams` hook is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* import { useParams } from 'next/navigation'
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
29
44
|
export const useParams = () => {
|
|
30
45
|
return useContext(Context);
|
|
31
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useParams","useNextParams","React","createContext","useContext","Context","ParamsProvider","t0","$","children","params","t1","_jsx","Provider","value"],"sources":["../../../src/providers/Params/index.tsx"],"sourcesContent":["'use client'\n\nimport { useParams as useNextParams } from 'next/navigation.js'\nimport React, { createContext, useContext } from 'react'\n\nexport type Params = ReturnType<typeof useNextParams>\ninterface IParamsContext extends Params {}\n\nconst Context = createContext<IParamsContext>({} as IParamsContext)\n\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useParams","useNextParams","React","createContext","useContext","Context","ParamsProvider","t0","$","children","params","t1","_jsx","Provider","value"],"sources":["../../../src/providers/Params/index.tsx"],"sourcesContent":["'use client'\n\nimport { useParams as useNextParams } from 'next/navigation.js'\nimport React, { createContext, useContext } from 'react'\n\nexport type Params = ReturnType<typeof useNextParams>\ninterface IParamsContext extends Params {}\n\nconst Context = createContext<IParamsContext>({} as IParamsContext)\n\n/**\n * @deprecated\n * The ParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useParams } from 'next/navigation'\n * ```\n */\nexport const ParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const params = useNextParams()\n return <Context.Provider value={params}>{children}</Context.Provider>\n}\n\n/**\n * @deprecated\n * The `useParams` hook is deprecated and will be removed in the next major release. Instead, use the `useParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useParams } from 'next/navigation'\n * ```\n */\nexport const useParams = (): IParamsContext => useContext(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,SAAA,IAAaC,aAAa,QAAQ;AAC3C,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,QAAQ;AAKjD,MAAMC,OAAA,gBAAUF,aAAA,CAA8B,CAAC;AAE/C;;;;;;;;AAQA,OAAO,MAAMG,cAAA,GAA2DC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAY;EACnF,MAAAG,MAAA,GAAeT,aAAA;EAAA,IAAAU,EAAA;EAAA,IAAAH,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,MAAA;IACRC,EAAA,GAAAC,IAAA,CAAAP,OAAA,CAAAQ,QAAA;MAAAC,KAAA,EAAyBJ,MAAA;MAAAD;IAAA,C;;;;;;;SAAzBE,E;CACT;AAEA;;;;;;;;AAQA,OAAO,MAAMX,SAAA,GAAYA,CAAA;EAAA,OAAsBI,UAAA,CAAAC,OAAW;AAAA","ignoreList":[]}
|
|
@@ -1,17 +1,35 @@
|
|
|
1
|
-
import type { ReadonlyURLSearchParams } from 'next/navigation.js';
|
|
2
1
|
import * as qs from 'qs-esm';
|
|
3
2
|
import React from 'react';
|
|
4
3
|
export type SearchParamsContext = {
|
|
5
4
|
searchParams: qs.ParsedQs;
|
|
6
5
|
stringifyParams: ({ params, replace }: {
|
|
7
|
-
params:
|
|
6
|
+
params: qs.ParsedQs;
|
|
8
7
|
replace?: boolean;
|
|
9
8
|
}) => string;
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated
|
|
12
|
+
* The SearchParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { useSearchParams } from 'next/navigation'
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
13
18
|
export declare const SearchParamsProvider: React.FC<{
|
|
14
19
|
children?: React.ReactNode;
|
|
15
20
|
}>;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated
|
|
23
|
+
* The `useSearchParams` hook is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* import { useSearchParams } from 'next/navigation'
|
|
27
|
+
* ```
|
|
28
|
+
* If you need to parse the `where` query, you can do so with the `parseSearchParams` utility.
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { parseSearchParams } from '@payloadcms/ui'
|
|
31
|
+
* const parsedSearchParams = parseSearchParams(searchParams)
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
16
34
|
export declare const useSearchParams: () => SearchParamsContext;
|
|
17
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SearchParams/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SearchParams/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,KAAoC,MAAM,OAAO,CAAA;AAIxD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAA;IACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAA;CAC7F,CAAA;AASD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAuBzE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA"}
|
|
@@ -5,19 +5,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { useSearchParams as useNextSearchParams } from 'next/navigation.js';
|
|
6
6
|
import * as qs from 'qs-esm';
|
|
7
7
|
import React, { createContext, useContext } from 'react';
|
|
8
|
+
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
8
9
|
const initialContext = {
|
|
9
10
|
searchParams: {},
|
|
10
11
|
stringifyParams: () => ''
|
|
11
12
|
};
|
|
12
13
|
const Context = /*#__PURE__*/createContext(initialContext);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated
|
|
16
|
+
* The SearchParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* import { useSearchParams } from 'next/navigation'
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
21
22
|
export const SearchParamsProvider = t0 => {
|
|
22
23
|
const $ = _c(11);
|
|
23
24
|
const {
|
|
@@ -26,7 +27,7 @@ export const SearchParamsProvider = t0 => {
|
|
|
26
27
|
const nextSearchParams = useNextSearchParams();
|
|
27
28
|
let t1;
|
|
28
29
|
if ($[0] !== nextSearchParams) {
|
|
29
|
-
t1 = () =>
|
|
30
|
+
t1 = () => parseSearchParams(nextSearchParams);
|
|
30
31
|
$[0] = nextSearchParams;
|
|
31
32
|
$[1] = t1;
|
|
32
33
|
} else {
|
|
@@ -58,7 +59,7 @@ export const SearchParamsProvider = t0 => {
|
|
|
58
59
|
let t4;
|
|
59
60
|
if ($[4] !== nextSearchParams) {
|
|
60
61
|
t3 = () => {
|
|
61
|
-
setSearchParams(
|
|
62
|
+
setSearchParams(parseSearchParams(nextSearchParams));
|
|
62
63
|
};
|
|
63
64
|
t4 = [nextSearchParams];
|
|
64
65
|
$[4] = nextSearchParams;
|
|
@@ -87,6 +88,19 @@ export const SearchParamsProvider = t0 => {
|
|
|
87
88
|
}
|
|
88
89
|
return t5;
|
|
89
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated
|
|
93
|
+
* The `useSearchParams` hook is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.
|
|
94
|
+
* @example
|
|
95
|
+
* ```tsx
|
|
96
|
+
* import { useSearchParams } from 'next/navigation'
|
|
97
|
+
* ```
|
|
98
|
+
* If you need to parse the `where` query, you can do so with the `parseSearchParams` utility.
|
|
99
|
+
* ```tsx
|
|
100
|
+
* import { parseSearchParams } from '@payloadcms/ui'
|
|
101
|
+
* const parsedSearchParams = parseSearchParams(searchParams)
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
90
104
|
export const useSearchParams = () => {
|
|
91
105
|
return useContext(Context);
|
|
92
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useSearchParams","useNextSearchParams","qs","React","createContext","useContext","initialContext","searchParams","stringifyParams","Context","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useSearchParams","useNextSearchParams","qs","React","createContext","useContext","parseSearchParams","initialContext","searchParams","stringifyParams","Context","SearchParamsProvider","t0","$","children","nextSearchParams","t1","setSearchParams","useState","t2","t3","params","replace","t4","undefined","stringify","addQueryPrefix","useEffect","t5","_jsx","Provider","value"],"sources":["../../../src/providers/SearchParams/index.tsx"],"sourcesContent":["'use client'\n\nimport { useSearchParams as useNextSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\n\nexport type SearchParamsContext = {\n searchParams: qs.ParsedQs\n stringifyParams: ({ params, replace }: { params: qs.ParsedQs; replace?: boolean }) => string\n}\n\nconst initialContext: SearchParamsContext = {\n searchParams: {},\n stringifyParams: () => '',\n}\n\nconst Context = createContext(initialContext)\n\n/**\n * @deprecated\n * The SearchParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n */\nexport const SearchParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const nextSearchParams = useNextSearchParams()\n\n const [searchParams, setSearchParams] = React.useState(() => parseSearchParams(nextSearchParams))\n\n const stringifyParams = React.useCallback(\n ({ params, replace = false }: { params: qs.ParsedQs; replace?: boolean }) => {\n return qs.stringify(\n {\n ...(replace ? {} : searchParams),\n ...params,\n },\n { addQueryPrefix: true },\n )\n },\n [searchParams],\n )\n\n React.useEffect(() => {\n setSearchParams(parseSearchParams(nextSearchParams))\n }, [nextSearchParams])\n\n return <Context.Provider value={{ searchParams, stringifyParams }}>{children}</Context.Provider>\n}\n\n/**\n * @deprecated\n * The `useSearchParams` hook is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n * If you need to parse the `where` query, you can do so with the `parseSearchParams` utility.\n * ```tsx\n * import { parseSearchParams } from '@payloadcms/ui'\n * const parsedSearchParams = parseSearchParams(searchParams)\n * ```\n */\nexport const useSearchParams = (): SearchParamsContext => useContext(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,eAAA,IAAmBC,mBAAmB,QAAQ;AACvD,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,QAAQ;AAEjD,SAASC,iBAAiB,QAAQ;AAOlC,MAAMC,cAAA,GAAsC;EAC1CC,YAAA,EAAc,CAAC;EACfC,eAAA,EAAiBA,CAAA,KAAM;AACzB;AAEA,MAAMC,OAAA,gBAAUN,aAAA,CAAcG,cAAA;AAE9B;;;;;;;;AAQA,OAAO,MAAMI,oBAAA,GAAiEC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAAC;IAAAe;EAAA,IAAAF,EAAY;EACzF,MAAAG,gBAAA,GAAyBd,mBAAA;EAAA,IAAAe,EAAA;EAAA,IAAAH,CAAA,QAAAE,gBAAA;IAE8BC,EAAA,GAAAA,CAAA,KAAMV,iBAAA,CAAkBS,gBAAA;IAAAF,CAAA,MAAAE,gBAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAA/E,OAAAL,YAAA,EAAAS,eAAA,IAAwCd,KAAA,CAAAe,QAAA,CAAeF,EAAwB;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAL,YAAA;IAG7EW,EAAA,GAAAC,EAAA;MAAC;QAAAC,MAAA;QAAAC,OAAA,EAAAC;MAAA,IAAAH,EAAuE;MAA7D,MAAAE,OAAA,GAAAC,EAAe,KAAAC,SAAA,WAAfD,EAAe;MAAA,OACjBrB,EAAA,CAAAuB,SAAA;QAAA,IAECH,OAAA,QAAed,YAAY;QAAA,GAC5Ba;MAAM;QAAAK,cAAA;MAAA,CAEY;IAAA;IAE3Bb,CAAA,MAAAL,YAAA;IAAAK,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EATF,MAAAJ,eAAA,GAAwBU,EAUR;EAAA,IAAAC,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAV,CAAA,QAAAE,gBAAA;IAGAK,EAAA,GAAAA,CAAA;MACdH,eAAA,CAAgBX,iBAAA,CAAkBS,gBAAA;IAAA;IACjCQ,EAAA,IAACR,gBAAA;IAAiBF,CAAA,MAAAE,gBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAU,EAAA;EAAA;IAAAH,EAAA,GAAAP,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFrBV,KAAA,CAAAwB,SAAA,CAAgBP,EAEhB,EAAGG,EAAkB;EAAA,IAAAK,EAAA;EAAA,IAAAf,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAL,YAAA,IAAAK,CAAA,QAAAJ,eAAA;IAEdmB,EAAA,GAAAC,IAAA,CAAAnB,OAAA,CAAAoB,QAAA;MAAAC,KAAA;QAAAvB,YAAA;QAAAC;MAAA;MAAAK;IAAA,C;;;;;;;;SAAAc,E;CACT;AAEA;;;;;;;;;;;;;AAaA,OAAO,MAAM5B,eAAA,GAAkBA,CAAA;EAAA,OAA2BK,UAAA,CAAAK,OAAW;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIhD,OAAO,KAA8E,MAAM,OAAO,CAAA;AAKlG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqK7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { useSearchParams } from 'next/navigation.js';
|
|
4
5
|
import * as qs from 'qs-esm';
|
|
5
6
|
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
7
|
+
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
6
8
|
import { useLocale } from '../Locale/index.js';
|
|
7
|
-
import { useSearchParams } from '../SearchParams/index.js';
|
|
8
9
|
export var SelectAllStatus = /*#__PURE__*/function (SelectAllStatus) {
|
|
9
10
|
SelectAllStatus["AllAvailable"] = "allAvailable";
|
|
10
11
|
SelectAllStatus["AllInPage"] = "allInPage";
|
|
@@ -34,9 +35,7 @@ export const SelectionProvider = ({
|
|
|
34
35
|
});
|
|
35
36
|
const [selectAll, setSelectAll] = useState("none");
|
|
36
37
|
const [count, setCount] = useState(0);
|
|
37
|
-
const
|
|
38
|
-
searchParams
|
|
39
|
-
} = useSearchParams();
|
|
38
|
+
const searchParams = useSearchParams();
|
|
40
39
|
const toggleAll = useCallback((allAvailable = false) => {
|
|
41
40
|
const rows_0 = new Map();
|
|
42
41
|
if (allAvailable) {
|
|
@@ -83,7 +82,7 @@ export const SelectionProvider = ({
|
|
|
83
82
|
const getQueryParams = useCallback(additionalWhereParams => {
|
|
84
83
|
let where;
|
|
85
84
|
if (selectAll === "allAvailable") {
|
|
86
|
-
const params = searchParams?.where;
|
|
85
|
+
const params = parseSearchParams(searchParams)?.where;
|
|
87
86
|
where = params || {
|
|
88
87
|
id: {
|
|
89
88
|
not_equals: ''
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useSearchParams","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","parseSearchParams","useLocale","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useLocale } from '../Locale/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const searchParams = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = parseSearchParams(searchParams)?.where as Where\n\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|