@payloadcms/ui 3.0.0-beta.120 → 3.0.0-beta.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/ActionsBar/index.scss +4 -0
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +34 -25
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +40 -2
- package/dist/elements/BulkUpload/FormsManager/index.d.ts +1 -0
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +35 -5
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +13 -3
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts +1 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +94 -92
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.scss +1 -0
- package/dist/elements/Thumbnail/createThumbnail.d.ts +5 -0
- package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -0
- package/dist/elements/Thumbnail/createThumbnail.js +50 -0
- package/dist/elements/Thumbnail/createThumbnail.js.map +1 -0
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +2 -0
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +1 -1
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +1 -0
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js +1 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAkD,MAAM,SAAS,CAAA;AAE9F,OAAO,KAAkB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAkD,MAAM,SAAS,CAAA;AAE9F,OAAO,KAAkB,MAAM,OAAO,CAAA;AAoEtC,eAAO,MAAM,SAAS;;;;;oCAAoC,CAAA"}
|
|
@@ -16,6 +16,7 @@ const JoinFieldComponent = props => {
|
|
|
16
16
|
name,
|
|
17
17
|
_path: pathFromProps,
|
|
18
18
|
admin: {
|
|
19
|
+
allowCreate = true,
|
|
19
20
|
components: {
|
|
20
21
|
Label
|
|
21
22
|
}
|
|
@@ -44,6 +45,7 @@ const JoinFieldComponent = props => {
|
|
|
44
45
|
return /*#__PURE__*/_jsx("div", {
|
|
45
46
|
className: [fieldBaseClass, 'join'].filter(Boolean).join(' '),
|
|
46
47
|
children: /*#__PURE__*/_jsx(RelationshipTable, {
|
|
48
|
+
allowCreate: typeof docID !== 'undefined' && allowCreate,
|
|
47
49
|
field: field,
|
|
48
50
|
filterOptions: filterOptions,
|
|
49
51
|
initialData: docID && value ? value : {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useMemo","RelationshipTable","FieldLabel","useFieldProps","useField","withCondition","useDocumentInfo","fieldBaseClass","JoinFieldComponent","props","field","name","_path","pathFromProps","admin","components","Label","collection","label","on","id","docID","path","pathFromContext","value","filterOptions","in","_jsx","className","filter","Boolean","join","initialData","docs","initialDrawerState","initialValue","valid","style","margin","as","relationTo","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JoinFieldClient, JoinFieldClientComponent, PaginatedDocs, Where } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n components: { Label },\n },\n collection,\n label,\n on,\n },\n } = props\n\n const { id: docID } = useDocumentInfo()\n\n const { path: pathFromContext } = useFieldProps()\n\n const { value } = useField<PaginatedDocs>({\n path: pathFromContext ?? pathFromProps ?? name,\n })\n\n const filterOptions: Where = useMemo(\n () => ({\n [on]: {\n in: [docID || null],\n },\n }),\n [docID, on],\n )\n\n return (\n <div className={[fieldBaseClass, 'join'].filter(Boolean).join(' ')}>\n <RelationshipTable\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerState={{\n [on]: {\n initialValue: docID,\n valid: true,\n value: docID,\n },\n }}\n Label={\n <h4 style={{ margin: 0 }}>\n <FieldLabel as=\"span\" field={field} Label={Label} label={label} />\n </h4>\n }\n relationTo={collection}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAE/B,MAAMC,kBAAA,GAAgDC,KAAA;EACpD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,IAAI;MACJC,KAAA,EAAOC,aAAa;MACpBC,KAAA,EAAO;QACLC,UAAA,EAAY;UAAEC;QAAK;MAAE,CACtB;MACDC,UAAU;MACVC,KAAK;MACLC;IAAE;EACH,CACF,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","RelationshipTable","FieldLabel","useFieldProps","useField","withCondition","useDocumentInfo","fieldBaseClass","JoinFieldComponent","props","field","name","_path","pathFromProps","admin","allowCreate","components","Label","collection","label","on","id","docID","path","pathFromContext","value","filterOptions","in","_jsx","className","filter","Boolean","join","initialData","docs","initialDrawerState","initialValue","valid","style","margin","as","relationTo","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JoinFieldClient, JoinFieldClientComponent, PaginatedDocs, Where } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n allowCreate = true,\n components: { Label },\n },\n collection,\n label,\n on,\n },\n } = props\n\n const { id: docID } = useDocumentInfo()\n\n const { path: pathFromContext } = useFieldProps()\n\n const { value } = useField<PaginatedDocs>({\n path: pathFromContext ?? pathFromProps ?? name,\n })\n\n const filterOptions: Where = useMemo(\n () => ({\n [on]: {\n in: [docID || null],\n },\n }),\n [docID, on],\n )\n\n return (\n <div className={[fieldBaseClass, 'join'].filter(Boolean).join(' ')}>\n <RelationshipTable\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerState={{\n [on]: {\n initialValue: docID,\n valid: true,\n value: docID,\n },\n }}\n Label={\n <h4 style={{ margin: 0 }}>\n <FieldLabel as=\"span\" field={field} Label={Label} label={label} />\n </h4>\n }\n relationTo={collection}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAE/B,MAAMC,kBAAA,GAAgDC,KAAA;EACpD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,IAAI;MACJC,KAAA,EAAOC,aAAa;MACpBC,KAAA,EAAO;QACLC,WAAA,GAAc,IAAI;QAClBC,UAAA,EAAY;UAAEC;QAAK;MAAE,CACtB;MACDC,UAAU;MACVC,KAAK;MACLC;IAAE;EACH,CACF,GAAGX,KAAA;EAEJ,MAAM;IAAEY,EAAA,EAAIC;EAAK,CAAE,GAAGhB,eAAA;EAEtB,MAAM;IAAEiB,IAAA,EAAMC;EAAe,CAAE,GAAGrB,aAAA;EAElC,MAAM;IAAEsB;EAAK,CAAE,GAAGrB,QAAA,CAAwB;IACxCmB,IAAA,EAAMC,eAAA,IAAmBX,aAAA,IAAiBF;EAC5C;EAEA,MAAMe,aAAA,GAAuB1B,OAAA,CAC3B,OAAO;IACL,CAACoB,EAAA,GAAK;MACJO,EAAA,EAAI,CAACL,KAAA,IAAS;IAChB;EACF,IACA,CAACA,KAAA,EAAOF,EAAA,CAAG;EAGb,oBACEQ,IAAA,CAAC;IAAIC,SAAA,EAAW,CAACtB,cAAA,EAAgB,OAAO,CAACuB,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;cAC5D,aAAAJ,IAAA,CAAC3B,iBAAA;MACCc,WAAA,EAAa,OAAOO,KAAA,KAAU,eAAeP,WAAA;MAC7CL,KAAA,EAAOA,KAAA;MACPgB,aAAA,EAAeA,aAAA;MACfO,WAAA,EAAaX,KAAA,IAASG,KAAA,GAAQA,KAAA,GAAS;QAAES,IAAA,EAAM;MAAG;MAClDC,kBAAA,EAAoB;QAClB,CAACf,EAAA,GAAK;UACJgB,YAAA,EAAcd,KAAA;UACde,KAAA,EAAO;UACPZ,KAAA,EAAOH;QACT;MACF;MACAL,KAAA,eACEW,IAAA,CAAC;QAAGU,KAAA,EAAO;UAAEC,MAAA,EAAQ;QAAE;kBACrB,aAAAX,IAAA,CAAC1B,UAAA;UAAWsC,EAAA,EAAG;UAAO9B,KAAA,EAAOA,KAAA;UAAOO,KAAA,EAAOA,KAAA;UAAOE,KAAA,EAAOA;;;MAG7DsB,UAAA,EAAYvB;;;AAIpB;AAEA,OAAO,MAAMwB,SAAA,GAAYrC,aAAA,CAAcG,kBAAA","ignoreList":[]}
|
|
@@ -163,7 +163,7 @@ const TabsFieldComponent = props => {
|
|
|
163
163
|
t9 = $[18];
|
|
164
164
|
}
|
|
165
165
|
const generateTabPath = t9;
|
|
166
|
-
const activeTabDescription = activeTabConfig
|
|
166
|
+
const activeTabDescription = activeTabConfig?.description;
|
|
167
167
|
let t10;
|
|
168
168
|
if ($[19] !== activeTabDescription || $[20] !== i18n) {
|
|
169
169
|
t10 = typeof activeTabDescription === "function" ? activeTabDescription({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","useFieldProps","RenderFields","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","TabsFieldComponent","props","$","field","t0","forceRender","t1","readOnly","readOnlyFromTopLevelProps","_path","pathFromProps","admin","t2","tabs","t3","t4","undefined","className","readOnlyFromAdmin","t5","indexPath","path","pathFromContext","readOnlyFromContext","schemaPath","siblingPermissions","readOnlyFromProps","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","t6","t7","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","t8","incomingTabIndex","existingPreferences_0","handleTabChange","activeTabConfig","t9","generateTabPath","tabPath","name","activeTabDescription","description","t10","t","activeTabStaticDescription","t11","t12","filter","Boolean","t13","join","t14","t15","tab","_jsx","isActive","parentPath","setIsActive","t16","_jsxs","label","children","Description","components","margins","permissions","map","TabsField"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentPreferences, TabsFieldClientComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { tabHasName, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field,\n field: {\n _path: pathFromProps,\n admin: { className, readOnly: readOnlyFromAdmin } = {},\n tabs = [],\n },\n forceRender = false,\n readOnly: readOnlyFromTopLevelProps,\n } = props\n\n const {\n indexPath,\n path: pathFromContext,\n readOnly: readOnlyFromContext,\n schemaPath,\n siblingPermissions,\n } = useFieldProps()\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const path = pathFromContext ?? pathFromProps\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0)\n const tabsPrefKey = `tabs-${indexPath}`\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n setActiveTabIndex(initialIndex || 0)\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [preferencesKey, getPreference, setPreference, path, tabsPrefKey],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n function generateTabPath() {\n let tabPath = path\n if (path && tabHasName(activeTabConfig) && activeTabConfig.name) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else if (!path && tabHasName(activeTabConfig) && activeTabConfig.name) {\n tabPath = activeTabConfig.name\n }\n\n return tabPath\n }\n\n const activeTabDescription = activeTabConfig.description\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ t: i18n.t })\n : activeTabDescription\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabs.map((tab, tabIndex) => {\n return (\n <TabComponent\n isActive={activeTabIndex === tabIndex}\n key={tabIndex}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(tabIndex)\n }}\n tab={tab}\n />\n )\n })}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <div\n className={[\n `${baseClass}__tab`,\n activeTabConfig.label &&\n `${baseClass}__tabConfigLabel-${toKebabCase(\n getTranslation(activeTabConfig.label, i18n),\n )}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <FieldDescription\n Description={field?.admin?.components?.Description}\n description={activeTabStaticDescription}\n field={field}\n />\n <RenderFields\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n key={\n activeTabConfig.label\n ? getTranslation(activeTabConfig.label, i18n)\n : activeTabConfig['name']\n }\n margins=\"small\"\n path={generateTabPath()}\n permissions={\n 'name' in activeTabConfig && siblingPermissions?.[activeTabConfig.name]?.fields\n ? siblingPermissions[activeTabConfig.name]?.fields\n : siblingPermissions\n }\n readOnly={readOnly}\n schemaPath={`${schemaPath ? `${schemaPath}` : ''}${tabHasName(activeTabConfig) && activeTabConfig.name ? `.${activeTabConfig.name}` : ''}`}\n />\n </div>\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","useFieldProps","RenderFields","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","TabsFieldComponent","props","$","field","t0","forceRender","t1","readOnly","readOnlyFromTopLevelProps","_path","pathFromProps","admin","t2","tabs","t3","t4","undefined","className","readOnlyFromAdmin","t5","indexPath","path","pathFromContext","readOnlyFromContext","schemaPath","siblingPermissions","readOnlyFromProps","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","t6","t7","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","t8","incomingTabIndex","existingPreferences_0","handleTabChange","activeTabConfig","t9","generateTabPath","tabPath","name","activeTabDescription","description","t10","t","activeTabStaticDescription","t11","t12","filter","Boolean","t13","join","t14","t15","tab","_jsx","isActive","parentPath","setIsActive","t16","_jsxs","label","children","Description","components","margins","permissions","map","TabsField"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentPreferences, TabsFieldClientComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { tabHasName, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field,\n field: {\n _path: pathFromProps,\n admin: { className, readOnly: readOnlyFromAdmin } = {},\n tabs = [],\n },\n forceRender = false,\n readOnly: readOnlyFromTopLevelProps,\n } = props\n\n const {\n indexPath,\n path: pathFromContext,\n readOnly: readOnlyFromContext,\n schemaPath,\n siblingPermissions,\n } = useFieldProps()\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const path = pathFromContext ?? pathFromProps\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0)\n const tabsPrefKey = `tabs-${indexPath}`\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n setActiveTabIndex(initialIndex || 0)\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [preferencesKey, getPreference, setPreference, path, tabsPrefKey],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n function generateTabPath() {\n let tabPath = path\n if (path && tabHasName(activeTabConfig) && activeTabConfig.name) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else if (!path && tabHasName(activeTabConfig) && activeTabConfig.name) {\n tabPath = activeTabConfig.name\n }\n\n return tabPath\n }\n\n const activeTabDescription = activeTabConfig?.description\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ t: i18n.t })\n : activeTabDescription\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabs.map((tab, tabIndex) => {\n return (\n <TabComponent\n isActive={activeTabIndex === tabIndex}\n key={tabIndex}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(tabIndex)\n }}\n tab={tab}\n />\n )\n })}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <div\n className={[\n `${baseClass}__tab`,\n activeTabConfig.label &&\n `${baseClass}__tabConfigLabel-${toKebabCase(\n getTranslation(activeTabConfig.label, i18n),\n )}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <FieldDescription\n Description={field?.admin?.components?.Description}\n description={activeTabStaticDescription}\n field={field}\n />\n <RenderFields\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n key={\n activeTabConfig.label\n ? getTranslation(activeTabConfig.label, i18n)\n : activeTabConfig['name']\n }\n margins=\"small\"\n path={generateTabPath()}\n permissions={\n 'name' in activeTabConfig && siblingPermissions?.[activeTabConfig.name]?.fields\n ? siblingPermissions[activeTabConfig.name]?.fields\n : siblingPermissions\n }\n readOnly={readOnly}\n schemaPath={`${schemaPath ? `${schemaPath}` : ''}${tabHasName(activeTabConfig) && activeTabConfig.name ? `.${activeTabConfig.name}` : ''}`}\n />\n </div>\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AASpD,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AASpD,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;AAgG5C,eAAO,MAAM,aAAa;wBAhGvB,MAAO,GAAG;yBAEF,MAAO,oBAAoB;;;;;;;oCA8F4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useFieldProps","useField","withCondition","useConfig","useLocale","useTranslation","isFieldRTL","TextareaInput","TextareaFieldComponent","props","$","descriptionProps","errorProps","field","t0","labelProps","readOnly","readOnlyFromTopLevelProps","validate","name","_path","pathFromProps","admin","t1","label","localized","maxLength","minLength","required","t2","undefined","className","description","placeholder","readOnlyFromAdmin","rows","rtl","style","width","readOnlyFromProps","i18n","locale","config","t3","localization","isRTL","fieldLocalized","fieldRTL","localizationConfig","t4","value","options","memoizedValidate","path","pathFromContext","readOnlyFromContext","t5","t6","formInitializing","formProcessing","setValue","showError","value_0","disabled","t7","e","target","_jsx","afterInput","components","beforeInput","Description","Error","Label","onChange","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientComponent, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport './index.scss'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: TextareaFieldClientComponent = (props) => {\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n className,\n description,\n placeholder,\n readOnly: readOnlyFromAdmin,\n rows,\n rtl,\n style,\n width,\n } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { i18n } = useTranslation()\n const locale = useLocale()\n\n const {\n config: { localization },\n } = useConfig()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField<string>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <TextareaInput\n afterInput={field?.admin?.components?.afterInput}\n beforeInput={field?.admin?.components?.beforeInput}\n className={className}\n Description={field?.admin?.components?.Description}\n description={description}\n descriptionProps={descriptionProps}\n Error={field?.admin?.components?.Error}\n errorProps={errorProps}\n label={label}\n Label={field?.admin?.components?.Label}\n labelProps={labelProps}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useFieldProps","useField","withCondition","useConfig","useLocale","useTranslation","isFieldRTL","TextareaInput","TextareaFieldComponent","props","$","descriptionProps","errorProps","field","t0","labelProps","readOnly","readOnlyFromTopLevelProps","validate","name","_path","pathFromProps","admin","t1","label","localized","maxLength","minLength","required","t2","undefined","className","description","placeholder","readOnlyFromAdmin","rows","rtl","style","width","readOnlyFromProps","i18n","locale","config","t3","localization","isRTL","fieldLocalized","fieldRTL","localizationConfig","t4","value","options","memoizedValidate","path","pathFromContext","readOnlyFromContext","t5","t6","formInitializing","formProcessing","setValue","showError","value_0","disabled","t7","e","target","_jsx","afterInput","components","beforeInput","Description","Error","Label","onChange","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientComponent, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport './index.scss'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: TextareaFieldClientComponent = (props) => {\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n className,\n description,\n placeholder,\n readOnly: readOnlyFromAdmin,\n rows,\n rtl,\n style,\n width,\n } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { i18n } = useTranslation()\n const locale = useLocale()\n\n const {\n config: { localization },\n } = useConfig()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField<string>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <TextareaInput\n afterInput={field?.admin?.components?.afterInput}\n beforeInput={field?.admin?.components?.beforeInput}\n className={className}\n Description={field?.admin?.components?.Description}\n description={description}\n descriptionProps={descriptionProps}\n Error={field?.admin?.components?.Error}\n errorProps={errorProps}\n field={field}\n label={label}\n Label={field?.admin?.components?.Label}\n labelProps={labelProps}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AACP,SAASC,aAAa,QAAQ;AAE9B,SAASA,aAAa;AAEtB,MAAMC,sBAAA,GAAuDC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC3D;IAAAe,gBAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAA,KAAA,EAAAC,EAAA;IAAAC,UAAA;IAAAC,QAAA,EAAAC,yBAAA;IAAAC;EAAA,IA0BIT,KAAA;EAtBK;IAAAU,IAAA;IAAAC,KAAA,EAAAC,aAAA;IAAAC,KAAA,EAAAC,EAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAd,EAkBN;EAAA,IAAAe,EAAA;EAAA,IAAAnB,CAAA,QAAAa,EAAA;IAfQM,EAAA,GAAAN,EASD,KAAAO,SAAA,QATCP,EASD;IAAAb,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EATC;IAAAqB,SAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAjB,QAAA,EAAAkB,iBAAA;IAAAC,IAAA;IAAAC,GAAA;IAAAC,KAAA;IAAAC;EAAA,IAAAT,EASD;EAYV,MAAAU,iBAAA,GAA0BtB,yBAAA,IAA6BiB,iBAAA;EAEvD;IAAAM;EAAA,IAAiBnC,cAAA;EACjB,MAAAoC,MAAA,GAAerC,SAAA;EAEf;IAAAsC,MAAA,EAAAC;EAAA,IAEIxC,SAAA;EADM;IAAAyC;EAAA,IAAAD,EAAgB;EAG1B,MAAAE,KAAA,GAAcvC,UAAA;IAAAwC,cAAA,EACIrB,SAAA;IAAAsB,QAAA,EACNX,GAAA;IAAAK,MAAA;IAAAO,kBAAA,EAEUJ,YAAA,IAAAd;EAAgB,CACtC;EAAA,IAAAmB,EAAA;EAAA,IAAAvC,CAAA,QAAAQ,QAAA,IAAAR,CAAA,QAAAgB,SAAA,IAAAhB,CAAA,QAAAiB,SAAA,IAAAjB,CAAA,QAAAkB,QAAA;IAGEqB,EAAA,GAAAA,CAAAC,KAAA,EAAAC,OAAA;MAAA,IACM,OAAOjC,QAAA,KAAa;QAAA,OACfA,QAAA,CAASgC,KAAA;UAAA,GAAYC,OAAO;UAAAzB,SAAA;UAAAC,SAAA;UAAAC;QAAA,CAAiC;MAAA;IAAA;IAExElB,CAAA,MAAAQ,QAAA;IAAAR,CAAA,MAAAgB,SAAA;IAAAhB,CAAA,MAAAiB,SAAA;IAAAjB,CAAA,MAAAkB,QAAA;IAAAlB,CAAA,MAAAuC,EAAA;EAAA;IAAAA,EAAA,GAAAvC,CAAA;EAAA;EALF,MAAA0C,gBAAA,GAAkDH,EAMN;EAG5C;IAAAI,IAAA,EAAAC,eAAA;IAAAtC,QAAA,EAAAuC;EAAA,IAAiEvD,aAAA;EAGzD,MAAAwD,EAAA,GAAAF,eAAA,IAAmBjC,aAAA,IAAiBF,IAAA;EAAA,IAAAsC,EAAA;EAAA,IAAA/C,CAAA,QAAA8C,EAAA,IAAA9C,CAAA,QAAA0C,gBAAA;IADoDK,EAAA;MAAAJ,IAAA,EACxFG,EAAoC;MAAAtC,QAAA,EAChCkC;IAAA;IACZ1C,CAAA,MAAA8C,EAAA;IAAA9C,CAAA,MAAA0C,gBAAA;IAAA1C,CAAA,MAAA+C,EAAA;EAAA;IAAAA,EAAA,GAAA/C,CAAA;EAAA;EAHA;IAAAgD,gBAAA;IAAAC,cAAA;IAAAN,IAAA;IAAAO,QAAA;IAAAC,SAAA;IAAAX,KAAA,EAAAY;EAAA,IAA+E7D,QAAA,CAAiBwD,EAGhG;EAEA,MAAAM,QAAA,GAAiBxB,iBAAA,IAAqBgB,mBAAA,IAAuBI,cAAA,IAAkBD,gBAAA;EAAA,IAAAM,EAAA;EAAA,IAAAtD,CAAA,SAAAkD,QAAA;IAgBjEI,EAAA,GAAAC,CAAA;MACRL,QAAA,CAASK,CAAA,CAAAC,MAAA,CAAAhB,KAAc;IAAA;IACzBxC,CAAA,OAAAkD,QAAA;IAAAlD,CAAA,OAAAsD,EAAA;EAAA;IAAAA,EAAA,GAAAtD,CAAA;EAAA;EAAA,OAfFyD,IAAA,CAAA5D,aAAA;IAAA6D,UAAA,EACcvD,KAAA,EAAAS,KAAA,EAAA+C,UAAA,EAAAD,UAAA;IAAAE,WAAA,EACCzD,KAAA,EAAAS,KAAA,EAAA+C,UAAA,EAAAC,WAAA;IAAAvC,SAAA;IAAAwC,WAAA,EAEA1D,KAAA,EAAAS,KAAA,EAAA+C,UAAA,EAAAE,WAAA;IAAAvC,WAAA;IAAArB,gBAAA;IAAA6D,KAAA,EAGN3D,KAAA,EAAAS,KAAA,EAAA+C,UAAA,EAAAG,KAAA;IAAA5D,UAAA;IAAAC,KAAA;IAAAW,KAAA;IAAAiD,KAAA,EAIA5D,KAAA,EAAAS,KAAA,EAAA+C,UAAA,EAAAI,KAAA;IAAA1D,UAAA;IAAA2D,QAAA,EAEGV,EAEV;IAAAX,IAAA;IAAApB,WAAA,EAEapC,cAAA,CAAeoC,WAAA,EAAaO,IAAA;IAAAxB,QAAA,EAC/B+C,QAAA;IAAAnC,QAAA;IAAAO,IAAA;IAAAC,GAAA,EAGLS,KAAA;IAAAgB,SAAA;IAAAxB,KAAA;IAAAa,KAAA,EAGEA,OAAA;IAAAZ;EAAA,C;CAIb;AAEA,OAAO,MAAMqC,aAAA,GAAgBzE,aAAA,CAAcM,sBAAA","ignoreList":[]}
|
|
@@ -44,7 +44,7 @@ export const ListQueryProvider = ({
|
|
|
44
44
|
const updatedPreferences = {};
|
|
45
45
|
let updatePreferences = false;
|
|
46
46
|
if ('limit' in query) {
|
|
47
|
-
updatedPreferences.limit = query.limit;
|
|
47
|
+
updatedPreferences.limit = Number(query.limit);
|
|
48
48
|
updatePreferences = true;
|
|
49
49
|
}
|
|
50
50
|
if ('sort' in query) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useState","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","params","paramsFromProps","preferenceKey","router","setPreference","searchParams","currentQuery","setParams","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","search","where","replace","stringify","addQueryPrefix","arg","String","undefined","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n readonly handlePageChange?: (page: number) => Promise<void> | void\n readonly handlePerPageChange?: (limit: number) => Promise<void> | void\n readonly handleSearchChange?: (search: string) => Promise<void> | void\n readonly handleSortChange?: (sort: string) => Promise<void> | void\n readonly handleWhereChange?: (where: Where) => Promise<void> | void\n}\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 params: RefineOverrides\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n /**\n * Used to manage the query params manually. If you pass this prop, the provider will not manage the query params from the searchParams.\n * Useful for modals or other components that need to manage the query params themselves.\n */\n readonly params?: RefineOverrides\n readonly preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n params: paramsFromProps,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const { searchParams: currentQuery } = useSearchParams()\n const [params, setParams] = useState(paramsFromProps || currentQuery)\n\n const refineListData = useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) {\n return\n }\n\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 = 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)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n preferenceKey,\n router,\n setPreference,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(search)\n }\n\n await refineListData({ search })\n },\n [handleSearchChangeFromProps, refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n useEffect(() => {\n if (paramsFromProps) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(paramsFromProps)\n } else {\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 // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery, paramsFromProps, params])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n params,\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","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useState","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","params","paramsFromProps","preferenceKey","router","setPreference","searchParams","currentQuery","setParams","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","Number","sort","search","where","replace","stringify","addQueryPrefix","arg","String","undefined","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n readonly handlePageChange?: (page: number) => Promise<void> | void\n readonly handlePerPageChange?: (limit: number) => Promise<void> | void\n readonly handleSearchChange?: (search: string) => Promise<void> | void\n readonly handleSortChange?: (sort: string) => Promise<void> | void\n readonly handleWhereChange?: (where: Where) => Promise<void> | void\n}\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 params: RefineOverrides\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n /**\n * Used to manage the query params manually. If you pass this prop, the provider will not manage the query params from the searchParams.\n * Useful for modals or other components that need to manage the query params themselves.\n */\n readonly params?: RefineOverrides\n readonly preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n params: paramsFromProps,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const { searchParams: currentQuery } = useSearchParams()\n const [params, setParams] = useState(paramsFromProps || currentQuery)\n\n const refineListData = useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) {\n return\n }\n\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)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n preferenceKey,\n router,\n setPreference,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(search)\n }\n\n await refineListData({ search })\n },\n [handleSearchChangeFromProps, refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n useEffect(() => {\n if (paramsFromProps) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(paramsFromProps)\n } else {\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 // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery, paramsFromProps, params])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n params,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|