@strapi/content-type-builder 5.49.0 → 5.50.1
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 +2 -4
- package/dist/admin/components/AIChat/Chat.js.map +1 -1
- package/dist/admin/components/AIChat/Chat.mjs +2 -4
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js +8 -3
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +8 -3
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.js +8 -2
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.mjs +8 -2
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +0 -3
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +0 -3
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +9 -7
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +9 -7
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
- package/dist/admin/components/AttributeIcon.js +1 -1
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -1
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.js +3 -2
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.mjs +3 -2
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.js +3 -3
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.mjs +3 -3
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.js +3 -2
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.mjs +3 -2
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +160 -162
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +160 -162
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +6 -5
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +6 -5
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +16 -4
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +16 -4
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/reducer.js +2 -2
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.mjs +2 -2
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js +91 -71
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +91 -70
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js +20 -17
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +20 -17
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.js +4 -6
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs +4 -6
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/reducer.js +9 -6
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs +9 -6
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +3 -3
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +3 -3
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.js +2 -2
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.mjs +2 -2
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +13 -13
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +13 -13
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +24 -12
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +24 -12
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/PluralName.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js +3 -3
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs +3 -3
- package/dist/admin/components/Relation/Relation.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
- package/dist/admin/components/SelectCategory.js +6 -0
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs +6 -0
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js +1 -1
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs +1 -1
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SingularName.js.map +1 -1
- package/dist/admin/components/SingularName.mjs.map +1 -1
- package/dist/admin/components/TabForm.js +50 -51
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs +51 -52
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +4 -5
- package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +1 -1
- package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/Input.d.ts +2 -3
- package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +1 -2
- package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +9 -9
- package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +0 -1
- package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +5 -5
- package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +1 -1
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +6 -2
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +1 -1
- package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +5 -5
- package/dist/admin/src/components/AllowedTypesSelect.d.ts +3 -3
- package/dist/admin/src/components/AttributeOptions/OptionBoxWrapper.d.ts +2 -3
- package/dist/admin/src/components/AttributeRow.d.ts +7 -8
- package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +3 -3
- package/dist/admin/src/components/BooleanRadioGroup.d.ts +2 -2
- package/dist/admin/src/components/CTBSession/sessionContext.d.ts +0 -1
- package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +1 -1
- package/dist/admin/src/components/CheckboxWithNumberField.d.ts +6 -4
- package/dist/admin/src/components/ComponentRow.d.ts +6 -7
- package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +0 -1
- package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +3 -2
- package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +3 -2
- package/dist/admin/src/components/CustomRadioGroup/Styles.d.ts +3 -4
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +13 -12
- package/dist/admin/src/components/DataManager/reducer.d.ts +16 -12
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +64 -64
- package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -3
- package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -1
- package/dist/admin/src/components/DraftAndPublishToggle.d.ts +1 -6
- package/dist/admin/src/components/DynamicZoneList.d.ts +2 -2
- package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +3 -2
- package/dist/admin/src/components/FormModal/attributes/form.d.ts +3 -3
- package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +4 -2
- package/dist/admin/src/components/FormModal/forms/forms.d.ts +61 -28
- package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +12 -2
- package/dist/admin/src/components/FormModal/reducer.d.ts +104 -32
- package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -1
- package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -1
- package/dist/admin/src/components/FormModal/utils/relations.d.ts +2 -2
- package/dist/admin/src/components/FormModalHeader.d.ts +5 -8
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +2 -2
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +17 -2
- package/dist/admin/src/components/GenericInputs.d.ts +12 -7
- package/dist/admin/src/components/IconPicker/IconPicker.d.ts +2 -7
- package/dist/admin/src/components/List.d.ts +2 -3
- package/dist/admin/src/components/PluralName.d.ts +6 -14
- package/dist/admin/src/components/Relation/Relation.d.ts +12 -3
- package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +3 -2
- package/dist/admin/src/components/Relation/RelationNaturePicker/Components.d.ts +6 -7
- package/dist/admin/src/components/SelectCategory.d.ts +3 -12
- package/dist/admin/src/components/SelectComponent.d.ts +8 -7
- package/dist/admin/src/components/SingularName.d.ts +5 -8
- package/dist/admin/src/components/TabForm.d.ts +38 -7
- package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +0 -1
- package/dist/admin/src/types.d.ts +20 -12
- package/dist/admin/src/utils/conditions.d.ts +13 -4
- package/dist/admin/src/utils/formAPI.d.ts +38 -33
- package/dist/admin/src/utils/getRelationType.d.ts +1 -1
- package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
- package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/ja.json.js +109 -50
- package/dist/admin/translations/ja.json.js.map +1 -1
- package/dist/admin/translations/ja.json.mjs +109 -50
- package/dist/admin/translations/ja.json.mjs.map +1 -1
- package/dist/admin/utils/conditions.js +38 -28
- package/dist/admin/utils/conditions.js.map +1 -1
- package/dist/admin/utils/conditions.mjs +37 -28
- package/dist/admin/utils/conditions.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js +9 -6
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs +9 -6
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js +3 -0
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs +3 -0
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.js +6 -4
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.mjs +6 -4
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
- package/dist/admin/utils/parseNumberInputValue.js +15 -0
- package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
- package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
- package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +1 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +1 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/relations.js +1 -1
- package/dist/server/controllers/validation/relations.js.map +1 -1
- package/dist/server/controllers/validation/relations.mjs +1 -1
- package/dist/server/controllers/validation/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +4 -3
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +4 -3
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/component-category.d.ts +1 -1
- package/dist/server/src/controllers/validation/component.d.ts +1 -1
- package/dist/server/src/controllers/validation/component.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/data-transform.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/model-schema.d.ts +1 -1
- package/dist/server/src/controllers/validation/model-schema.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +1 -1
- package/dist/server/src/controllers/validation/types.d.ts.map +1 -1
- package/dist/server/src/middlewares/is-development-mode.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/services/builder.d.ts.map +1 -1
- package/dist/server/src/services/component-categories.d.ts.map +1 -1
- package/dist/server/src/services/components.d.ts.map +1 -1
- package/dist/server/src/services/content-types.d.ts +1 -1
- package/dist/server/src/services/content-types.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/component-builder.d.ts +12 -12
- package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts +14 -14
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/index.d.ts +27 -27
- package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/schema-handler.d.ts +12 -12
- package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +66 -66
- package/dist/server/src/services/schema.d.ts.map +1 -1
- package/dist/server/src/utils/attributes.d.ts +2 -2
- package/dist/server/src/utils/attributes.d.ts.map +1 -1
- package/dist/server/src/utils/helpers.d.ts.map +1 -1
- package/dist/server/src/utils/typeguards.d.ts.map +1 -1
- package/package.json +13 -9
|
@@ -5,18 +5,18 @@ import { useCTBSession } from '../CTBSession/useCTBSession.mjs';
|
|
|
5
5
|
import { FormModalNavigationContext } from './FormModalNavigationContext.mjs';
|
|
6
6
|
|
|
7
7
|
const INITIAL_STATE_DATA = {
|
|
8
|
-
actionType:
|
|
9
|
-
attributeName:
|
|
10
|
-
attributeType:
|
|
11
|
-
dynamicZoneTarget:
|
|
12
|
-
forTarget:
|
|
8
|
+
actionType: 'create',
|
|
9
|
+
attributeName: '',
|
|
10
|
+
attributeType: '',
|
|
11
|
+
dynamicZoneTarget: '',
|
|
12
|
+
forTarget: 'contentType',
|
|
13
13
|
modalType: null,
|
|
14
14
|
isOpen: true,
|
|
15
15
|
showBackLink: false,
|
|
16
|
-
kind:
|
|
16
|
+
kind: 'collectionType',
|
|
17
17
|
step: null,
|
|
18
|
-
targetUid:
|
|
19
|
-
customFieldUid:
|
|
18
|
+
targetUid: '',
|
|
19
|
+
customFieldUid: '',
|
|
20
20
|
activeTab: 'basic'
|
|
21
21
|
};
|
|
22
22
|
const FormModalNavigationProvider = ({ children })=>{
|
|
@@ -66,7 +66,7 @@ const FormModalNavigationProvider = ({ children })=>{
|
|
|
66
66
|
const onOpenModalAddComponentsToDZ = useCallback(({ dynamicZoneTarget, targetUid })=>{
|
|
67
67
|
setFormModalNavigationState((prevState)=>({
|
|
68
68
|
...prevState,
|
|
69
|
-
dynamicZoneTarget,
|
|
69
|
+
dynamicZoneTarget: dynamicZoneTarget ?? '',
|
|
70
70
|
targetUid,
|
|
71
71
|
modalType: 'addComponentToDynamicZone',
|
|
72
72
|
forTarget: 'contentType',
|
|
@@ -80,7 +80,7 @@ const FormModalNavigationProvider = ({ children })=>{
|
|
|
80
80
|
...prevState,
|
|
81
81
|
actionType: 'create',
|
|
82
82
|
forTarget,
|
|
83
|
-
targetUid,
|
|
83
|
+
targetUid: targetUid ?? '',
|
|
84
84
|
modalType: 'chooseAttribute',
|
|
85
85
|
isOpen: true,
|
|
86
86
|
showBackLink: false,
|
|
@@ -129,7 +129,7 @@ const FormModalNavigationProvider = ({ children })=>{
|
|
|
129
129
|
actionType: 'edit',
|
|
130
130
|
forTarget,
|
|
131
131
|
targetUid,
|
|
132
|
-
kind,
|
|
132
|
+
kind: kind === 'singleType' ? 'singleType' : 'collectionType',
|
|
133
133
|
isOpen: true,
|
|
134
134
|
activeTab: 'basic'
|
|
135
135
|
}));
|
|
@@ -162,8 +162,8 @@ const FormModalNavigationProvider = ({ children })=>{
|
|
|
162
162
|
modalType: 'addComponentToDynamicZone',
|
|
163
163
|
actionType: 'create',
|
|
164
164
|
step: '1',
|
|
165
|
-
attributeType:
|
|
166
|
-
attributeName:
|
|
165
|
+
attributeType: '',
|
|
166
|
+
attributeName: '',
|
|
167
167
|
activeTab: 'basic'
|
|
168
168
|
}));
|
|
169
169
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModalNavigationProvider.mjs","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationProvider.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { useCTBSession } from '../CTBSession/useCTBSession';\n\nimport { FormModalNavigationContext } from './FormModalNavigationContext';\n\nimport type { TrackingEvent } from '@strapi/admin/strapi-admin';\nimport type { Internal, Struct } from '@strapi/types';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type Tab = 'basic' | 'advanced';\n\nexport type ModalType =\n | 'chooseAttribute'\n | 'edit'\n | 'attribute'\n | 'customField'\n | 'addComponentToDynamicZone'\n | 'contentType'\n | 'component';\n\nexport type State = Record<string, any>;\n\nexport const INITIAL_STATE_DATA: State = {\n actionType: null,\n attributeName: null,\n attributeType: null,\n dynamicZoneTarget: null,\n forTarget: null,\n modalType: null,\n isOpen: true,\n showBackLink: false,\n kind: null,\n step: null,\n targetUid: null,\n customFieldUid: null,\n activeTab: 'basic',\n};\n\nexport type SelectCustomFieldPayload = {\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type SelectFieldPayload = {\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalAddComponentsToDZPayload = {\n dynamicZoneTarget?: string;\n targetUid: Internal.UID.Schema;\n};\n\nexport type OpenModalAddFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid?: Internal.UID.Schema;\n};\n\nexport type OpenModalEditCustomFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type OpenModalEditFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalEditSchemaPayload = {\n modalType: ModalType;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n kind?: string;\n};\n\nexport type NavigateToChooseAttributeModalPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n};\n\nexport type NavigateToAddCompoToDZModalPayload = {\n dynamicZoneTarget: string;\n};\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = useState(INITIAL_STATE_DATA);\n const { trackUsage: originalTrackUsage } = useTracking();\n const { sessionId } = useCTBSession();\n\n // Create a trackUsage that includes session ID from CTBSessionContext\n const trackUsage = useCallback(\n <TEvent extends TrackingEvent>(event: TEvent['name'], properties?: TEvent['properties']) => {\n const propertiesWithSessionId = {\n ...(properties as Record<string, unknown>),\n ctbSessionId: sessionId,\n };\n return originalTrackUsage(event, propertiesWithSessionId as TEvent['properties']);\n },\n [originalTrackUsage, sessionId]\n );\n\n const onClickSelectCustomField = useCallback(\n ({ attributeType, customFieldUid }: SelectCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onClickSelectField = useCallback(\n ({ attributeType, step }: SelectFieldPayload) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n }));\n },\n [state.forTarget, trackUsage]\n );\n\n const onOpenModalAddComponentsToDZ = useCallback(\n ({ dynamicZoneTarget, targetUid }: OpenModalAddComponentsToDZPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n dynamicZoneTarget,\n targetUid,\n modalType: 'addComponentToDynamicZone',\n forTarget: 'contentType',\n step: '1',\n actionType: 'edit',\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalAddField = useCallback(({ forTarget, targetUid }: OpenModalAddFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n isOpen: true,\n showBackLink: false,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalCreateSchema = useCallback((nextState: State) => {\n setFormModalNavigationState((prevState) => ({\n ...prevState,\n ...nextState,\n isOpen: true,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalEditCustomField = useCallback(\n ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: OpenModalEditCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'customField',\n customFieldUid,\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onOpenModalEditField = useCallback(\n ({ forTarget, targetUid, attributeName, attributeType, step }: OpenModalEditFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'attribute',\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalEditSchema = useCallback(\n ({ modalType, forTarget, targetUid, kind }: OpenModalEditSchemaPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onCloseModal = useCallback(() => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n }, []);\n\n const onNavigateToChooseAttributeModal = useCallback(\n ({ forTarget, targetUid }: NavigateToChooseAttributeModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onNavigateToCreateComponentStep2 = useCallback(() => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n }));\n }, []);\n\n const onNavigateToAddCompoToDZModal = useCallback(\n ({ dynamicZoneTarget }: NavigateToAddCompoToDZModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n dynamicZoneTarget,\n modalType: 'addComponentToDynamicZone',\n actionType: 'create',\n step: '1',\n attributeType: null,\n attributeName: null,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const setActiveTab = useCallback((value: Tab) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n activeTab: value,\n }));\n }, []);\n\n const contextValue = useMemo(\n () => ({\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n }),\n [\n state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setActiveTab,\n ]\n );\n\n return (\n <FormModalNavigationContext.Provider value={contextValue}>\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n"],"names":["INITIAL_STATE_DATA","actionType","attributeName","attributeType","dynamicZoneTarget","forTarget","modalType","isOpen","showBackLink","kind","step","targetUid","customFieldUid","activeTab","FormModalNavigationProvider","children","state","setFormModalNavigationState","useState","trackUsage","originalTrackUsage","useTracking","sessionId","useCTBSession","useCallback","event","properties","propertiesWithSessionId","ctbSessionId","onClickSelectCustomField","prevState","onClickSelectField","type","onOpenModalAddComponentsToDZ","onOpenModalAddField","onOpenModalCreateSchema","nextState","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","onCloseModal","onNavigateToChooseAttributeModal","prev","onNavigateToCreateComponentStep2","onNavigateToAddCompoToDZModal","setActiveTab","value","contextValue","useMemo","_jsx","FormModalNavigationContext","Provider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModalNavigationProvider.mjs","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationProvider.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { useCTBSession } from '../CTBSession/useCTBSession';\n\nimport { FormModalNavigationContext } from './FormModalNavigationContext';\n\nimport type { TrackingEvent } from '@strapi/admin/strapi-admin';\nimport type { Internal, Struct } from '@strapi/types';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type Tab = 'basic' | 'advanced';\n\nexport type ModalType =\n | 'chooseAttribute'\n | 'edit'\n | 'attribute'\n | 'customField'\n | 'addComponentToDynamicZone'\n | 'contentType'\n | 'component';\n\nexport type ActionType = 'create' | 'edit' | null;\n\nexport type State = {\n actionType: Exclude<ActionType, null>;\n attributeName: string;\n attributeType: string;\n dynamicZoneTarget: string;\n forTarget: Struct.ModelType;\n modalType: ModalType | null;\n isOpen: boolean;\n showBackLink: boolean;\n kind: Struct.ContentTypeKind;\n step: string | null;\n targetUid: Internal.UID.Schema;\n customFieldUid: string;\n activeTab: Tab;\n};\n\nexport const INITIAL_STATE_DATA: State = {\n actionType: 'create',\n attributeName: '',\n attributeType: '',\n dynamicZoneTarget: '',\n forTarget: 'contentType',\n modalType: null,\n isOpen: true,\n showBackLink: false,\n kind: 'collectionType',\n step: null,\n targetUid: '' as Internal.UID.Schema,\n customFieldUid: '',\n activeTab: 'basic',\n};\n\nexport type SelectCustomFieldPayload = {\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type SelectFieldPayload = {\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalAddComponentsToDZPayload = {\n dynamicZoneTarget?: string;\n targetUid: Internal.UID.Schema;\n};\n\nexport type OpenModalAddFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid?: Internal.UID.Schema;\n};\n\nexport type OpenModalEditCustomFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type OpenModalEditFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalEditSchemaPayload = {\n modalType: ModalType;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n kind?: string;\n};\n\nexport type NavigateToChooseAttributeModalPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n};\n\nexport type NavigateToAddCompoToDZModalPayload = {\n dynamicZoneTarget: string;\n};\n\nexport type OpenModalCreateSchemaPayload = Pick<\n State,\n 'actionType' | 'forTarget' | 'kind' | 'modalType'\n>;\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = useState(INITIAL_STATE_DATA);\n const { trackUsage: originalTrackUsage } = useTracking();\n const { sessionId } = useCTBSession();\n\n // Create a trackUsage that includes session ID from CTBSessionContext\n const trackUsage = useCallback(\n <TEvent extends TrackingEvent>(event: TEvent['name'], properties?: TEvent['properties']) => {\n const propertiesWithSessionId = {\n ...(properties as Record<string, unknown>),\n ctbSessionId: sessionId,\n };\n return originalTrackUsage(event, propertiesWithSessionId as TEvent['properties']);\n },\n [originalTrackUsage, sessionId]\n );\n\n const onClickSelectCustomField = useCallback(\n ({ attributeType, customFieldUid }: SelectCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onClickSelectField = useCallback(\n ({ attributeType, step }: SelectFieldPayload) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n }));\n },\n [state.forTarget, trackUsage]\n );\n\n const onOpenModalAddComponentsToDZ = useCallback(\n ({ dynamicZoneTarget, targetUid }: OpenModalAddComponentsToDZPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n dynamicZoneTarget: dynamicZoneTarget ?? '',\n targetUid,\n modalType: 'addComponentToDynamicZone',\n forTarget: 'contentType',\n step: '1',\n actionType: 'edit',\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalAddField = useCallback(({ forTarget, targetUid }: OpenModalAddFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n forTarget,\n targetUid: targetUid ?? ('' as Internal.UID.Schema),\n modalType: 'chooseAttribute',\n isOpen: true,\n showBackLink: false,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalCreateSchema = useCallback((nextState: OpenModalCreateSchemaPayload) => {\n setFormModalNavigationState((prevState) => ({\n ...prevState,\n ...nextState,\n isOpen: true,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalEditCustomField = useCallback(\n ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: OpenModalEditCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'customField',\n customFieldUid,\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onOpenModalEditField = useCallback(\n ({ forTarget, targetUid, attributeName, attributeType, step }: OpenModalEditFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'attribute',\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalEditSchema = useCallback(\n ({ modalType, forTarget, targetUid, kind }: OpenModalEditSchemaPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind: kind === 'singleType' ? 'singleType' : 'collectionType',\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onCloseModal = useCallback(() => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n }, []);\n\n const onNavigateToChooseAttributeModal = useCallback(\n ({ forTarget, targetUid }: NavigateToChooseAttributeModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onNavigateToCreateComponentStep2 = useCallback(() => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n }));\n }, []);\n\n const onNavigateToAddCompoToDZModal = useCallback(\n ({ dynamicZoneTarget }: NavigateToAddCompoToDZModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n dynamicZoneTarget,\n modalType: 'addComponentToDynamicZone',\n actionType: 'create',\n step: '1',\n attributeType: '',\n attributeName: '',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const setActiveTab = useCallback((value: Tab) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n activeTab: value,\n }));\n }, []);\n\n const contextValue = useMemo(\n () => ({\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n }),\n [\n state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setActiveTab,\n ]\n );\n\n return (\n <FormModalNavigationContext.Provider value={contextValue}>\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n"],"names":["INITIAL_STATE_DATA","actionType","attributeName","attributeType","dynamicZoneTarget","forTarget","modalType","isOpen","showBackLink","kind","step","targetUid","customFieldUid","activeTab","FormModalNavigationProvider","children","state","setFormModalNavigationState","useState","trackUsage","originalTrackUsage","useTracking","sessionId","useCTBSession","useCallback","event","properties","propertiesWithSessionId","ctbSessionId","onClickSelectCustomField","prevState","onClickSelectField","type","onOpenModalAddComponentsToDZ","onOpenModalAddField","onOpenModalCreateSchema","nextState","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","onCloseModal","onNavigateToChooseAttributeModal","prev","onNavigateToCreateComponentStep2","onNavigateToAddCompoToDZModal","setActiveTab","value","contextValue","useMemo","_jsx","FormModalNavigationContext","Provider"],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
34
34
|
var formatISO__default = /*#__PURE__*/_interopDefault(formatISO);
|
|
35
35
|
var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
|
|
36
36
|
|
|
37
|
-
const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
|
|
37
|
+
const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable: _isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
|
|
38
38
|
const { formatMessage } = reactIntl.useIntl();
|
|
39
39
|
// TODO: Workaround to get the field hint values if they exist on the type
|
|
40
40
|
const getFieldHintValue = (attribute, key)=>{
|
|
@@ -67,14 +67,26 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
67
67
|
// the API always returns null, which throws an error in React,
|
|
68
68
|
// therefore we cast this case to undefined
|
|
69
69
|
const value = defaultValue ?? undefined;
|
|
70
|
+
const stringValue = typeof value === 'string' || typeof value === 'number' ? value.toString() : '';
|
|
71
|
+
const numberValue = (()=>{
|
|
72
|
+
if (typeof value === 'number') {
|
|
73
|
+
return Number.isFinite(value) ? value : undefined;
|
|
74
|
+
}
|
|
75
|
+
if (typeof value === 'string' && value.trim() !== '') {
|
|
76
|
+
const parsedValue = Number(value);
|
|
77
|
+
return Number.isFinite(parsedValue) ? parsedValue : undefined;
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
})();
|
|
81
|
+
const selectValue = typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;
|
|
82
|
+
const jsonValue = value !== undefined && (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number') ? JSON.stringify(value, null, 2) : typeof value === 'string' ? value : undefined;
|
|
70
83
|
/*
|
|
71
84
|
TODO: ideally we should pass in `defaultValue` and `value` for
|
|
72
85
|
inputs, in order to make them controlled components. This variable
|
|
73
86
|
acts as a fallback for now, to prevent React errors in devopment mode
|
|
74
87
|
|
|
75
88
|
See: https://github.com/strapi/strapi/pull/12861
|
|
76
|
-
*/
|
|
77
|
-
function getErrorMessage(error) {
|
|
89
|
+
*/ function getErrorMessage(error) {
|
|
78
90
|
if (!error) {
|
|
79
91
|
return null;
|
|
80
92
|
}
|
|
@@ -133,7 +145,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
133
145
|
case 'json':
|
|
134
146
|
{
|
|
135
147
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.JSONInput, {
|
|
136
|
-
value:
|
|
148
|
+
value: jsonValue,
|
|
137
149
|
disabled: disabled,
|
|
138
150
|
onChange: (json)=>{
|
|
139
151
|
// Default to null when the field is not required and there is no input value
|
|
@@ -152,7 +164,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
152
164
|
case 'bool':
|
|
153
165
|
{
|
|
154
166
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
|
|
155
|
-
checked: defaultValue === null ? null : defaultValue
|
|
167
|
+
checked: defaultValue === null ? null : Boolean(defaultValue),
|
|
156
168
|
disabled: disabled,
|
|
157
169
|
offLabel: formatMessage({
|
|
158
170
|
id: 'app.components.ToggleCheckbox.off-label',
|
|
@@ -265,7 +277,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
265
277
|
},
|
|
266
278
|
placeholder: formattedPlaceholder,
|
|
267
279
|
step: step,
|
|
268
|
-
value:
|
|
280
|
+
value: numberValue,
|
|
269
281
|
autoFocus: autoFocus
|
|
270
282
|
});
|
|
271
283
|
}
|
|
@@ -285,7 +297,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
285
297
|
},
|
|
286
298
|
placeholder: formattedPlaceholder,
|
|
287
299
|
type: "email",
|
|
288
|
-
value:
|
|
300
|
+
value: stringValue,
|
|
289
301
|
autoFocus: autoFocus
|
|
290
302
|
});
|
|
291
303
|
}
|
|
@@ -307,7 +319,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
307
319
|
},
|
|
308
320
|
placeholder: formattedPlaceholder,
|
|
309
321
|
type: "text",
|
|
310
|
-
value:
|
|
322
|
+
value: stringValue,
|
|
311
323
|
autoFocus: autoFocus
|
|
312
324
|
});
|
|
313
325
|
}
|
|
@@ -347,7 +359,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
347
359
|
},
|
|
348
360
|
placeholder: formattedPlaceholder,
|
|
349
361
|
type: showPassword ? 'text' : 'password',
|
|
350
|
-
value:
|
|
362
|
+
value: stringValue
|
|
351
363
|
});
|
|
352
364
|
}
|
|
353
365
|
case 'select':
|
|
@@ -364,7 +376,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
364
376
|
});
|
|
365
377
|
},
|
|
366
378
|
placeholder: formattedPlaceholder,
|
|
367
|
-
value:
|
|
379
|
+
value: selectValue,
|
|
368
380
|
children: options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value })=>{
|
|
369
381
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
|
|
370
382
|
value: value,
|
|
@@ -387,13 +399,13 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
387
399
|
}
|
|
388
400
|
}),
|
|
389
401
|
placeholder: formattedPlaceholder,
|
|
390
|
-
value:
|
|
402
|
+
value: stringValue
|
|
391
403
|
});
|
|
392
404
|
}
|
|
393
405
|
case 'time':
|
|
394
406
|
{
|
|
395
407
|
const formattedValue = timeFormat.handleTimeChange({
|
|
396
|
-
value});
|
|
408
|
+
value: stringValue});
|
|
397
409
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.TimePicker, {
|
|
398
410
|
clearLabel: formatMessage({
|
|
399
411
|
id: 'clearLabel',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: Schema.Attribute.Value<TAttribute>;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: Schema.Attribute.Value<TAttribute>;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs ? customInputs[type] : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n const valueWithEmptyStringFallback = value ?? '';\n\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={value}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : defaultValue || false}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={value}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={value}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","valueWithEmptyStringFallback","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","offLabel","onLabel","e","Checkbox","onCheckedChange","Boolean","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","Number","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ntype ConditionField = {\n name: string;\n type: string;\n enum?: string[];\n};\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value?: unknown;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: unknown;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: ConditionField[];\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value?: unknown;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: unknown;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: ConditionField[];\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable: _isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs\n ? (customInputs[type] as React.ComponentType<CustomInputProps> | undefined)\n : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n const stringValue =\n typeof value === 'string' || typeof value === 'number' ? value.toString() : '';\n const numberValue = (() => {\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n if (typeof value === 'string' && value.trim() !== '') {\n const parsedValue = Number(value);\n\n return Number.isFinite(parsedValue) ? parsedValue : undefined;\n }\n\n return undefined;\n })();\n const selectValue =\n typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;\n const jsonValue =\n value !== undefined &&\n (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number')\n ? JSON.stringify(value, null, 2)\n : typeof value === 'string'\n ? value\n : undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={jsonValue}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : Boolean(defaultValue)}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={numberValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={stringValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={stringValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={stringValue}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={selectValue}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={stringValue}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value: stringValue, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","_isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","stringValue","toString","numberValue","Number","isFinite","trim","parsedValue","selectValue","jsonValue","JSON","stringify","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","Boolean","offLabel","onLabel","e","Checkbox","onCheckedChange","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { useIntl } from 'react-intl';
|
|
|
8
8
|
import { parseDateValue } from '../utils/parseDateValue.mjs';
|
|
9
9
|
import { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat.mjs';
|
|
10
10
|
|
|
11
|
-
const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
|
|
11
|
+
const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable: _isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
|
|
12
12
|
const { formatMessage } = useIntl();
|
|
13
13
|
// TODO: Workaround to get the field hint values if they exist on the type
|
|
14
14
|
const getFieldHintValue = (attribute, key)=>{
|
|
@@ -41,14 +41,26 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
41
41
|
// the API always returns null, which throws an error in React,
|
|
42
42
|
// therefore we cast this case to undefined
|
|
43
43
|
const value = defaultValue ?? undefined;
|
|
44
|
+
const stringValue = typeof value === 'string' || typeof value === 'number' ? value.toString() : '';
|
|
45
|
+
const numberValue = (()=>{
|
|
46
|
+
if (typeof value === 'number') {
|
|
47
|
+
return Number.isFinite(value) ? value : undefined;
|
|
48
|
+
}
|
|
49
|
+
if (typeof value === 'string' && value.trim() !== '') {
|
|
50
|
+
const parsedValue = Number(value);
|
|
51
|
+
return Number.isFinite(parsedValue) ? parsedValue : undefined;
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
})();
|
|
55
|
+
const selectValue = typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;
|
|
56
|
+
const jsonValue = value !== undefined && (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number') ? JSON.stringify(value, null, 2) : typeof value === 'string' ? value : undefined;
|
|
44
57
|
/*
|
|
45
58
|
TODO: ideally we should pass in `defaultValue` and `value` for
|
|
46
59
|
inputs, in order to make them controlled components. This variable
|
|
47
60
|
acts as a fallback for now, to prevent React errors in devopment mode
|
|
48
61
|
|
|
49
62
|
See: https://github.com/strapi/strapi/pull/12861
|
|
50
|
-
*/
|
|
51
|
-
function getErrorMessage(error) {
|
|
63
|
+
*/ function getErrorMessage(error) {
|
|
52
64
|
if (!error) {
|
|
53
65
|
return null;
|
|
54
66
|
}
|
|
@@ -107,7 +119,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
107
119
|
case 'json':
|
|
108
120
|
{
|
|
109
121
|
return /*#__PURE__*/ jsx(JSONInput, {
|
|
110
|
-
value:
|
|
122
|
+
value: jsonValue,
|
|
111
123
|
disabled: disabled,
|
|
112
124
|
onChange: (json)=>{
|
|
113
125
|
// Default to null when the field is not required and there is no input value
|
|
@@ -126,7 +138,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
126
138
|
case 'bool':
|
|
127
139
|
{
|
|
128
140
|
return /*#__PURE__*/ jsx(Toggle, {
|
|
129
|
-
checked: defaultValue === null ? null : defaultValue
|
|
141
|
+
checked: defaultValue === null ? null : Boolean(defaultValue),
|
|
130
142
|
disabled: disabled,
|
|
131
143
|
offLabel: formatMessage({
|
|
132
144
|
id: 'app.components.ToggleCheckbox.off-label',
|
|
@@ -239,7 +251,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
239
251
|
},
|
|
240
252
|
placeholder: formattedPlaceholder,
|
|
241
253
|
step: step,
|
|
242
|
-
value:
|
|
254
|
+
value: numberValue,
|
|
243
255
|
autoFocus: autoFocus
|
|
244
256
|
});
|
|
245
257
|
}
|
|
@@ -259,7 +271,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
259
271
|
},
|
|
260
272
|
placeholder: formattedPlaceholder,
|
|
261
273
|
type: "email",
|
|
262
|
-
value:
|
|
274
|
+
value: stringValue,
|
|
263
275
|
autoFocus: autoFocus
|
|
264
276
|
});
|
|
265
277
|
}
|
|
@@ -281,7 +293,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
281
293
|
},
|
|
282
294
|
placeholder: formattedPlaceholder,
|
|
283
295
|
type: "text",
|
|
284
|
-
value:
|
|
296
|
+
value: stringValue,
|
|
285
297
|
autoFocus: autoFocus
|
|
286
298
|
});
|
|
287
299
|
}
|
|
@@ -321,7 +333,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
321
333
|
},
|
|
322
334
|
placeholder: formattedPlaceholder,
|
|
323
335
|
type: showPassword ? 'text' : 'password',
|
|
324
|
-
value:
|
|
336
|
+
value: stringValue
|
|
325
337
|
});
|
|
326
338
|
}
|
|
327
339
|
case 'select':
|
|
@@ -338,7 +350,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
338
350
|
});
|
|
339
351
|
},
|
|
340
352
|
placeholder: formattedPlaceholder,
|
|
341
|
-
value:
|
|
353
|
+
value: selectValue,
|
|
342
354
|
children: options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value })=>{
|
|
343
355
|
return /*#__PURE__*/ jsx(SingleSelectOption, {
|
|
344
356
|
value: value,
|
|
@@ -361,13 +373,13 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
361
373
|
}
|
|
362
374
|
}),
|
|
363
375
|
placeholder: formattedPlaceholder,
|
|
364
|
-
value:
|
|
376
|
+
value: stringValue
|
|
365
377
|
});
|
|
366
378
|
}
|
|
367
379
|
case 'time':
|
|
368
380
|
{
|
|
369
381
|
const formattedValue = handleTimeChange({
|
|
370
|
-
value});
|
|
382
|
+
value: stringValue});
|
|
371
383
|
return /*#__PURE__*/ jsx(TimePicker, {
|
|
372
384
|
clearLabel: formatMessage({
|
|
373
385
|
id: 'clearLabel',
|