@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":["getTranslation","isNumber","React","useCallback","useEffect","useMemo","useState","ReactSelect","RenderCustomComponent","useField","withCondition","useTranslation","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","NumberFieldComponent","props","field","admin","className","description","placeholder","step","hasMany","label","localized","max","Infinity","maxRows","min","required","onChange","onChangeFromProps","path","readOnly","validate","i18n","t","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","replace","disabled","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","name","onWheel","blur","type","NumberField"],"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["'use client'\nimport type { NumberFieldClientComponent, NumberFieldClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst NumberFieldComponent: NumberFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n className,\n description,\n placeholder,\n step = 1,\n } = {} as NumberFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n required,\n },\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField<number | number[]>({\n path,\n validate: memoizedValidate,\n })\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = null\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\n )\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!readOnly) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly}\n filterOption={(_, rawInput) => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n {BeforeInput}\n <input\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n {AfterInput}\n </div>\n )}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","isNumber","React","useCallback","useEffect","useMemo","useState","ReactSelect","RenderCustomComponent","useField","withCondition","useTranslation","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","NumberFieldComponent","props","field","admin","className","description","placeholder","step","hasMany","label","localized","max","Infinity","maxRows","min","required","onChange","onChangeFromProps","path","readOnly","validate","i18n","t","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","replace","disabled","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","name","onWheel","blur","type","NumberField"],"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["'use client'\nimport type { NumberFieldClientComponent, NumberFieldClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst NumberFieldComponent: NumberFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n className,\n description,\n placeholder,\n step = 1,\n } = {} as NumberFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n required,\n },\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField<number | number[]>({\n path,\n validate: memoizedValidate,\n })\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = null\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\n )\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!readOnly) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly}\n filterOption={(_, rawInput) => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n <input\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n </div>\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/RadioGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAUnD,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/RadioGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAUnD,OAAO,cAAc,CAAA;AA8HrB,eAAO,MAAM,eAAe;;;;;;;;+EAA0C,CAAA"}
|
|
@@ -50,6 +50,8 @@ const RadioGroupFieldComponent = props => {
|
|
|
50
50
|
}, [validate, options, required]);
|
|
51
51
|
const {
|
|
52
52
|
customComponents: {
|
|
53
|
+
AfterInput,
|
|
54
|
+
BeforeInput,
|
|
53
55
|
Description,
|
|
54
56
|
Error,
|
|
55
57
|
Label
|
|
@@ -82,7 +84,7 @@ const RadioGroupFieldComponent = props => {
|
|
|
82
84
|
})
|
|
83
85
|
}), /*#__PURE__*/_jsxs("div", {
|
|
84
86
|
className: `${fieldBaseClass}__wrap`,
|
|
85
|
-
children: [/*#__PURE__*/_jsx("ul", {
|
|
87
|
+
children: [BeforeInput, /*#__PURE__*/_jsx("ul", {
|
|
86
88
|
className: `${baseClass}--group`,
|
|
87
89
|
id: `field-${path.replace(/\./g, '__')}`,
|
|
88
90
|
children: options.map(option => {
|
|
@@ -116,7 +118,7 @@ const RadioGroupFieldComponent = props => {
|
|
|
116
118
|
})
|
|
117
119
|
}, `${path} - ${optionValue}`);
|
|
118
120
|
})
|
|
119
|
-
}), /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
121
|
+
}), AfterInput, /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
120
122
|
CustomComponent: Description,
|
|
121
123
|
Fallback: /*#__PURE__*/_jsx(FieldDescription, {
|
|
122
124
|
description: description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["optionIsObject","React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useField","withCondition","mergeFieldStyles","fieldBaseClass","Radio","baseClass","RadioGroupFieldComponent","props","disableModifyingForm","disableModifyingFormFromProps","field","admin","className","description","layout","label","localized","options","required","onChange","onChangeFromProps","path","readOnly","validate","value","valueFromProps","uuid","memoizedValidate","validationOptions","customComponents","Description","Error","Label","setValue","showError","valueFromContext","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","map","option","optionValue","isSelected","String","RadioGroupField"],"sources":["../../../src/fields/RadioGroup/index.tsx"],"sourcesContent":["'use client'\nimport type { RadioFieldClientComponent, RadioFieldClientProps } from 'payload'\n\nimport { optionIsObject } from 'payload/shared'\nimport React, { useCallback, useMemo } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { Radio } from './Radio/index.js'\n\nconst baseClass = 'radio-group'\n\nconst RadioGroupFieldComponent: RadioFieldClientComponent = (props) => {\n const {\n disableModifyingForm: disableModifyingFormFromProps,\n field,\n field: {\n admin: {\n className,\n description,\n layout = 'horizontal',\n } = {} as RadioFieldClientProps['field']['admin'],\n label,\n localized,\n options = [],\n required,\n } = {} as RadioFieldClientProps['field'],\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n value: valueFromProps,\n } = props\n\n const { uuid } = useForm()\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, options, required })\n }\n },\n [validate, options, required],\n )\n\n const {\n customComponents: { Description, Error, Label } = {},\n setValue,\n showError,\n value: valueFromContext,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const value = valueFromContext || valueFromProps\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n `${baseClass}--layout-${layout}`,\n showError && 'error',\n readOnly && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <ul className={`${baseClass}--group`} id={`field-${path.replace(/\\./g, '__')}`}>\n {options.map((option) => {\n let optionValue = ''\n\n if (optionIsObject(option)) {\n optionValue = option.value\n } else {\n optionValue = option\n }\n\n const isSelected = String(optionValue) === String(value)\n\n const id = `field-${path}-${optionValue}${uuid ? `-${uuid}` : ''}`\n\n return (\n <li key={`${path} - ${optionValue}`}>\n <Radio\n id={id}\n isSelected={isSelected}\n onChange={() => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(optionValue)\n }\n\n if (!readOnly) {\n setValue(optionValue, !!disableModifyingFormFromProps)\n }\n }}\n option={optionIsObject(option) ? option : { label: option, value: option }}\n path={path}\n readOnly={readOnly}\n uuid={uuid}\n />\n </li>\n )\n })}\n </ul>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const RadioGroupField = withCondition(RadioGroupFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,QAAQ;AAEtB,MAAMC,SAAA,GAAY;AAElB,MAAMC,wBAAA,GAAuDC,KAAA;EAC3D,MAAM;IACJC,oBAAA,EAAsBC,6BAA6B;IACnDC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QACLC,SAAS;QACTC,WAAW;QACXC,MAAA,GAAS;MAAY,CACtB,GAAG,CAAC,CAA4C;MACjDC,KAAK;MACLC,SAAS;MACTC,OAAA,GAAU,EAAE;MACZC;IAAQ,CACT,GAAG,CAAC,CAAmC;IACxCC,QAAA,EAAUC,iBAAiB;IAC3BC,IAAI;IACJC,QAAQ;IACRC,QAAQ;IACRC,KAAA,EAAOC;EAAc,CACtB,GAAGlB,KAAA;EAEJ,MAAM;IAAEmB;EAAI,CAAE,GAAG3B,OAAA;EAEjB,MAAM4B,gBAAA,GAAmBlC,WAAA,CACvB,CAAC+B,KAAA,EAAOI,iBAAA;IACN,IAAI,OAAOL,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASC,KAAA,EAAO;QAAE,GAAGI,iBAAiB;QAAEX,OAAA;QAASC;MAAS;IACnE;EACF,GACA,CAACK,QAAA,EAAUN,OAAA,EAASC,QAAA,CAAS;EAG/B,MAAM;IACJW,gBAAA,EAAkB;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["optionIsObject","React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useField","withCondition","mergeFieldStyles","fieldBaseClass","Radio","baseClass","RadioGroupFieldComponent","props","disableModifyingForm","disableModifyingFormFromProps","field","admin","className","description","layout","label","localized","options","required","onChange","onChangeFromProps","path","readOnly","validate","value","valueFromProps","uuid","memoizedValidate","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","valueFromContext","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","map","option","optionValue","isSelected","String","RadioGroupField"],"sources":["../../../src/fields/RadioGroup/index.tsx"],"sourcesContent":["'use client'\nimport type { RadioFieldClientComponent, RadioFieldClientProps } from 'payload'\n\nimport { optionIsObject } from 'payload/shared'\nimport React, { useCallback, useMemo } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { Radio } from './Radio/index.js'\n\nconst baseClass = 'radio-group'\n\nconst RadioGroupFieldComponent: RadioFieldClientComponent = (props) => {\n const {\n disableModifyingForm: disableModifyingFormFromProps,\n field,\n field: {\n admin: {\n className,\n description,\n layout = 'horizontal',\n } = {} as RadioFieldClientProps['field']['admin'],\n label,\n localized,\n options = [],\n required,\n } = {} as RadioFieldClientProps['field'],\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n value: valueFromProps,\n } = props\n\n const { uuid } = useForm()\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, options, required })\n }\n },\n [validate, options, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value: valueFromContext,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const value = valueFromContext || valueFromProps\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n `${baseClass}--layout-${layout}`,\n showError && 'error',\n readOnly && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n {BeforeInput}\n <ul className={`${baseClass}--group`} id={`field-${path.replace(/\\./g, '__')}`}>\n {options.map((option) => {\n let optionValue = ''\n\n if (optionIsObject(option)) {\n optionValue = option.value\n } else {\n optionValue = option\n }\n\n const isSelected = String(optionValue) === String(value)\n\n const id = `field-${path}-${optionValue}${uuid ? `-${uuid}` : ''}`\n\n return (\n <li key={`${path} - ${optionValue}`}>\n <Radio\n id={id}\n isSelected={isSelected}\n onChange={() => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(optionValue)\n }\n\n if (!readOnly) {\n setValue(optionValue, !!disableModifyingFormFromProps)\n }\n }}\n option={optionIsObject(option) ? option : { label: option, value: option }}\n path={path}\n readOnly={readOnly}\n uuid={uuid}\n />\n </li>\n )\n })}\n </ul>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const RadioGroupField = withCondition(RadioGroupFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAwB5F,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAwB5F,OAAO,cAAc,CAAA;AAsrBrB,eAAO,MAAM,iBAAiB;;;;;+EAA4C,CAAA"}
|
|
@@ -95,6 +95,8 @@ const RelationshipFieldComponent = props => {
|
|
|
95
95
|
}, [validate, required]);
|
|
96
96
|
const {
|
|
97
97
|
customComponents: {
|
|
98
|
+
AfterInput,
|
|
99
|
+
BeforeInput,
|
|
98
100
|
Description,
|
|
99
101
|
Error,
|
|
100
102
|
Label
|
|
@@ -479,7 +481,7 @@ const RelationshipFieldComponent = props => {
|
|
|
479
481
|
path: path,
|
|
480
482
|
showError: showError
|
|
481
483
|
})
|
|
482
|
-
}), !errorLoading && /*#__PURE__*/_jsxs("div", {
|
|
484
|
+
}), BeforeInput, !errorLoading && /*#__PURE__*/_jsxs("div", {
|
|
483
485
|
className: `${baseClass}__wrap`,
|
|
484
486
|
children: [/*#__PURE__*/_jsx(ReactSelect, {
|
|
485
487
|
backspaceRemovesValue: !isDrawerOpen,
|
|
@@ -568,7 +570,7 @@ const RelationshipFieldComponent = props => {
|
|
|
568
570
|
}), errorLoading && /*#__PURE__*/_jsx("div", {
|
|
569
571
|
className: `${baseClass}__error-loading`,
|
|
570
572
|
children: errorLoading
|
|
571
|
-
}), /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
573
|
+
}), AfterInput, /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
572
574
|
CustomComponent: Description,
|
|
573
575
|
Fallback: /*#__PURE__*/_jsx(FieldDescription, {
|
|
574
576
|
description: description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useMemo","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","mergeFieldStyles","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","field","admin","allowCreate","allowEdit","className","description","isSortable","sortOptions","hasMany","label","localized","relationTo","required","path","readOnly","validate","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","customComponents","Description","Error","Label","filterOptions","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","currentValue","docId","unchanged","some","valuesToSet","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","labelString","String","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","styles","_jsxs","Boolean","join","replace","style","_jsx","CustomComponent","Fallback","backspaceRemovesValue","components","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport './index.scss'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n allowCreate = true,\n allowEdit = true,\n className,\n description,\n isSortable = true,\n sortOptions,\n } = {},\n hasMany,\n label,\n localized,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { Description, Error, Label } = {},\n filterOptions,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of form state and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n const currentValue = valueRef.current\n const docId = args.doc.id\n\n if (hasMany) {\n const unchanged = (currentValue as Option[]).some((option) =>\n typeof option === 'string' ? option === docId : option.value === docId,\n )\n\n const valuesToSet = (currentValue as Option[]).map((option) =>\n option.value === docId\n ? { relationTo: args.collectionConfig.slug, value: docId }\n : option,\n )\n\n setValue(valuesToSet, unchanged)\n } else {\n const unchanged = currentValue === docId\n\n setValue({ relationTo: args.collectionConfig.slug, value: docId }, unchanged)\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let labelString = String(item.label)\n // strings less than breakApartThreshold length won't be chunked\n while (labelString.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = labelString.indexOf(' ', searchFilter.length)\n if (\n r.test(labelString.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))\n ) {\n return true\n }\n labelString = labelString.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(labelString.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ allowEdit, options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : (option.value as string)\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useMemo","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","mergeFieldStyles","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","field","admin","allowCreate","allowEdit","className","description","isSortable","sortOptions","hasMany","label","localized","relationTo","required","path","readOnly","validate","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","filterOptions","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","currentValue","docId","unchanged","some","valuesToSet","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","labelString","String","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","styles","_jsxs","Boolean","join","replace","style","_jsx","CustomComponent","Fallback","backspaceRemovesValue","components","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport './index.scss'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n allowCreate = true,\n allowEdit = true,\n className,\n description,\n isSortable = true,\n sortOptions,\n } = {},\n hasMany,\n label,\n localized,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n filterOptions,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of form state and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n const currentValue = valueRef.current\n const docId = args.doc.id\n\n if (hasMany) {\n const unchanged = (currentValue as Option[]).some((option) =>\n typeof option === 'string' ? option === docId : option.value === docId,\n )\n\n const valuesToSet = (currentValue as Option[]).map((option) =>\n option.value === docId\n ? { relationTo: args.collectionConfig.slug, value: docId }\n : option,\n )\n\n setValue(valuesToSet, unchanged)\n } else {\n const unchanged = currentValue === docId\n\n setValue({ relationTo: args.collectionConfig.slug, value: docId }, unchanged)\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let labelString = String(item.label)\n // strings less than breakApartThreshold length won't be chunked\n while (labelString.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = labelString.indexOf(' ', searchFilter.length)\n if (\n r.test(labelString.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))\n ) {\n return true\n }\n labelString = labelString.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(labelString.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ allowEdit, options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : (option.value as string)\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
|
+
import type { ClientField, SanitizedFieldPermissions, StaticDescription } from 'payload';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import './index.scss';
|
|
3
4
|
import { TabsProvider } from './provider.js';
|
|
5
|
+
export declare const baseClass = "tabs-field";
|
|
4
6
|
export { TabsProvider };
|
|
5
7
|
export declare const TabsField: React.FC<import("payload").FieldPaths & Pick<import("payload").ServerFieldBase, "permissions"> & {
|
|
6
8
|
readonly field: Omit<import("payload").TabsFieldClient, "type"> & Partial<Pick<import("payload").TabsFieldClient, "type">>;
|
|
7
9
|
} & Omit<import("payload").ClientComponentProps, "field" | "customComponents">>;
|
|
10
|
+
type ActiveTabProps = {
|
|
11
|
+
description: StaticDescription;
|
|
12
|
+
fields: ClientField[];
|
|
13
|
+
forceRender?: boolean;
|
|
14
|
+
label?: string;
|
|
15
|
+
parentIndexPath: string;
|
|
16
|
+
parentPath: string;
|
|
17
|
+
parentSchemaPath: string;
|
|
18
|
+
path: string;
|
|
19
|
+
permissions: SanitizedFieldPermissions;
|
|
20
|
+
readOnly: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare function ActiveTabContent({ description, fields, forceRender, label, parentIndexPath, parentPath, parentSchemaPath, path, permissions, readOnly, }: ActiveTabProps): string | number | bigint | true | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | React.JSX.Element;
|
|
8
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAGX,yBAAyB,EACzB,iBAAiB,EAElB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA2C,MAAM,OAAO,CAAA;AAY/D,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,eAAO,MAAM,SAAS,eAAe,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,CAAA;AAuLvB,eAAO,MAAM,SAAS;;+EAAoC,CAAA;AAE1D,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AACD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,MAAM,EACN,WAAW,EACX,KAAK,EACL,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,IAAI,EACJ,WAAW,EACX,QAAQ,GACT,EAAE,cAAc,0PAoChB"}
|
|
@@ -18,7 +18,7 @@ import { fieldBaseClass } from '../shared/index.js';
|
|
|
18
18
|
import './index.scss';
|
|
19
19
|
import { TabsProvider } from './provider.js';
|
|
20
20
|
import { TabComponent } from './Tab/index.js';
|
|
21
|
-
const baseClass = 'tabs-field';
|
|
21
|
+
export const baseClass = 'tabs-field';
|
|
22
22
|
export { TabsProvider };
|
|
23
23
|
function generateTabPath({
|
|
24
24
|
activeTabConfig,
|
|
@@ -334,7 +334,7 @@ const TabsFieldComponent = props => {
|
|
|
334
334
|
return t21;
|
|
335
335
|
};
|
|
336
336
|
export const TabsField = withCondition(TabsFieldComponent);
|
|
337
|
-
function ActiveTabContent(t0) {
|
|
337
|
+
export function ActiveTabContent(t0) {
|
|
338
338
|
const $ = _c(20);
|
|
339
339
|
const {
|
|
340
340
|
description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","generateTabPath","activeTabConfig","path","tabPath","name","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","t5","permissions","readOnly","admin","t6","tabs","t7","t8","undefined","className","t9","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","t10","activeTabPath","setActiveTabPath","t11","activePathChildrenPath","t12","activeTabSchemaPath","setActiveTabSchemaPath","t13","activePathSchemaChildrenPath","t14","t15","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","newIndex","t16","incomingTabIndex","existingPreferences_0","handleTabChange","activeTabDescription","description","t17","t","activeTabStaticDescription","t18","t19","filter","Boolean","t20","join","t21","t22","tab","_jsx","isActive","setIsActive","t23","ActiveTabContent","parentIndexPath","String","children","_jsxs","map","TabsField","label","customComponents","AfterInput","BeforeInput","Description","Field","CustomComponent","Fallback"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientField,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} 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 { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/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\nfunction generateTabPath({ activeTabConfig, path }: { activeTabConfig: ClientTab; path: string }) {\n let tabPath = path\n\n if (tabHasName(activeTabConfig) && activeTabConfig.name) {\n if (path) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else {\n tabPath = activeTabConfig.name\n }\n }\n\n return tabPath\n}\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n } = props\n\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 const [activeTabPath, setActiveTabPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[activeTabIndex], path: parentPath }),\n )\n\n const activePathChildrenPath = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath\n\n const [activeTabSchemaPath, setActiveTabSchemaPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[0], path: parentSchemaPath }),\n )\n\n const activePathSchemaChildrenPath = tabHasName(tabs[activeTabIndex])\n ? activeTabSchemaPath\n : parentSchemaPath\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\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n\n setActiveTabPath(generateTabPath({ activeTabConfig: tabs[newIndex], path: parentPath }))\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[newIndex], path: parentSchemaPath }),\n )\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n setActiveTabPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentPath }),\n )\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentSchemaPath }),\n )\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 [\n tabs,\n parentPath,\n parentSchemaPath,\n getPreference,\n preferencesKey,\n setPreference,\n path,\n tabsPrefKey,\n ],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n const activeTabDescription = activeTabConfig.description\n\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 <ActiveTabContent\n description={activeTabStaticDescription}\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n parentIndexPath={\n tabHasName(activeTabConfig)\n ? ''\n : `${indexPath ? indexPath + '-' : ''}` + String(activeTabIndex)\n }\n parentPath={activePathChildrenPath}\n parentSchemaPath={activePathSchemaChildrenPath}\n path={activeTabPath}\n permissions={\n 'name' in activeTabConfig && permissions?.[activeTabConfig.name]?.fields\n ? permissions[activeTabConfig.name].fields\n : permissions\n }\n readOnly={readOnly}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n description: StaticDescription\n fields: ClientField[]\n forceRender?: boolean\n label?: string\n parentIndexPath: string\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n}\nfunction ActiveTabContent({\n description,\n fields,\n forceRender,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n readOnly,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {} } = useField({\n path,\n })\n\n if (Field) {\n return Field\n }\n\n return (\n <div\n className={[\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n {BeforeInput}\n <RenderFields\n fields={fields}\n forceRender={forceRender}\n parentIndexPath={parentIndexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","generateTabPath","activeTabConfig","path","tabPath","name","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","t5","permissions","readOnly","admin","t6","tabs","t7","t8","undefined","className","t9","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","t10","activeTabPath","setActiveTabPath","t11","activePathChildrenPath","t12","activeTabSchemaPath","setActiveTabSchemaPath","t13","activePathSchemaChildrenPath","t14","t15","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","newIndex","t16","incomingTabIndex","existingPreferences_0","handleTabChange","activeTabDescription","description","t17","t","activeTabStaticDescription","t18","t19","filter","Boolean","t20","join","t21","t22","tab","_jsx","isActive","setIsActive","t23","ActiveTabContent","parentIndexPath","String","children","_jsxs","map","TabsField","label","customComponents","AfterInput","BeforeInput","Description","Field","CustomComponent","Fallback"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientField,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} 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 { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/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\nexport const baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nfunction generateTabPath({ activeTabConfig, path }: { activeTabConfig: ClientTab; path: string }) {\n let tabPath = path\n\n if (tabHasName(activeTabConfig) && activeTabConfig.name) {\n if (path) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else {\n tabPath = activeTabConfig.name\n }\n }\n\n return tabPath\n}\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n } = props\n\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 const [activeTabPath, setActiveTabPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[activeTabIndex], path: parentPath }),\n )\n\n const activePathChildrenPath = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath\n\n const [activeTabSchemaPath, setActiveTabSchemaPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[0], path: parentSchemaPath }),\n )\n\n const activePathSchemaChildrenPath = tabHasName(tabs[activeTabIndex])\n ? activeTabSchemaPath\n : parentSchemaPath\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\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n\n setActiveTabPath(generateTabPath({ activeTabConfig: tabs[newIndex], path: parentPath }))\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[newIndex], path: parentSchemaPath }),\n )\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n setActiveTabPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentPath }),\n )\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentSchemaPath }),\n )\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 [\n tabs,\n parentPath,\n parentSchemaPath,\n getPreference,\n preferencesKey,\n setPreference,\n path,\n tabsPrefKey,\n ],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n const activeTabDescription = activeTabConfig.description\n\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 <ActiveTabContent\n description={activeTabStaticDescription}\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n parentIndexPath={\n tabHasName(activeTabConfig)\n ? ''\n : `${indexPath ? indexPath + '-' : ''}` + String(activeTabIndex)\n }\n parentPath={activePathChildrenPath}\n parentSchemaPath={activePathSchemaChildrenPath}\n path={activeTabPath}\n permissions={\n 'name' in activeTabConfig && permissions?.[activeTabConfig.name]?.fields\n ? permissions[activeTabConfig.name].fields\n : permissions\n }\n readOnly={readOnly}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n description: StaticDescription\n fields: ClientField[]\n forceRender?: boolean\n label?: string\n parentIndexPath: string\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n}\nexport function ActiveTabContent({\n description,\n fields,\n forceRender,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n readOnly,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {} } = useField({\n path,\n })\n\n if (Field) {\n return Field\n }\n\n return (\n <div\n className={[\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n {BeforeInput}\n <RenderFields\n fields={fields}\n forceRender={forceRender}\n parentIndexPath={parentIndexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,8 @@ import { isNumber } from 'payload/shared';
|
|
|
6
6
|
import * as qs from 'qs-esm';
|
|
7
7
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
8
8
|
import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
|
|
9
|
+
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
9
10
|
import { usePreferences } from '../Preferences/index.js';
|
|
10
|
-
import { createParams } from '../SearchParams/index.js';
|
|
11
11
|
const Context = /*#__PURE__*/createContext({});
|
|
12
12
|
export const useListQuery = () => {
|
|
13
13
|
return useContext(Context);
|
|
@@ -29,7 +29,7 @@ export const ListQueryProvider = ({
|
|
|
29
29
|
setPreference
|
|
30
30
|
} = usePreferences();
|
|
31
31
|
const rawSearchParams = useSearchParams();
|
|
32
|
-
const searchParams = useMemo(() =>
|
|
32
|
+
const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams]);
|
|
33
33
|
const {
|
|
34
34
|
onQueryChange
|
|
35
35
|
} = useListDrawerContext();
|