Files
klz-cables.com/.pnpm-store/v10/files/b4/3499ed1bb917cc3b3b297439565291cf0ef2122d7602b4551f839754bafb8a0f8a44083e8c8f1b1005348efe2866a8b5081cad3d644eb618f4b3fabfc9e8ce
Marc Mintel 5397309103
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
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
9.8 KiB
Plaintext

{"version":3,"file":"optionsReducer.js","names":["getTranslation","formatDocTitle","reduceToIDs","options","reduce","ids","option","id","value","relationTo","sortOptions","sort","a","b","label","localeCompare","optionsReducer","state","action","type","collection","config","docs","i18n","relation","slug","loadedIDs","newOptions","optionsToAddTo","find","optionGroup","labels","plural","newSubOptions","docSubOptions","doc","filter","item","length","push","docTitle","collectionConfig","data","dateFormat","admin","fallback","t","forEach","allowEdit","subOptions","exemptValues","Array","isArray","clearedStateWithExemptValues","clearedOptions","some","exemptValue","indexOfGroup","findIndex","foundOptionGroup","foundOption"],"sources":["../../../src/fields/Relationship/optionsReducer.ts"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { Action, Option, OptionGroup } from './types.js'\n\nimport { formatDocTitle } from '../../utilities/formatDocTitle/index.js'\n\nconst reduceToIDs = (options) =>\n options.reduce((ids, option) => {\n if (option.options) {\n return [...ids, ...reduceToIDs(option.options)]\n }\n\n return [...ids, { id: option.value, relationTo: option.relationTo }]\n }, [])\n\nconst sortOptions = (options: Option[]): Option[] =>\n options.sort((a: Option, b: Option) => {\n if (\n typeof a?.label?.localeCompare === 'function' &&\n typeof b?.label?.localeCompare === 'function'\n ) {\n return a.label.localeCompare(b.label)\n }\n\n return 0\n })\n\nexport const optionsReducer = (state: OptionGroup[], action: Action): OptionGroup[] => {\n switch (action.type) {\n case 'ADD': {\n const { collection, config, docs, i18n, ids = [], sort } = action\n const relation = collection.slug\n const loadedIDs = reduceToIDs(state)\n const newOptions = [...state]\n const optionsToAddTo = newOptions.find(\n (optionGroup) => optionGroup.label === collection.labels.plural,\n )\n const newSubOptions = docs.reduce((docSubOptions, doc) => {\n if (\n loadedIDs.filter((item) => item.id === doc.id && item.relationTo === relation).length ===\n 0\n ) {\n loadedIDs.push({ id: doc.id, relationTo: relation })\n\n const docTitle = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: `${i18n.t('general:untitled')} - ID: ${doc.id}`,\n i18n,\n })\n\n return [\n ...docSubOptions,\n {\n label: docTitle,\n relationTo: relation,\n value: doc.id,\n },\n ]\n }\n\n return docSubOptions\n }, [])\n\n ids.forEach((id) => {\n if (\n loadedIDs.filter((item) => item.id === id && item.relationTo === relation).length === 0\n ) {\n loadedIDs.push({ id, relationTo: relation })\n newSubOptions.push({\n allowEdit: false,\n label: `${i18n.t('general:untitled')} - ID: ${id}`,\n relationTo: relation,\n value: id,\n })\n }\n })\n\n if (optionsToAddTo) {\n const subOptions = [...optionsToAddTo.options, ...newSubOptions]\n\n optionsToAddTo.options = sort ? sortOptions(subOptions) : subOptions\n } else {\n newOptions.push({\n label: getTranslation(collection.labels.plural, i18n),\n options: sort ? sortOptions(newSubOptions) : newSubOptions,\n })\n }\n\n return newOptions\n }\n\n case 'CLEAR': {\n const exemptValues = action.exemptValues\n ? Array.isArray(action.exemptValues)\n ? action.exemptValues\n : [action.exemptValues]\n : []\n\n const clearedStateWithExemptValues = state.filter((optionGroup) => {\n const clearedOptions = optionGroup.options.filter((option) => {\n if (exemptValues) {\n return exemptValues.some((exemptValue) => {\n return exemptValue && option.value === exemptValue.value\n })\n }\n\n return false\n })\n\n optionGroup.options = clearedOptions\n\n return clearedOptions.length > 0\n })\n\n return clearedStateWithExemptValues\n }\n\n case 'REMOVE': {\n const { id, collection } = action\n\n const newOptions = [...state]\n\n const indexOfGroup = newOptions.findIndex(\n (optionGroup) => optionGroup.label === collection.labels.plural,\n )\n\n if (indexOfGroup === -1) {\n return newOptions\n }\n\n newOptions[indexOfGroup] = {\n ...newOptions[indexOfGroup],\n options: newOptions[indexOfGroup].options.filter((option) => option.value !== id),\n }\n\n return newOptions\n }\n\n case 'UPDATE': {\n const { collection, config, doc, i18n } = action\n const relation = collection.slug\n const newOptions = [...state]\n\n const docTitle = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: `${i18n.t('general:untitled')} - ID: ${doc.id}`,\n i18n,\n })\n\n const foundOptionGroup = newOptions.find(\n (optionGroup) => optionGroup.label === collection.labels.plural,\n )\n const foundOption = foundOptionGroup?.options?.find((option) => option.value === doc.id)\n\n if (foundOption) {\n foundOption.label = docTitle\n foundOption.relationTo = relation\n }\n\n return newOptions\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}