@payloadcms/ui 3.49.0-canary.2 → 3.49.0-canary.4

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.
@@ -79,10 +79,10 @@ export const FolderTypeField = ({
79
79
  if (!readOnly || disabled) {
80
80
  let newValue = null;
81
81
  if (selectedOption && hasMany) {
82
- if (Array.isArray(selectedOption)) {
82
+ if (Array.isArray(selectedOption) && selectedOption.length > 0) {
83
83
  newValue = selectedOption.map(option => option.value);
84
84
  } else {
85
- newValue = [];
85
+ newValue = null;
86
86
  }
87
87
  } else if (selectedOption && !Array.isArray(selectedOption)) {
88
88
  newValue = selectedOption.value;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","mergeFieldStyles","formatOptions","SelectInput","useField","useFolder","useTranslation","FolderTypeField","options","allSelectOptions","props","field","name","admin","className","isClearable","isSortable","placeholder","hasMany","label","localized","required","onChange","onChangeFromProps","path","pathFromProps","readOnly","validate","t","folderType","useMemo","length","filter","option","value","includes","memoizedValidate","useCallback","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","selectFilterOptions","setValue","showError","potentiallyStalePath","selectedOption","newValue","Array","isArray","map","styles","_jsx","description","filterOption","some","undefined","style"],"sources":["../../../../src/elements/FolderView/FolderTypeField/index.tsx"],"sourcesContent":["import type { Option, OptionObject, SelectFieldClientProps } from 'payload'\n\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../ReactSelect/types.js'\n\nimport { mergeFieldStyles } from '../../../fields/mergeFieldStyles.js'\nimport { formatOptions } from '../../../fields/Select/index.js'\nimport { SelectInput } from '../../../fields/Select/Input.js'\nimport { useField } from '../../../forms/useField/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const FolderTypeField = ({\n options: allSelectOptions,\n ...props\n}: { options: Option[] } & SelectFieldClientProps) => {\n const {\n field,\n field: {\n name,\n admin: {\n className,\n isClearable = true,\n isSortable = true,\n placeholder,\n } = {} as SelectFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n required,\n },\n onChange: onChangeFromProps,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n const { t } = useTranslation()\n\n const { folderType } = useFolder()\n\n const options = React.useMemo(() => {\n if (!folderType || folderType.length === 0) {\n return formatOptions(allSelectOptions)\n }\n return formatOptions(\n allSelectOptions.filter((option) => {\n if (typeof option === 'object' && option.value) {\n return folderType.includes(option.value)\n }\n return true\n }),\n )\n }, [allSelectOptions, folderType])\n\n const memoizedValidate = React.useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, hasMany, options, required })\n }\n },\n [validate, required, hasMany, options],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n selectFilterOptions,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const onChange: ReactSelectAdapterProps['onChange'] = React.useCallback(\n (selectedOption: OptionObject | OptionObject[]) => {\n if (!readOnly || disabled) {\n let newValue: string | string[] = null\n if (selectedOption && hasMany) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else if (selectedOption && !Array.isArray(selectedOption)) {\n newValue = selectedOption.value\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n\n setValue(newValue)\n }\n },\n [readOnly, disabled, hasMany, setValue, onChangeFromProps],\n )\n\n const styles = React.useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div>\n <SelectInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={t('folder:folderTypeDescription')}\n Error={Error}\n filterOption={\n selectFilterOptions\n ? ({ value }) =>\n selectFilterOptions?.some(\n (option) => (typeof option === 'string' ? option : option.value) === value,\n )\n : undefined\n }\n hasMany={hasMany}\n isClearable={isClearable}\n isSortable={isSortable}\n Label={Label}\n label={label}\n localized={localized}\n name={name}\n onChange={onChange}\n options={options}\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required || (Array.isArray(folderType) && folderType.length > 0)}\n showError={showError}\n style={styles}\n value={value as string | string[]}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","mergeFieldStyles","formatOptions","SelectInput","useField","useFolder","useTranslation","FolderTypeField","options","allSelectOptions","props","field","name","admin","className","isClearable","isSortable","placeholder","hasMany","label","localized","required","onChange","onChangeFromProps","path","pathFromProps","readOnly","validate","t","folderType","useMemo","length","filter","option","value","includes","memoizedValidate","useCallback","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","selectFilterOptions","setValue","showError","potentiallyStalePath","selectedOption","newValue","Array","isArray","map","styles","_jsx","description","filterOption","some","undefined","style"],"sources":["../../../../src/elements/FolderView/FolderTypeField/index.tsx"],"sourcesContent":["import type { Option, OptionObject, SelectFieldClientProps } from 'payload'\n\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../ReactSelect/types.js'\n\nimport { mergeFieldStyles } from '../../../fields/mergeFieldStyles.js'\nimport { formatOptions } from '../../../fields/Select/index.js'\nimport { SelectInput } from '../../../fields/Select/Input.js'\nimport { useField } from '../../../forms/useField/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const FolderTypeField = ({\n options: allSelectOptions,\n ...props\n}: { options: Option[] } & SelectFieldClientProps) => {\n const {\n field,\n field: {\n name,\n admin: {\n className,\n isClearable = true,\n isSortable = true,\n placeholder,\n } = {} as SelectFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n required,\n },\n onChange: onChangeFromProps,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n const { t } = useTranslation()\n\n const { folderType } = useFolder()\n\n const options = React.useMemo(() => {\n if (!folderType || folderType.length === 0) {\n return formatOptions(allSelectOptions)\n }\n return formatOptions(\n allSelectOptions.filter((option) => {\n if (typeof option === 'object' && option.value) {\n return folderType.includes(option.value)\n }\n return true\n }),\n )\n }, [allSelectOptions, folderType])\n\n const memoizedValidate = React.useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, hasMany, options, required })\n }\n },\n [validate, required, hasMany, options],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n selectFilterOptions,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const onChange: ReactSelectAdapterProps['onChange'] = React.useCallback(\n (selectedOption: OptionObject | OptionObject[]) => {\n if (!readOnly || disabled) {\n let newValue: string | string[] = null\n if (selectedOption && hasMany) {\n if (Array.isArray(selectedOption) && selectedOption.length > 0) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = null\n }\n } else if (selectedOption && !Array.isArray(selectedOption)) {\n newValue = selectedOption.value\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n\n setValue(newValue)\n }\n },\n [readOnly, disabled, hasMany, setValue, onChangeFromProps],\n )\n\n const styles = React.useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div>\n <SelectInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={t('folder:folderTypeDescription')}\n Error={Error}\n filterOption={\n selectFilterOptions\n ? ({ value }) =>\n selectFilterOptions?.some(\n (option) => (typeof option === 'string' ? option : option.value) === value,\n )\n : undefined\n }\n hasMany={hasMany}\n isClearable={isClearable}\n isSortable={isSortable}\n Label={Label}\n label={label}\n localized={localized}\n name={name}\n onChange={onChange}\n options={options}\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required || (Array.isArray(folderType) && folderType.length > 0)}\n showError={showError}\n style={styles}\n value={value as string | string[]}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}