Files
klz-cables.com/.pnpm-store/v10/files/bc/cf41c15f6e7d6e4d97ad9ee98d8975caf78d43be0a1d3aa2031a3925d198d1e333cd1f0d5511e7a77729b0b51fb2a24f56acfa75550776e9aca8fce4592fc0
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
24 KiB
Plaintext

{"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimpleWithoutReactComponents","mergeServerFormState","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","newRows","newRowID","customComponents","RowLabel","newRowState","key","keys","filter","endsWith","idState","newNestedFieldID","isValid","parseInt","parentFieldPath","parentFieldRows","acceptValues","prevStateRef","serverState","currentState","incomingState","current","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","rowsMetadata","rowIndexArg","Math","max","min","undefined","collapsed","optimize","newField","oldField","sanitize","field","values","updatedRows","isModified","formState"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { mergeServerFormState } from './mergeServerFormState.js'\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n isLoading: true,\n }\n\n if (blockType) {\n newRow.blockType = blockType\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n /**\n * Duplicates a row in an array or blocks field.\n * It needs to manipulate two distinct parts of the form state:\n * - The `rows` property of the parent field, e.g. `array.rows`, `blocks.rows`, etc.\n * - The row's state, e.g. `array.0.id`, `array.0.text`, etc.\n */\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n\n // 1. Duplicate the `rows` property of the parent field, e.g. `array.rows`, `blocks.rows`, etc.\n const newRows = [...(state[path].rows || [])]\n\n const newRow = deepCopyObjectSimpleWithoutReactComponents(newRows[rowIndex])\n\n const newRowID = new ObjectId().toHexString()\n\n if (newRow.id) {\n newRow.id = newRowID\n }\n\n if (newRows[rowIndex]?.customComponents?.RowLabel) {\n newRow.customComponents = {\n RowLabel: newRows[rowIndex].customComponents.RowLabel,\n }\n }\n\n // 2. Duplicate the row's state, e.g. `array.0.id`, `array.0.text`, etc.\n const newRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n\n // Ensure that `id` in form state exactly matches the row id on the parent field\n if (newRowState.id) {\n newRowState.id.value = newRowID\n newRowState.id.initialValue = newRowID\n }\n\n // Generate new ids for all nested id fields, e.g. `array.0.nestedArray.0.id`\n for (const key of Object.keys(newRowState).filter((key) => key.endsWith('.id'))) {\n const idState = newRowState[key]\n\n const newNestedFieldID = new ObjectId().toHexString()\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n newRowState[key].value = newNestedFieldID\n newRowState[key].initialValue = newNestedFieldID\n\n // Apply the ID to its corresponding parent field's rows, e.g. `array.0.nestedArray.rows[0].id`\n const segments = key.split('.')\n const rowIndex = parseInt(segments[segments.length - 2], 10)\n const parentFieldPath = segments.slice(0, segments.length - 2).join('.')\n const parentFieldRows = newRowState?.[parentFieldPath]?.rows\n\n if (newRowState[parentFieldPath] && Array.isArray(parentFieldRows)) {\n if (!parentFieldRows[rowIndex]) {\n parentFieldRows[rowIndex] = {\n id: newNestedFieldID,\n }\n } else {\n parentFieldRows[rowIndex].id = newNestedFieldID\n }\n }\n }\n }\n\n // If there are subfields\n if (Object.keys(newRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, newRowState)\n newRows.splice(rowIndex + 1, 0, newRow)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: newRows,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MERGE_SERVER_STATE': {\n const { acceptValues, prevStateRef, serverState } = action\n\n const newState = mergeServerFormState({\n acceptValues,\n currentState: state || {},\n incomingState: serverState,\n })\n\n prevStateRef.current = newState\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n rows: rowsWithinField,\n },\n }\n\n return newState\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n // TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n ...(key === 'value' ? { isModified: true } : {}),\n }\n }\n\n return field\n },\n state?.[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n // reset `isModified` in all other fields\n if ('value' in action) {\n for (const [path, field] of Object.entries(newState)) {\n if (path !== action.path && 'isModified' in field) {\n delete newState[path].isModified\n }\n }\n }\n\n return newState\n }\n\n case 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}