Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
7.6 KiB
Plaintext
1 line
7.6 KiB
Plaintext
{"version":3,"file":"index.js","names":["React","useCallback","useMemo","useField","withCondition","mergeFieldStyles","SelectInput","formatOptions","options","map","option","value","label","SelectFieldComponent","props","field","name","admin","className","description","isClearable","isSortable","placeholder","hasMany","localized","optionsFromProps","required","onChange","onChangeFromProps","path","pathFromProps","readOnly","validate","memoizedValidate","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","selectFilterOptions","setValue","showError","potentiallyStalePath","selectedOption","newValue","Array","isArray","styles","_jsx","filterOption","search","some","toLowerCase","includes","undefined","style","SelectField"],"sources":["../../../src/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type {\n Option,\n OptionObject,\n SelectFieldClientComponent,\n SelectFieldClientProps,\n} from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { SelectInputProps } from './Input.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { SelectInput } from './Input.js'\n\nexport const formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nconst SelectFieldComponent: SelectFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n admin: {\n className,\n description,\n isClearable = true,\n isSortable = true,\n placeholder,\n } = {} as SelectFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n options: optionsFromProps = [],\n required,\n },\n onChange: onChangeFromProps,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const options = React.useMemo(() => formatOptions(optionsFromProps), [optionsFromProps])\n\n const memoizedValidate = 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'] = 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 = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <SelectInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n filterOption={\n selectFilterOptions\n ? ({ label, value }, search) =>\n selectFilterOptions?.some(\n (option) => (typeof option === 'string' ? option : option.value) === value,\n ) && label.toLowerCase().includes(search.toLowerCase())\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}\n showError={showError}\n style={styles}\n value={value as string | string[]}\n />\n )\n}\n\nexport const SelectField = withCondition(SelectFieldComponent)\n\nexport { SelectInput, type SelectInputProps }\n"],"mappings":"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","ignoreList":[]} |