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
13 KiB
Plaintext
1 line
13 KiB
Plaintext
{"version":3,"file":"index.js","names":["React","useCallback","useMemo","useField","withCondition","mergeFieldStyles","RelationshipInput","RelationshipFieldComponent","props","field","admin","allowCreate","allowEdit","appearance","className","description","isSortable","placeholder","sortOptions","hasMany","label","localized","relationTo","relationToProp","required","path","pathFromProps","readOnly","validate","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","filterOptions","initialValue","setValue","showError","potentiallyStalePath","styles","isPolymorphic","Array","isArray","useState","handleChangeHasMulti","newValue","disableFormModification","length","every","val","idx","newVal","dataToSet","map","handleChangeSingle","memoizedValue","memoizedInitialValue","_jsx","formatDisplayedOptions","undefined","options","opt","flat","maxResultsPerRequest","maxRows","minRows","style","onChange","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { RelationshipFieldClientComponent, ValueWithRelation } from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { Value } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { RelationshipInput } from './Input.js'\nimport './index.scss'\n\nexport { RelationshipInput }\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n allowCreate = true,\n allowEdit = true,\n appearance = 'select',\n className,\n description,\n isSortable = true,\n placeholder,\n sortOptions,\n } = {},\n hasMany,\n label,\n localized,\n relationTo: relationToProp,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\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 disabled,\n filterOptions,\n initialValue,\n path,\n setValue,\n showError,\n value,\n } = useField<Value>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n const isPolymorphic = Array.isArray(relationToProp)\n const [relationTo] = React.useState(() =>\n Array.isArray(relationToProp) ? relationToProp : [relationToProp],\n )\n\n const handleChangeHasMulti = useCallback(\n (newValue: ValueWithRelation[]) => {\n if (!newValue) {\n setValue(null, newValue === value)\n return\n }\n\n let disableFormModification = false\n if (isPolymorphic) {\n disableFormModification =\n Array.isArray(value) &&\n Array.isArray(newValue) &&\n value.length === newValue.length &&\n (value as ValueWithRelation[]).every((val, idx) => {\n const newVal = newValue[idx]\n return val.value === newVal.value && val.relationTo === newVal.relationTo\n })\n } else {\n disableFormModification =\n Array.isArray(value) &&\n Array.isArray(newValue) &&\n value.length === newValue.length &&\n value.every((val, idx) => val === newValue[idx].value)\n }\n\n const dataToSet = newValue.map((val) => {\n if (isPolymorphic) {\n return val\n } else {\n return val.value\n }\n })\n\n setValue(dataToSet, disableFormModification)\n },\n [isPolymorphic, setValue, value],\n )\n\n const handleChangeSingle = useCallback(\n (newValue: ValueWithRelation) => {\n if (!newValue) {\n setValue(null, newValue === value)\n return\n }\n\n let disableFormModification = false\n if (isPolymorphic) {\n disableFormModification =\n value &&\n newValue &&\n (value as ValueWithRelation).value === newValue.value &&\n (value as ValueWithRelation).relationTo === newValue.relationTo\n } else {\n disableFormModification = value && newValue && value === newValue.value\n }\n\n const dataToSet = isPolymorphic ? newValue : newValue.value\n setValue(dataToSet, disableFormModification)\n },\n [isPolymorphic, setValue, value],\n )\n\n const memoizedValue: ValueWithRelation | ValueWithRelation[] = React.useMemo(() => {\n if (hasMany === true) {\n return (\n Array.isArray(value)\n ? value.map((val) => {\n return isPolymorphic\n ? val\n : {\n relationTo: Array.isArray(relationTo) ? relationTo[0] : relationTo,\n value: val,\n }\n })\n : value\n ) as ValueWithRelation[]\n } else {\n return (\n value\n ? isPolymorphic\n ? value\n : {\n relationTo: Array.isArray(relationTo) ? relationTo[0] : relationTo,\n value,\n }\n : value\n ) as ValueWithRelation\n }\n }, [hasMany, value, isPolymorphic, relationTo])\n\n const memoizedInitialValue: ValueWithRelation | ValueWithRelation[] = React.useMemo(() => {\n if (hasMany === true) {\n return (\n Array.isArray(initialValue)\n ? initialValue.map((val) => {\n return isPolymorphic\n ? val\n : {\n relationTo: Array.isArray(relationTo) ? relationTo[0] : relationTo,\n value: val,\n }\n })\n : initialValue\n ) as ValueWithRelation[]\n } else {\n return (\n initialValue\n ? isPolymorphic\n ? initialValue\n : {\n relationTo: Array.isArray(relationTo) ? relationTo[0] : relationTo,\n value: initialValue,\n }\n : initialValue\n ) as ValueWithRelation\n }\n }, [initialValue, isPolymorphic, relationTo, hasMany])\n\n return (\n <RelationshipInput\n AfterInput={AfterInput}\n allowCreate={allowCreate}\n allowEdit={allowEdit}\n appearance={appearance}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n filterOptions={filterOptions}\n formatDisplayedOptions={\n isPolymorphic ? undefined : (options) => options.map((opt) => opt.options).flat()\n }\n isSortable={isSortable}\n Label={Label}\n label={label}\n localized={localized}\n maxResultsPerRequest={10}\n maxRows={field?.maxRows}\n minRows={field?.minRows}\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n relationTo={relationTo}\n required={required}\n showError={showError}\n sortOptions={sortOptions as any}\n style={styles}\n {...(hasMany === true\n ? {\n hasMany: true,\n initialValue: memoizedInitialValue as ValueWithRelation[],\n onChange: handleChangeHasMulti,\n value: memoizedValue as ValueWithRelation[],\n }\n : {\n hasMany: false,\n initialValue: memoizedInitialValue as ValueWithRelation,\n onChange: handleChangeSingle,\n value: memoizedValue as ValueWithRelation,\n })}\n />\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]} |