@strapi/content-type-builder 5.31.3 → 5.32.0
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.
- package/dist/admin/components/AIChat/Chat.js +3 -1
- package/dist/admin/components/AIChat/Chat.js.map +1 -1
- package/dist/admin/components/AIChat/Chat.mjs +4 -2
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.js +4 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs +5 -2
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.js +3 -2
- package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs +3 -2
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
- package/dist/admin/components/CTBSession/CTBSessionProvider.js +49 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs +46 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -0
- package/dist/admin/components/CTBSession/sessionContext.js +8 -0
- package/dist/admin/components/CTBSession/sessionContext.js.map +1 -0
- package/dist/admin/components/CTBSession/sessionContext.mjs +6 -0
- package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -0
- package/dist/admin/components/CTBSession/useCTBSession.js +25 -0
- package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -0
- package/dist/admin/components/CTBSession/useCTBSession.mjs +23 -0
- package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -0
- package/dist/admin/components/CTBSession/useCTBTracking.js +37 -0
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -0
- package/dist/admin/components/CTBSession/useCTBTracking.mjs +35 -0
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +4 -2
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +4 -2
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +40 -3
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +41 -4
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js +3 -1
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +4 -2
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +14 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +14 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
- package/dist/admin/components/List.js +3 -1
- package/dist/admin/components/List.js.map +1 -1
- package/dist/admin/components/List.mjs +4 -2
- package/dist/admin/components/List.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +40 -37
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs +40 -37
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListView.js +10 -1
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.mjs +11 -2
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
- package/dist/admin/src/components/CTBSession/CTBSessionProvider.d.ts +26 -0
- package/dist/admin/src/components/CTBSession/ctbSession.d.ts +5 -0
- package/dist/admin/src/components/CTBSession/sessionContext.d.ts +25 -0
- package/dist/admin/src/components/CTBSession/useCTBSession.d.ts +12 -0
- package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +13 -0
- package/dist/server/controllers/content-types.js +6 -0
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +6 -0
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +1 -1
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +1 -1
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModal.js","sources":["../../../../admin/src/components/FormModal/FormModal.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport {\n useStrapiApp,\n useTracking,\n useNotification,\n ConfirmDialog,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs, Box, Typography, Dialog } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { ConditionForm } from './attributes/ConditionForm';\nimport { forms } from './forms/forms';\nimport { actions, initialState, type State as FormModalState } from './reducer';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { ContentType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_formModal'] || initialState) as FormModalState;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector(selectState, shallowEqual);\n\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const dispatchGuidedTour = useGuidedTour('FormModal', (s) => s.dispatch);\n\n const {\n addAttribute,\n editAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n createComponentSchema,\n deleteComponent,\n deleteContentType,\n editCustomFieldAttribute,\n updateSchema,\n nestedComponents,\n sortedContentTypesList,\n updateComponentSchema,\n updateComponentUid,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];\n\n const [showWarningDialog, setShowWarningDialog] = useState(false);\n const [pendingSubmit, setPendingSubmit] = useState<any>(null);\n\n const checkFieldNameChanges = () => {\n // Only check when editing an attribute\n if (actionType !== 'edit' || modalType !== 'attribute') {\n return false;\n }\n\n const oldName = initialData.name;\n const oldEnum = initialData.enum;\n const newEnum = modifiedData.enum;\n\n // Get all attributes from the content type schema\n const contentTypeAttributes = type?.attributes || [];\n\n // Find all fields that reference this field in their conditions\n const referencedFields = contentTypeAttributes.filter((attr: any) => {\n if (!attr.conditions) return false;\n\n const condition = attr.conditions.visible;\n if (!condition) return false;\n\n const [[, conditions]] = Object.entries(condition);\n const [fieldVar, value] = conditions as [{ var: string }, any];\n\n // Check if this condition references our field\n if (fieldVar.var !== oldName) return false;\n\n // If it's an enum field, also check if the value is being deleted/changed\n if (oldEnum && newEnum) {\n const deletedOrChangedValues = oldEnum.filter(\n (oldValue: string) => !newEnum.includes(oldValue)\n );\n return deletedOrChangedValues.includes(value);\n }\n\n return true;\n });\n\n // If any fields reference this field, return them\n if (referencedFields.length > 0) {\n return referencedFields;\n }\n\n return false;\n };\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(type, 'schema.attributes', []), dynamicZoneTarget) || null;\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n draftAndPublish: type.options?.draftAndPublish,\n kind: 'kind' in type && type.kind,\n pluginOptions: type.pluginOptions,\n pluralName: 'pluralName' in type.info && type.info.pluralName,\n singularName: 'singularName' in type.info && type.info.singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n category: 'category' in type && type.category,\n icon: type.info.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(type, ['attributes'], []),\n attributeName\n );\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!('repeatable' in attributeToEdit) || !attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: pick(customField, ['type', 'options']),\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n uid: type.uid,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actionType, attributeName, attributeType, dynamicZoneTarget, forTarget, isOpen, modalType]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.singularName || '');\n const attributes = get(type, ['attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n (type?.uid ?? null) as Internal.UID.ContentType,\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n (type?.uid ?? null) as Internal.UID.Component\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(type, ['attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const computedAttrbiuteType = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes: any[] = [];\n\n if (computedAttrbiuteType === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n type,\n computedAttrbiuteType,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string | string[]; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else if (name === 'enum') {\n // For enum values, ensure we're working with an array\n val = Array.isArray(value) ? value : [value];\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const submitForm = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n try {\n await checkFormValidity();\n\n dispatch(\n actions.setErrors({\n errors: {},\n })\n );\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n\n const ctTargetUid = targetUid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({\n data: {\n kind,\n displayName: modifiedData.displayName,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n singularName: modifiedData.singularName,\n pluralName: modifiedData.pluralName,\n },\n uid,\n });\n\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n onCloseModal();\n } else {\n // NOTE: we have to assume we have a CT here until we refactor more\n const contentType = type as ContentType;\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(contentType, modifiedData)) {\n onCloseModal();\n\n await updateSchema({\n uid: contentType.uid,\n data: {\n displayName: modifiedData.displayName,\n kind: modifiedData.kind,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n },\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createComponentSchema({\n data: {\n displayName: rest.displayName,\n icon: rest.icon,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n onCloseModal();\n\n return;\n } else {\n updateComponentSchema({\n data: {\n icon: modifiedData.icon,\n displayName: modifiedData.displayName,\n },\n componentUID: targetUid,\n });\n\n if (type.status === 'NEW') {\n const componentUid = createComponentUid(\n modifiedData.displayName,\n modifiedData.category\n );\n\n updateComponentUid({\n componentUID: targetUid,\n newComponentUID: componentUid,\n });\n\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${modifiedData.category}/${componentUid}`,\n });\n }\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n name: initialData.name,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(\n actions.resetPropsAndSetFormForAddingAnExistingCompo({\n uid: type.uid,\n })\n );\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n // Ensure conditions are explicitly set to undefined if they were removed\n // Explicitly set conditions to undefined when they're removed to distinguish between:\n // 1. missing property: \"don't change existing conditions\" (partial update)\n // 2. undefined property: \"delete conditions\" (explicit removal)\n // This allows the backend to detect user intent:\n // { name: \"field\" } vs { name: \"field\", conditions: undefined }\n // without this, deleted conditions would be preserved by the backend's\n // reuseUnsetPreviousProperties function.\n const attributeData = { ...modifiedData };\n if (!('conditions' in modifiedData) || modifiedData.conditions === undefined) {\n // Explicitly add the conditions key with undefined value\n attributeData.conditions = undefined;\n }\n\n editAttribute({\n attributeToSet: attributeData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(\n actions.resetPropsAndSaveCurrentData({\n uid: type.uid,\n })\n );\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createComponentSchema({\n // Component data\n data: {\n icon: rest.icon,\n displayName: rest.displayName,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Add the field to the schema\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createComponentSchema({\n data: rest,\n uid: componentUid,\n componentCategory: category,\n });\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n componentsToAdd: [componentUid],\n });\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents: modifiedData.components,\n });\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: unknown) {\n if (yup.ValidationError.isError(err)) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n }\n };\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n // Check for field name changes when clicking Finish\n const referencedFields = checkFieldNameChanges();\n if (referencedFields) {\n setPendingSubmit({ e, shouldContinue });\n setShowWarningDialog(true);\n return;\n }\n\n await submitForm(e, shouldContinue);\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent = forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n 'condition-form': ConditionForm,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(type, ['info', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n contentTypeSchema: type,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.addField],\n });\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <Dialog.Root open={showWarningDialog} onOpenChange={setShowWarningDialog}>\n <Dialog.Trigger />\n <ConfirmDialog\n onConfirm={() => {\n if (pendingSubmit) {\n const { e, shouldContinue } = pendingSubmit;\n setShowWarningDialog(false);\n setPendingSubmit(null);\n submitForm(e, shouldContinue);\n }\n }}\n onCancel={() => {\n setShowWarningDialog(false);\n setPendingSubmit(null);\n }}\n >\n {(() => {\n const referencedFields = checkFieldNameChanges();\n if (!referencedFields) return null;\n\n const fieldNames = referencedFields.map((field: any) => field.name).join(', ');\n const isEnum = initialData.enum && modifiedData.enum;\n\n if (isEnum) {\n const oldEnum = initialData.enum;\n const newEnum = modifiedData.enum;\n const deletedOrChangedValues = oldEnum.filter(\n (value: string) => !newEnum.includes(value)\n );\n\n return (\n <Box>\n <Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning',\n defaultMessage:\n 'The following fields have conditions that depend on this field: ',\n })}\n <Typography fontWeight=\"bold\">{fieldNames}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning-values',\n defaultMessage: '. Changing or removing the enum values ',\n })}\n <Typography fontWeight=\"bold\">{deletedOrChangedValues.join(', ')}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning-end',\n defaultMessage: ' will break these conditions. Do you want to proceed?',\n })}\n </Typography>\n </Box>\n );\n }\n\n return (\n <Box>\n <Typography>\n {formatMessage({\n id: 'form.attribute.condition.field-change-warning',\n defaultMessage:\n 'The following fields have conditions that depend on this field: ',\n })}\n <Typography fontWeight=\"bold\">{fieldNames}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.field-change-warning-end',\n defaultMessage:\n '. Renaming it will break these conditions. Do you want to proceed?',\n })}\n </Typography>\n </Box>\n );\n })()}\n </ConfirmDialog>\n </Dialog.Root>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button\n type=\"button\"\n variant=\"tertiary\"\n onClick={(e) => {\n e.preventDefault();\n handleClosed();\n }}\n >\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteContentType={() => deleteContentType(targetUid as Internal.UID.ContentType)}\n deleteComponent={() => deleteComponent(targetUid as Internal.UID.Component)}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["FormComponent","styled","form","selectState","state","initialState","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","actionType","attributeName","attributeType","customFieldUid","dynamicZoneTarget","forTarget","modalType","isOpen","kind","step","targetUid","showBackLink","activeTab","setActiveTab","useFormModalNavigation","getPlugin","useStrapiApp","getCustomField","customFields","get","customField","dispatch","useDispatch","toggleNotification","useNotification","reducerState","useSelector","shallowEqual","navigate","useNavigate","trackUsage","useTracking","formatMessage","useIntl","ctbPlugin","pluginId","ctbFormsAPI","apis","forms","inputsFromPlugins","components","inputs","dispatchGuidedTour","useGuidedTour","s","addAttribute","editAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","changeDynamicZoneComponents","contentTypes","createSchema","createComponentSchema","deleteComponent","deleteContentType","editCustomFieldAttribute","updateSchema","nestedComponents","sortedContentTypesList","updateComponentSchema","updateComponentUid","reservedNames","useDataManager","componentToCreate","formErrors","initialData","isCreatingComponentWhileAddingAField","modifiedData","type","showWarningDialog","setShowWarningDialog","useState","pendingSubmit","setPendingSubmit","checkFieldNameChanges","oldName","name","oldEnum","enum","newEnum","contentTypeAttributes","attributes","referencedFields","filter","attr","conditions","condition","visible","Object","entries","fieldVar","value","var","deletedOrChangedValues","oldValue","includes","length","React","useEffect","collectionTypesForRelation","isAllowedContentTypesForRelations","foundDynamicZoneTarget","findAttribute","actions","setDataToEdit","data","draftAndPublish","displayName","info","options","pluginOptions","pluralName","singularName","category","icon","attributeToEdit","createComponent","setDynamicZoneDataSchema","attributeToEditNotFormatted","repeatable","set","setCustomFieldDataSchema","isEditing","modifiedDataToSetForEditing","uid","pick","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingContentType","isCreatingComponent","isCreatingAttribute","isCreatingCustomFieldAttribute","isComponentAttribute","isCreating","isCreatingComponentFromAView","isInFirstComponentStep","isPickingAttribute","createUid","checkFormValidity","schema","dataToValidate","contentType","keys","component","schemaAttributes","schemaData","customFieldValidator","validator","computedAttrbiuteType","alreadyTakenTargetContentTypeAttributes","targetContentTypeUID","targetContentTypeAttributes","attrName","targetAttribute","attribute","validate","abortEarly","handleChange","useCallback","target","rest","namesThatCanResetToNullValue","val","Array","isArray","clonedErrors","assign","min","minLength","setErrors","errors","onChange","split","submitForm","e","shouldContinue","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","canEditContentType","message","id","componentUid","createComponentUid","componentCategory","componentUID","status","newComponentUID","customFieldAttributeUpdate","attributeToSet","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","attributeData","undefined","resetPropsAndSaveCurrentData","componentsToAdd","newComponents","console","error","err","yup","ValidationError","isError","getYupInnerErrors","handleSubmit","preventDefault","handleConfirmClose","confirm","window","defaultMessage","handleClosed","isEqual","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","getAttributesToDisplay","formToDisplay","advanced","sections","base","isAddingAComponentToAnotherComponent","genericInputProps","customInputs","AllowedTypesSelect","BooleanRadioGroup","CheckboxWithNumberField","IconPicker","ContentTypeRadioGroup","CustomRadioGroup","relation","Relation","SelectCategory","SelectComponent","SelectComponents","BooleanDefaultValueSelect","SelectNumber","SelectDateType","DraftAndPublishToggle","PluralName","SingularName","TextareaEnum","ConditionForm","mainBoxHeader","naturePickerType","contentTypeSchema","advancedForm","extensions","baseForm","baseFormInputNames","getFormInputNames","advancedFormInputNames","doesBaseFormHasError","some","key","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","every","handleClickFinish","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","addField","_jsx","Modal","Root","open","onOpenChange","_jsxs","Content","Dialog","Trigger","ConfirmDialog","onConfirm","onCancel","fieldNames","map","field","join","isEnum","Box","Typography","fontWeight","FormModalHeader","contentTypeKind","AttributeOptions","onSubmit","Body","Tabs","variant","onValueChange","hasError","Flex","justifyContent","FormModalSubHeader","List","getTrad","disabled","Divider","marginBottom","direction","alignItems","gap","TabForm","Footer","Button","onClick","FormModalEndActions","isAttributeModal","isCustomFieldModal","isComponentToDzModal","isComponentModal","isContentTypeModal","isCreatingDz","isCreatingComponentAttribute","isCreatingComponentInDz","isEditingAttribute","isDzAttribute","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateComponent","onSubmitCreateContentType","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModal.js","sources":["../../../../admin/src/components/FormModal/FormModal.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport {\n useStrapiApp,\n useNotification,\n ConfirmDialog,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs, Box, Typography, Dialog } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { useCTBTracking } from '../CTBSession/ctbSession';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { ConditionForm } from './attributes/ConditionForm';\nimport { forms } from './forms/forms';\nimport { actions, initialState, type State as FormModalState } from './reducer';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { ContentType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_formModal'] || initialState) as FormModalState;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector(selectState, shallowEqual);\n\n const navigate = useNavigate();\n const { trackUsage } = useCTBTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const dispatchGuidedTour = useGuidedTour('FormModal', (s) => s.dispatch);\n\n const {\n addAttribute,\n editAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n createComponentSchema,\n deleteComponent,\n deleteContentType,\n editCustomFieldAttribute,\n updateSchema,\n nestedComponents,\n sortedContentTypesList,\n updateComponentSchema,\n updateComponentUid,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];\n\n const [showWarningDialog, setShowWarningDialog] = useState(false);\n const [pendingSubmit, setPendingSubmit] = useState<any>(null);\n\n const checkFieldNameChanges = () => {\n // Only check when editing an attribute\n if (actionType !== 'edit' || modalType !== 'attribute') {\n return false;\n }\n\n const oldName = initialData.name;\n const oldEnum = initialData.enum;\n const newEnum = modifiedData.enum;\n\n // Get all attributes from the content type schema\n const contentTypeAttributes = type?.attributes || [];\n\n // Find all fields that reference this field in their conditions\n const referencedFields = contentTypeAttributes.filter((attr: any) => {\n if (!attr.conditions) return false;\n\n const condition = attr.conditions.visible;\n if (!condition) return false;\n\n const [[, conditions]] = Object.entries(condition);\n const [fieldVar, value] = conditions as [{ var: string }, any];\n\n // Check if this condition references our field\n if (fieldVar.var !== oldName) return false;\n\n // If it's an enum field, also check if the value is being deleted/changed\n if (oldEnum && newEnum) {\n const deletedOrChangedValues = oldEnum.filter(\n (oldValue: string) => !newEnum.includes(oldValue)\n );\n return deletedOrChangedValues.includes(value);\n }\n\n return true;\n });\n\n // If any fields reference this field, return them\n if (referencedFields.length > 0) {\n return referencedFields;\n }\n\n return false;\n };\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(type, 'schema.attributes', []), dynamicZoneTarget) || null;\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n draftAndPublish: type.options?.draftAndPublish,\n kind: 'kind' in type && type.kind,\n pluginOptions: type.pluginOptions,\n pluralName: 'pluralName' in type.info && type.info.pluralName,\n singularName: 'singularName' in type.info && type.info.singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n category: 'category' in type && type.category,\n icon: type.info.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(type, ['attributes'], []),\n attributeName\n );\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!('repeatable' in attributeToEdit) || !attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: pick(customField, ['type', 'options']),\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n uid: type.uid,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actionType, attributeName, attributeType, dynamicZoneTarget, forTarget, isOpen, modalType]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.singularName || '');\n const attributes = get(type, ['attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n (type?.uid ?? null) as Internal.UID.ContentType,\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n (type?.uid ?? null) as Internal.UID.Component\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(type, ['attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const computedAttrbiuteType = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes: any[] = [];\n\n if (computedAttrbiuteType === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n type,\n computedAttrbiuteType,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string | string[]; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else if (name === 'enum') {\n // For enum values, ensure we're working with an array\n val = Array.isArray(value) ? value : [value];\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const submitForm = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n try {\n await checkFormValidity();\n\n dispatch(\n actions.setErrors({\n errors: {},\n })\n );\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n\n const ctTargetUid = targetUid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({\n data: {\n kind,\n displayName: modifiedData.displayName,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n singularName: modifiedData.singularName,\n pluralName: modifiedData.pluralName,\n },\n uid,\n });\n\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n onCloseModal();\n } else {\n // NOTE: we have to assume we have a CT here until we refactor more\n const contentType = type as ContentType;\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(contentType, modifiedData)) {\n onCloseModal();\n\n await updateSchema({\n uid: contentType.uid,\n data: {\n displayName: modifiedData.displayName,\n kind: modifiedData.kind,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n },\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createComponentSchema({\n data: {\n displayName: rest.displayName,\n icon: rest.icon,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n onCloseModal();\n\n return;\n } else {\n updateComponentSchema({\n data: {\n icon: modifiedData.icon,\n displayName: modifiedData.displayName,\n },\n componentUID: targetUid,\n });\n\n if (type.status === 'NEW') {\n const componentUid = createComponentUid(\n modifiedData.displayName,\n modifiedData.category\n );\n\n updateComponentUid({\n componentUID: targetUid,\n newComponentUID: componentUid,\n });\n\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${modifiedData.category}/${componentUid}`,\n });\n }\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n name: initialData.name,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(\n actions.resetPropsAndSetFormForAddingAnExistingCompo({\n uid: type.uid,\n })\n );\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n // Ensure conditions are explicitly set to undefined if they were removed\n // Explicitly set conditions to undefined when they're removed to distinguish between:\n // 1. missing property: \"don't change existing conditions\" (partial update)\n // 2. undefined property: \"delete conditions\" (explicit removal)\n // This allows the backend to detect user intent:\n // { name: \"field\" } vs { name: \"field\", conditions: undefined }\n // without this, deleted conditions would be preserved by the backend's\n // reuseUnsetPreviousProperties function.\n const attributeData = { ...modifiedData };\n if (!('conditions' in modifiedData) || modifiedData.conditions === undefined) {\n // Explicitly add the conditions key with undefined value\n attributeData.conditions = undefined;\n }\n\n editAttribute({\n attributeToSet: attributeData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(\n actions.resetPropsAndSaveCurrentData({\n uid: type.uid,\n })\n );\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createComponentSchema({\n // Component data\n data: {\n icon: rest.icon,\n displayName: rest.displayName,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Add the field to the schema\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createComponentSchema({\n data: rest,\n uid: componentUid,\n componentCategory: category,\n });\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n componentsToAdd: [componentUid],\n });\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents: modifiedData.components,\n });\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: unknown) {\n if (yup.ValidationError.isError(err)) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n }\n };\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n // Check for field name changes when clicking Finish\n const referencedFields = checkFieldNameChanges();\n if (referencedFields) {\n setPendingSubmit({ e, shouldContinue });\n setShowWarningDialog(true);\n return;\n }\n\n await submitForm(e, shouldContinue);\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent = forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n 'condition-form': ConditionForm,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(type, ['info', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n contentTypeSchema: type,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.addField],\n });\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <Dialog.Root open={showWarningDialog} onOpenChange={setShowWarningDialog}>\n <Dialog.Trigger />\n <ConfirmDialog\n onConfirm={() => {\n if (pendingSubmit) {\n const { e, shouldContinue } = pendingSubmit;\n setShowWarningDialog(false);\n setPendingSubmit(null);\n submitForm(e, shouldContinue);\n }\n }}\n onCancel={() => {\n setShowWarningDialog(false);\n setPendingSubmit(null);\n }}\n >\n {(() => {\n const referencedFields = checkFieldNameChanges();\n if (!referencedFields) return null;\n\n const fieldNames = referencedFields.map((field: any) => field.name).join(', ');\n const isEnum = initialData.enum && modifiedData.enum;\n\n if (isEnum) {\n const oldEnum = initialData.enum;\n const newEnum = modifiedData.enum;\n const deletedOrChangedValues = oldEnum.filter(\n (value: string) => !newEnum.includes(value)\n );\n\n return (\n <Box>\n <Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning',\n defaultMessage:\n 'The following fields have conditions that depend on this field: ',\n })}\n <Typography fontWeight=\"bold\">{fieldNames}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning-values',\n defaultMessage: '. Changing or removing the enum values ',\n })}\n <Typography fontWeight=\"bold\">{deletedOrChangedValues.join(', ')}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.enum-change-warning-end',\n defaultMessage: ' will break these conditions. Do you want to proceed?',\n })}\n </Typography>\n </Box>\n );\n }\n\n return (\n <Box>\n <Typography>\n {formatMessage({\n id: 'form.attribute.condition.field-change-warning',\n defaultMessage:\n 'The following fields have conditions that depend on this field: ',\n })}\n <Typography fontWeight=\"bold\">{fieldNames}</Typography>\n {formatMessage({\n id: 'form.attribute.condition.field-change-warning-end',\n defaultMessage:\n '. Renaming it will break these conditions. Do you want to proceed?',\n })}\n </Typography>\n </Box>\n );\n })()}\n </ConfirmDialog>\n </Dialog.Root>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button\n type=\"button\"\n variant=\"tertiary\"\n onClick={(e) => {\n e.preventDefault();\n handleClosed();\n }}\n >\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteContentType={() => deleteContentType(targetUid as Internal.UID.ContentType)}\n deleteComponent={() => deleteComponent(targetUid as Internal.UID.Component)}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["FormComponent","styled","form","selectState","state","initialState","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","actionType","attributeName","attributeType","customFieldUid","dynamicZoneTarget","forTarget","modalType","isOpen","kind","step","targetUid","showBackLink","activeTab","setActiveTab","useFormModalNavigation","getPlugin","useStrapiApp","getCustomField","customFields","get","customField","dispatch","useDispatch","toggleNotification","useNotification","reducerState","useSelector","shallowEqual","navigate","useNavigate","trackUsage","useCTBTracking","formatMessage","useIntl","ctbPlugin","pluginId","ctbFormsAPI","apis","forms","inputsFromPlugins","components","inputs","dispatchGuidedTour","useGuidedTour","s","addAttribute","editAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","changeDynamicZoneComponents","contentTypes","createSchema","createComponentSchema","deleteComponent","deleteContentType","editCustomFieldAttribute","updateSchema","nestedComponents","sortedContentTypesList","updateComponentSchema","updateComponentUid","reservedNames","useDataManager","componentToCreate","formErrors","initialData","isCreatingComponentWhileAddingAField","modifiedData","type","showWarningDialog","setShowWarningDialog","useState","pendingSubmit","setPendingSubmit","checkFieldNameChanges","oldName","name","oldEnum","enum","newEnum","contentTypeAttributes","attributes","referencedFields","filter","attr","conditions","condition","visible","Object","entries","fieldVar","value","var","deletedOrChangedValues","oldValue","includes","length","React","useEffect","collectionTypesForRelation","isAllowedContentTypesForRelations","foundDynamicZoneTarget","findAttribute","actions","setDataToEdit","data","draftAndPublish","displayName","info","options","pluginOptions","pluralName","singularName","category","icon","attributeToEdit","createComponent","setDynamicZoneDataSchema","attributeToEditNotFormatted","repeatable","set","setCustomFieldDataSchema","isEditing","modifiedDataToSetForEditing","uid","pick","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingContentType","isCreatingComponent","isCreatingAttribute","isCreatingCustomFieldAttribute","isComponentAttribute","isCreating","isCreatingComponentFromAView","isInFirstComponentStep","isPickingAttribute","createUid","checkFormValidity","schema","dataToValidate","contentType","keys","component","schemaAttributes","schemaData","customFieldValidator","validator","computedAttrbiuteType","alreadyTakenTargetContentTypeAttributes","targetContentTypeUID","targetContentTypeAttributes","attrName","targetAttribute","attribute","validate","abortEarly","handleChange","useCallback","target","rest","namesThatCanResetToNullValue","val","Array","isArray","clonedErrors","assign","min","minLength","setErrors","errors","onChange","split","submitForm","e","shouldContinue","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","canEditContentType","message","id","componentUid","createComponentUid","componentCategory","componentUID","status","newComponentUID","customFieldAttributeUpdate","attributeToSet","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","attributeData","undefined","resetPropsAndSaveCurrentData","componentsToAdd","newComponents","console","error","err","yup","ValidationError","isError","getYupInnerErrors","handleSubmit","preventDefault","handleConfirmClose","confirm","window","defaultMessage","handleClosed","isEqual","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","getAttributesToDisplay","formToDisplay","advanced","sections","base","isAddingAComponentToAnotherComponent","genericInputProps","customInputs","AllowedTypesSelect","BooleanRadioGroup","CheckboxWithNumberField","IconPicker","ContentTypeRadioGroup","CustomRadioGroup","relation","Relation","SelectCategory","SelectComponent","SelectComponents","BooleanDefaultValueSelect","SelectNumber","SelectDateType","DraftAndPublishToggle","PluralName","SingularName","TextareaEnum","ConditionForm","mainBoxHeader","naturePickerType","contentTypeSchema","advancedForm","extensions","baseForm","baseFormInputNames","getFormInputNames","advancedFormInputNames","doesBaseFormHasError","some","key","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","every","handleClickFinish","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","addField","_jsx","Modal","Root","open","onOpenChange","_jsxs","Content","Dialog","Trigger","ConfirmDialog","onConfirm","onCancel","fieldNames","map","field","join","isEnum","Box","Typography","fontWeight","FormModalHeader","contentTypeKind","AttributeOptions","onSubmit","Body","Tabs","variant","onValueChange","hasError","Flex","justifyContent","FormModalSubHeader","List","getTrad","disabled","Divider","marginBottom","direction","alignItems","gap","TabForm","Footer","Button","onClick","FormModalEndActions","isAttributeModal","isCustomFieldModal","isComponentToDzModal","isComponentModal","isContentTypeModal","isCreatingDz","isCreatingComponentAttribute","isCreatingComponentInDz","isEditingAttribute","isDzAttribute","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateComponent","onSubmitCreateContentType","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { useStrapiApp, useNotification,
|
|
4
|
+
import { useStrapiApp, useNotification, useGuidedTour, ConfirmDialog, GUIDED_TOUR_REQUIRED_ACTIONS } from '@strapi/admin/strapi-admin';
|
|
5
5
|
import { Modal, Dialog, Box, Typography, Tabs, Flex, Divider, Button } from '@strapi/design-system';
|
|
6
6
|
import get from 'lodash/get';
|
|
7
7
|
import has from 'lodash/has';
|
|
@@ -24,6 +24,8 @@ import { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect.mjs';
|
|
|
24
24
|
import { BooleanRadioGroup } from '../BooleanRadioGroup.mjs';
|
|
25
25
|
import { CheckboxWithNumberField } from '../CheckboxWithNumberField.mjs';
|
|
26
26
|
import { ContentTypeRadioGroup } from '../ContentTypeRadioGroup.mjs';
|
|
27
|
+
import '../CTBSession/sessionContext.mjs';
|
|
28
|
+
import { useCTBTracking } from '../CTBSession/useCTBTracking.mjs';
|
|
27
29
|
import { CustomRadioGroup } from '../CustomRadioGroup/CustomRadioGroup.mjs';
|
|
28
30
|
import { useDataManager } from '../DataManager/useDataManager.mjs';
|
|
29
31
|
import { DraftAndPublishToggle } from '../DraftAndPublishToggle.mjs';
|
|
@@ -63,7 +65,7 @@ const FormModal = ()=>{
|
|
|
63
65
|
const { toggleNotification } = useNotification();
|
|
64
66
|
const reducerState = useSelector(selectState, shallowEqual);
|
|
65
67
|
const navigate = useNavigate();
|
|
66
|
-
const { trackUsage } =
|
|
68
|
+
const { trackUsage } = useCTBTracking();
|
|
67
69
|
const { formatMessage } = useIntl();
|
|
68
70
|
const ctbPlugin = getPlugin(pluginId);
|
|
69
71
|
const ctbFormsAPI = ctbPlugin?.apis.forms;
|