@webiny/app-headless-cms 5.27.0 → 5.28.0-beta.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/HeadlessCMS.js +33 -13
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.js +61 -34
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +41 -18
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
- package/admin/components/ContentEntryForm/Fields.js +22 -9
- package/admin/components/ContentEntryForm/Fields.js.map +1 -1
- package/admin/components/ContentEntryForm/Label.js +23 -9
- package/admin/components/ContentEntryForm/Label.js.map +1 -1
- package/admin/components/ContentEntryForm/RenderFieldElement.js +31 -15
- package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/createValidators.js +23 -8
- package/admin/components/ContentEntryForm/functions/createValidators.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/getValue.js +11 -2
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/setValue.js +16 -4
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
- package/admin/components/ContentEntryForm/useBind.js +31 -27
- package/admin/components/ContentEntryForm/useBind.js.map +1 -1
- package/admin/components/ContentEntryForm/useContentEntryForm.js +77 -52
- package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/useRenderPlugins.js +14 -5
- package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -1
- package/admin/components/ContentModelEditor/Context.js +73 -43
- package/admin/components/ContentModelEditor/Context.js.map +1 -1
- package/admin/components/ContentModelEditor/Editor.js +85 -50
- package/admin/components/ContentModelEditor/Editor.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js +37 -19
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/ContentModelEditor/Header.js +24 -10
- package/admin/components/ContentModelEditor/Header.js.map +1 -1
- package/admin/components/ContentModelEditor/PreviewTab.js +36 -17
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
- package/admin/components/ContentModelEditor/useContentModelEditor.js +15 -4
- package/admin/components/ContentModelEditor/useContentModelEditor.js.map +1 -1
- package/admin/components/DragPreview.js +27 -12
- package/admin/components/DragPreview.js.map +1 -1
- package/admin/components/Draggable.js +22 -8
- package/admin/components/Draggable.js.map +1 -1
- package/admin/components/DropZone/Center.js +26 -12
- package/admin/components/DropZone/Center.js.map +1 -1
- package/admin/components/DropZone/Horizontal.js +31 -17
- package/admin/components/DropZone/Horizontal.js.map +1 -1
- package/admin/components/DropZone/Vertical.js +29 -15
- package/admin/components/DropZone/Vertical.js.map +1 -1
- package/admin/components/DropZone/index.js +31 -4
- package/admin/components/DropZone/index.js.map +1 -1
- package/admin/components/Droppable.js +20 -6
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +50 -27
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +55 -36
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +60 -21
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +50 -32
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js +13 -3
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +16 -6
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.js +105 -69
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/Field.js +86 -51
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.js +66 -40
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.js +51 -27
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/Styled.js +24 -8
- package/admin/components/FieldEditor/Styled.js.map +1 -1
- package/admin/components/FieldEditor/index.js +21 -2
- package/admin/components/FieldEditor/index.js.map +1 -1
- package/admin/components/FieldEditor/useFieldEditor.js +13 -4
- package/admin/components/FieldEditor/useFieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/utils/deleteField.js +19 -5
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js +11 -2
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/components/FieldEditor/utils/index.js +39 -4
- package/admin/components/FieldEditor/utils/index.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveField.js +30 -20
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveRow.js +19 -6
- package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
- package/admin/constants/statusLabels.js +21 -9
- package/admin/constants/statusLabels.js.map +1 -1
- package/admin/contexts/Cms/NetworkError.js +14 -4
- package/admin/contexts/Cms/NetworkError.js.map +1 -1
- package/admin/contexts/Cms/index.js +29 -11
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/elements/ContentGroupMenuElement.js +27 -12
- package/admin/elements/ContentGroupMenuElement.js.map +1 -1
- package/admin/elements/ContentModelMenuElement.js +27 -12
- package/admin/elements/ContentModelMenuElement.js.map +1 -1
- package/admin/elements/NothingToShowElement.js +51 -30
- package/admin/elements/NothingToShowElement.js.map +1 -1
- package/admin/graphql/contentEntries.js +84 -40
- package/admin/graphql/contentEntries.js.map +1 -1
- package/admin/graphql/contentModels.js +20 -6
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/graphql/createFieldsList.js +19 -6
- package/admin/graphql/createFieldsList.js.map +1 -1
- package/admin/hooks/index.js +68 -6
- package/admin/hooks/index.js.map +1 -1
- package/admin/hooks/useApolloClient.js +13 -3
- package/admin/hooks/useApolloClient.js.map +1 -1
- package/admin/hooks/useCms.js +13 -4
- package/admin/hooks/useCms.js.map +1 -1
- package/admin/hooks/useLazyQuery.js +18 -6
- package/admin/hooks/useLazyQuery.js.map +1 -1
- package/admin/hooks/useMutation.js +18 -6
- package/admin/hooks/useMutation.js.map +1 -1
- package/admin/hooks/usePermission.js +39 -23
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/hooks/useQuery.js +18 -6
- package/admin/hooks/useQuery.js.map +1 -1
- package/admin/hooks/useQueryLocale.js +21 -7
- package/admin/hooks/useQueryLocale.js.map +1 -1
- package/admin/menus/CmsMenuLoader.js +32 -14
- package/admin/menus/CmsMenuLoader.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +43 -24
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/menus/GlobalSearchPlugins.js +31 -15
- package/admin/menus/GlobalSearchPlugins.js.map +1 -1
- package/admin/menus/NothingToShowElement.js +26 -11
- package/admin/menus/NothingToShowElement.js.map +1 -1
- package/admin/plugins/apiInformation/index.js +17 -5
- package/admin/plugins/apiInformation/index.js.map +1 -1
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js +33 -21
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js +33 -20
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/editor/defaultBar/BackButton.js +28 -11
- package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/CreateContentButton.js +39 -20
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Divider.js +14 -3
- package/admin/plugins/editor/defaultBar/Divider.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +67 -39
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js +29 -13
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js +30 -10
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js +15 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/Name.js +47 -30
- package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/NameStyled.js +22 -7
- package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/index.js +13 -1
- package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -1
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +40 -20
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/index.js +32 -15
- package/admin/plugins/editor/defaultBar/index.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js +33 -19
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.js +27 -10
- package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -1
- package/admin/plugins/editor/formSettings/index.js +21 -6
- package/admin/plugins/editor/formSettings/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/Accordion.js +43 -25
- package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +42 -24
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +27 -12
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/index.js +13 -2
- package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js +30 -15
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +34 -15
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +59 -36
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +50 -30
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.js +24 -8
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js +18 -5
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Time.js +34 -15
- package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +36 -18
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +47 -26
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/index.js +15 -3
- package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js +48 -17
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/File.js +34 -16
- package/admin/plugins/fieldRenderers/file/File.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/fileField.js +30 -14
- package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/fileFields.js +54 -33
- package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/index.js +15 -3
- package/admin/plugins/fieldRenderers/file/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/utils.js +27 -10
- package/admin/plugins/fieldRenderers/file/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/index.js +15 -3
- package/admin/plugins/fieldRenderers/longText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js +27 -12
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js +33 -16
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/index.js +15 -3
- package/admin/plugins/fieldRenderers/number/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js +27 -12
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js +33 -16
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/StyledComponents.js +17 -5
- package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/index.js +15 -3
- package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js +51 -29
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObject.js +35 -17
- package/admin/plugins/fieldRenderers/object/singleObject.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +29 -14
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +61 -36
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +58 -35
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js +37 -18
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js +38 -18
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +87 -53
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js +15 -3
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js +18 -5
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/helpers.js +23 -5
- package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js +42 -19
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js +5 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReference.js +59 -41
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js +60 -41
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +27 -10
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +30 -10
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.js +15 -3
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js +26 -11
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js +25 -11
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/index.js +15 -3
- package/admin/plugins/fieldRenderers/richText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js +32 -15
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js +43 -22
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +26 -12
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/index.js +15 -3
- package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js +27 -12
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js +33 -16
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fieldValidators/date/availableValidators.js +11 -2
- package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.js +27 -11
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.js +32 -15
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.js +32 -15
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/gte.js +23 -9
- package/admin/plugins/fieldValidators/gte.js.map +1 -1
- package/admin/plugins/fieldValidators/in.js +23 -9
- package/admin/plugins/fieldValidators/in.js.map +1 -1
- package/admin/plugins/fieldValidators/lte.js +23 -9
- package/admin/plugins/fieldValidators/lte.js.map +1 -1
- package/admin/plugins/fieldValidators/maxLength.js +23 -9
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
- package/admin/plugins/fieldValidators/minLength.js +23 -9
- package/admin/plugins/fieldValidators/minLength.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.js +40 -22
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/fieldValidators/required.js +8 -1
- package/admin/plugins/fieldValidators/required.js.map +1 -1
- package/admin/plugins/fieldValidators/unique.js +11 -2
- package/admin/plugins/fieldValidators/unique.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +72 -46
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.js +34 -18
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dateTime.js +60 -44
- package/admin/plugins/fields/dateTime.js.map +1 -1
- package/admin/plugins/fields/file.js +33 -17
- package/admin/plugins/fields/file.js.map +1 -1
- package/admin/plugins/fields/longText.js +33 -17
- package/admin/plugins/fields/longText.js.map +1 -1
- package/admin/plugins/fields/number.js +39 -22
- package/admin/plugins/fields/number.js.map +1 -1
- package/admin/plugins/fields/object/ObjectFields.js +28 -11
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
- package/admin/plugins/fields/object.js +30 -14
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref.js +60 -34
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/fields/richText.js +33 -17
- package/admin/plugins/fields/richText.js.map +1 -1
- package/admin/plugins/fields/text.js +37 -20
- package/admin/plugins/fields/text.js.map +1 -1
- package/admin/plugins/getObjectId.js +8 -1
- package/admin/plugins/getObjectId.js.map +1 -1
- package/admin/plugins/icons.js +25 -10
- package/admin/plugins/icons.js.map +1 -1
- package/admin/plugins/index.d.ts +1 -1
- package/admin/plugins/index.js +32 -12
- package/admin/plugins/index.js.map +1 -1
- package/admin/plugins/install.js +55 -30
- package/admin/plugins/install.js.map +1 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.js +74 -50
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +70 -46
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +54 -34
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelList.js +38 -20
- package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +71 -46
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js +27 -12
- package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js +44 -23
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/StyledComponents.js +14 -3
- package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/types.js +5 -1
- package/admin/plugins/permissionRenderer/components/types.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/useCmsData.js +43 -22
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
- package/admin/plugins/permissionRenderer/index.js +22 -8
- package/admin/plugins/permissionRenderer/index.js.map +1 -1
- package/admin/plugins/routes.js +66 -37
- package/admin/plugins/routes.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.js +24 -11
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/plugins/transformers/index.js +18 -5
- package/admin/plugins/transformers/index.js.map +1 -1
- package/admin/plugins/transformers/numberTransformer.js +11 -2
- package/admin/plugins/transformers/numberTransformer.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +19 -7
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +33 -15
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +23 -9
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +17 -5
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +20 -7
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +17 -5
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +27 -13
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/types.js +5 -1
- package/admin/plugins/upgrades/5.19.0/types.js.map +1 -1
- package/admin/plugins/upgrades/v5.0.0.js +58 -33
- package/admin/plugins/upgrades/v5.0.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.19.0.js +118 -82
- package/admin/plugins/upgrades/v5.19.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.5.0.js +58 -33
- package/admin/plugins/upgrades/v5.5.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.8.0.js +58 -33
- package/admin/plugins/upgrades/v5.8.0.js.map +1 -1
- package/admin/plugins/validators/dateGte.js +23 -9
- package/admin/plugins/validators/dateGte.js.map +1 -1
- package/admin/plugins/validators/dateLte.js +23 -9
- package/admin/plugins/validators/dateLte.js.map +1 -1
- package/admin/plugins/validators/gte.js +20 -7
- package/admin/plugins/validators/gte.js.map +1 -1
- package/admin/plugins/validators/in.js +20 -7
- package/admin/plugins/validators/in.js.map +1 -1
- package/admin/plugins/validators/lte.js +20 -7
- package/admin/plugins/validators/lte.js.map +1 -1
- package/admin/plugins/validators/maxLength.js +20 -7
- package/admin/plugins/validators/maxLength.js.map +1 -1
- package/admin/plugins/validators/minLength.js +20 -7
- package/admin/plugins/validators/minLength.js.map +1 -1
- package/admin/plugins/validators/pattern.js +20 -7
- package/admin/plugins/validators/pattern.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/email.js +8 -1
- package/admin/plugins/validators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/lowerCase.js +8 -1
- package/admin/plugins/validators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +8 -1
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/upperCase.js +8 -1
- package/admin/plugins/validators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +8 -1
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/url.js +8 -1
- package/admin/plugins/validators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/validators/required.js +12 -3
- package/admin/plugins/validators/required.js.map +1 -1
- package/admin/plugins/validators/timeGte.js +22 -8
- package/admin/plugins/validators/timeGte.js.map +1 -1
- package/admin/plugins/validators/timeLte.js +22 -8
- package/admin/plugins/validators/timeLte.js.map +1 -1
- package/admin/plugins/validators/unique.js +18 -6
- package/admin/plugins/validators/unique.js.map +1 -1
- package/admin/plugins/welcomeScreenWidget.js +23 -9
- package/admin/plugins/welcomeScreenWidget.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +57 -31
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +43 -21
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +102 -75
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +72 -41
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +95 -67
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList.js +38 -19
- package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js +65 -31
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/Header.js +31 -16
- package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +90 -55
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/index.js +33 -14
- package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +47 -26
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +50 -27
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +47 -26
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +45 -24
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +27 -12
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js +19 -7
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useRevision.js +57 -36
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js +62 -35
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js +42 -25
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +29 -9
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +51 -29
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
- package/admin/views/contentEntries/experiment/Property.js +74 -58
- package/admin/views/contentEntries/experiment/Property.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntries.js +13 -4
- package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +59 -39
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntry.js +13 -4
- package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroups.js +28 -12
- package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +114 -77
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +117 -78
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModelGroups/DelayedOnChange.js +49 -48
- package/admin/views/contentModelGroups/DelayedOnChange.js.map +1 -1
- package/admin/views/contentModelGroups/IconPicker.js +56 -33
- package/admin/views/contentModelGroups/IconPicker.js.map +1 -1
- package/admin/views/contentModelGroups/graphql.js +22 -7
- package/admin/views/contentModelGroups/graphql.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.js +104 -71
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModelEditor.js +30 -14
- package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
- package/admin/views/contentModels/ContentModels.js +49 -30
- package/admin/views/contentModels/ContentModels.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +144 -108
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +107 -70
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/cache.js +41 -19
- package/admin/views/contentModels/cache.js.map +1 -1
- package/admin/views/contentModels/types.js +5 -1
- package/admin/views/contentModels/types.js.map +1 -1
- package/admin/views/utils.js +16 -4
- package/admin/views/utils.js.map +1 -1
- package/admin/viewsGraphql.js +22 -7
- package/admin/viewsGraphql.js.map +1 -1
- package/index.js +30 -11
- package/index.js.map +1 -1
- package/package.json +22 -22
- package/types.d.ts +3 -3
- package/types.js +5 -1
- package/types.js.map +1 -1
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useReference = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
13
|
+
|
|
14
|
+
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
15
|
+
|
|
16
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
+
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
+
|
|
20
|
+
var _react = require("react");
|
|
21
|
+
|
|
22
|
+
var _hooks = require("../../../../hooks");
|
|
23
|
+
|
|
24
|
+
var _graphql = require("./graphql");
|
|
25
|
+
|
|
26
|
+
var _helpers = require("./helpers");
|
|
10
27
|
|
|
11
28
|
var getValueHash = function getValueHash(value) {
|
|
12
29
|
if (!value || !value.id && !value.entryId) {
|
|
@@ -18,34 +35,34 @@ var getValueHash = function getValueHash(value) {
|
|
|
18
35
|
return value.id.split("#").shift();
|
|
19
36
|
};
|
|
20
37
|
|
|
21
|
-
|
|
38
|
+
var useReference = function useReference(_ref) {
|
|
22
39
|
var bind = _ref.bind,
|
|
23
40
|
field = _ref.field;
|
|
24
|
-
var allEntries = useRef({});
|
|
25
|
-
var client = useApolloClient();
|
|
41
|
+
var allEntries = (0, _react.useRef)({});
|
|
42
|
+
var client = (0, _hooks.useApolloClient)();
|
|
26
43
|
|
|
27
|
-
var _useState = useState(""),
|
|
28
|
-
_useState2 =
|
|
44
|
+
var _useState = (0, _react.useState)(""),
|
|
45
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
29
46
|
search = _useState2[0],
|
|
30
47
|
setSearch = _useState2[1];
|
|
31
48
|
|
|
32
|
-
var _useState3 = useState(false),
|
|
33
|
-
_useState4 =
|
|
49
|
+
var _useState3 = (0, _react.useState)(false),
|
|
50
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
34
51
|
loading = _useState4[0],
|
|
35
52
|
setLoading = _useState4[1];
|
|
36
53
|
|
|
37
|
-
var _useState5 = useState({}),
|
|
38
|
-
_useState6 =
|
|
54
|
+
var _useState5 = (0, _react.useState)({}),
|
|
55
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
39
56
|
entries = _useState6[0],
|
|
40
57
|
setEntries = _useState6[1];
|
|
41
58
|
|
|
42
|
-
var _useState7 = useState({}),
|
|
43
|
-
_useState8 =
|
|
59
|
+
var _useState7 = (0, _react.useState)({}),
|
|
60
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
44
61
|
latestEntries = _useState8[0],
|
|
45
62
|
setLatestEntries = _useState8[1];
|
|
46
63
|
|
|
47
|
-
var _useState9 = useState(null),
|
|
48
|
-
_useState10 =
|
|
64
|
+
var _useState9 = (0, _react.useState)(null),
|
|
65
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
49
66
|
valueEntry = _useState10[0],
|
|
50
67
|
setValueEntry = _useState10[1];
|
|
51
68
|
|
|
@@ -57,10 +74,10 @@ export var useReference = function useReference(_ref) {
|
|
|
57
74
|
var valueHash = getValueHash(value);
|
|
58
75
|
|
|
59
76
|
var searchEntries = /*#__PURE__*/function () {
|
|
60
|
-
var _ref2 =
|
|
77
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
61
78
|
var _yield$client$query, data, collection;
|
|
62
79
|
|
|
63
|
-
return
|
|
80
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
64
81
|
while (1) {
|
|
65
82
|
switch (_context.prev = _context.next) {
|
|
66
83
|
case 0:
|
|
@@ -75,7 +92,7 @@ export var useReference = function useReference(_ref) {
|
|
|
75
92
|
setLoading(true);
|
|
76
93
|
_context.next = 5;
|
|
77
94
|
return client.query({
|
|
78
|
-
query: SEARCH_CONTENT_ENTRIES,
|
|
95
|
+
query: _graphql.SEARCH_CONTENT_ENTRIES,
|
|
79
96
|
variables: {
|
|
80
97
|
modelIds: models.map(function (m) {
|
|
81
98
|
return m.modelId;
|
|
@@ -89,13 +106,13 @@ export var useReference = function useReference(_ref) {
|
|
|
89
106
|
_yield$client$query = _context.sent;
|
|
90
107
|
data = _yield$client$query.data;
|
|
91
108
|
setLoading(false);
|
|
92
|
-
collection = convertReferenceEntriesToOptionCollection(data.content.data);
|
|
109
|
+
collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
|
|
93
110
|
|
|
94
111
|
if (valueEntry) {
|
|
95
112
|
collection[valueEntry.entryId] = valueEntry;
|
|
96
113
|
}
|
|
97
114
|
|
|
98
|
-
allEntries.current =
|
|
115
|
+
allEntries.current = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, allEntries.current), collection);
|
|
99
116
|
setEntries(collection);
|
|
100
117
|
|
|
101
118
|
case 12:
|
|
@@ -111,16 +128,16 @@ export var useReference = function useReference(_ref) {
|
|
|
111
128
|
};
|
|
112
129
|
}();
|
|
113
130
|
|
|
114
|
-
useEffect(function () {
|
|
131
|
+
(0, _react.useEffect)(function () {
|
|
115
132
|
searchEntries();
|
|
116
133
|
}, [search]);
|
|
117
|
-
useEffect(function () {
|
|
134
|
+
(0, _react.useEffect)(function () {
|
|
118
135
|
if (models.length === 0) {
|
|
119
136
|
return;
|
|
120
137
|
}
|
|
121
138
|
|
|
122
139
|
client.query({
|
|
123
|
-
query: SEARCH_CONTENT_ENTRIES,
|
|
140
|
+
query: _graphql.SEARCH_CONTENT_ENTRIES,
|
|
124
141
|
variables: {
|
|
125
142
|
modelIds: models.map(function (m) {
|
|
126
143
|
return m.modelId;
|
|
@@ -135,17 +152,17 @@ export var useReference = function useReference(_ref) {
|
|
|
135
152
|
fetchPolicy: "network-only"
|
|
136
153
|
}).then(function (_ref3) {
|
|
137
154
|
var data = _ref3.data;
|
|
138
|
-
var latestEntryData = convertReferenceEntriesToOptionCollection(data.content.data);
|
|
155
|
+
var latestEntryData = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
|
|
139
156
|
|
|
140
157
|
if (valueEntry) {
|
|
141
158
|
latestEntryData[valueEntry.entryId] = valueEntry;
|
|
142
159
|
}
|
|
143
160
|
|
|
144
161
|
setLatestEntries(latestEntryData);
|
|
145
|
-
allEntries.current =
|
|
162
|
+
allEntries.current = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, allEntries.current), latestEntryData);
|
|
146
163
|
});
|
|
147
164
|
}, [modelsHash]);
|
|
148
|
-
useEffect(function () {
|
|
165
|
+
(0, _react.useEffect)(function () {
|
|
149
166
|
if (!value || !models) {
|
|
150
167
|
setValueEntry(function () {
|
|
151
168
|
return null;
|
|
@@ -172,7 +189,7 @@ export var useReference = function useReference(_ref) {
|
|
|
172
189
|
*/
|
|
173
190
|
|
|
174
191
|
client.query({
|
|
175
|
-
query: GET_CONTENT_ENTRY,
|
|
192
|
+
query: _graphql.GET_CONTENT_ENTRY,
|
|
176
193
|
variables: {
|
|
177
194
|
entry: {
|
|
178
195
|
modelId: value.modelId,
|
|
@@ -187,14 +204,13 @@ export var useReference = function useReference(_ref) {
|
|
|
187
204
|
return;
|
|
188
205
|
}
|
|
189
206
|
|
|
190
|
-
var option =
|
|
207
|
+
var option = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, (0, _helpers.convertReferenceEntryToOption)(dataEntry)), {}, {
|
|
191
208
|
latest: dataEntry.id,
|
|
192
209
|
published: res.data.published.data ? res.data.published.data.id : null
|
|
193
210
|
});
|
|
194
|
-
|
|
195
211
|
allEntries.current[option.entryId] = option;
|
|
196
212
|
setLatestEntries(function (prev) {
|
|
197
|
-
return
|
|
213
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prev), {}, (0, _defineProperty2.default)({}, option.entryId, (0, _objectSpread3.default)({}, option)));
|
|
198
214
|
});
|
|
199
215
|
/**
|
|
200
216
|
* Calculate a couple of props for the Autocomplete component.
|
|
@@ -205,7 +221,7 @@ export var useReference = function useReference(_ref) {
|
|
|
205
221
|
});
|
|
206
222
|
});
|
|
207
223
|
}, [valueHash, modelsHash]);
|
|
208
|
-
var onChange = useCallback(function (value, entry) {
|
|
224
|
+
var onChange = (0, _react.useCallback)(function (value, entry) {
|
|
209
225
|
if (value !== null) {
|
|
210
226
|
setSearch("");
|
|
211
227
|
setValueEntry(function () {
|
|
@@ -227,14 +243,14 @@ export var useReference = function useReference(_ref) {
|
|
|
227
243
|
* Format options for the Autocomplete component.
|
|
228
244
|
*/
|
|
229
245
|
|
|
230
|
-
var options = useMemo(function () {
|
|
246
|
+
var options = (0, _react.useMemo)(function () {
|
|
231
247
|
return Object.values(entries);
|
|
232
248
|
}, [valueHash, entries]);
|
|
233
249
|
/**
|
|
234
250
|
* Format default options for the Autocomplete component.
|
|
235
251
|
*/
|
|
236
252
|
|
|
237
|
-
var defaultOptions = useMemo(function () {
|
|
253
|
+
var defaultOptions = (0, _react.useMemo)(function () {
|
|
238
254
|
return Object.values(latestEntries);
|
|
239
255
|
}, [valueHash, latestEntries]);
|
|
240
256
|
var outputOptions = (search && options ? options : defaultOptions) || [];
|
|
@@ -252,4 +268,6 @@ export var useReference = function useReference(_ref) {
|
|
|
252
268
|
loading: loading,
|
|
253
269
|
options: outputOptions
|
|
254
270
|
};
|
|
255
|
-
};
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
exports.useReference = useReference;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useReference.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRY","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","variables","modelIds","m","limit","data","collection","content","current","length","fetchPolicy","then","latestEntryData","entry","res","dataEntry","latest","option","published","prev","onChange","options","Object","values","defaultOptions","outputOptions","some","opt","push"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"]}
|
|
1
|
+
{"version":3,"names":["getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","useRef","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","m","limit","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","length","fetchPolicy","then","latestEntryData","entry","GET_CONTENT_ENTRY","res","dataEntry","latest","option","convertReferenceEntryToOption","published","prev","onChange","useCallback","options","useMemo","Object","values","defaultOptions","outputOptions","some","opt","push"],"sources":["useReference.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,40 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useReferences = void 0;
|
|
9
|
+
|
|
10
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
|
|
20
|
+
var _hooks = require("../../../../hooks");
|
|
21
|
+
|
|
22
|
+
var _graphql = require("./graphql");
|
|
23
|
+
|
|
24
|
+
var _helpers = require("./helpers");
|
|
25
|
+
|
|
26
|
+
var useReferences = function useReferences(_ref) {
|
|
10
27
|
var bind = _ref.bind,
|
|
11
28
|
field = _ref.field;
|
|
12
|
-
var isMounted = useRef(true);
|
|
13
|
-
var allEntries = useRef({});
|
|
14
|
-
var client = useApolloClient();
|
|
29
|
+
var isMounted = (0, _react.useRef)(true);
|
|
30
|
+
var allEntries = (0, _react.useRef)({});
|
|
31
|
+
var client = (0, _hooks.useApolloClient)();
|
|
15
32
|
|
|
16
|
-
var _useState = useState(""),
|
|
17
|
-
_useState2 =
|
|
33
|
+
var _useState = (0, _react.useState)(""),
|
|
34
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
18
35
|
search = _useState2[0],
|
|
19
36
|
setSearch = _useState2[1];
|
|
20
37
|
|
|
21
|
-
var _useState3 = useState(false),
|
|
22
|
-
_useState4 =
|
|
38
|
+
var _useState3 = (0, _react.useState)(false),
|
|
39
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
23
40
|
loading = _useState4[0],
|
|
24
41
|
setLoading = _useState4[1];
|
|
25
42
|
|
|
26
|
-
var _useState5 = useState({}),
|
|
27
|
-
_useState6 =
|
|
43
|
+
var _useState5 = (0, _react.useState)({}),
|
|
44
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
28
45
|
entries = _useState6[0],
|
|
29
46
|
setEntries = _useState6[1];
|
|
30
47
|
|
|
31
|
-
var _useState7 = useState([]),
|
|
32
|
-
_useState8 =
|
|
48
|
+
var _useState7 = (0, _react.useState)([]),
|
|
49
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
33
50
|
latestEntries = _useState8[0],
|
|
34
51
|
setLatestEntries = _useState8[1];
|
|
35
52
|
|
|
36
|
-
var _useState9 = useState([]),
|
|
37
|
-
_useState10 =
|
|
53
|
+
var _useState9 = (0, _react.useState)([]),
|
|
54
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
38
55
|
valueEntries = _useState10[0],
|
|
39
56
|
setValueEntries = _useState10[1];
|
|
40
57
|
|
|
@@ -43,10 +60,10 @@ export var useReferences = function useReferences(_ref) {
|
|
|
43
60
|
var values = bind.value ? bind.value : [];
|
|
44
61
|
|
|
45
62
|
var searchEntries = /*#__PURE__*/function () {
|
|
46
|
-
var _ref2 =
|
|
63
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
47
64
|
var _yield$client$query, data, collection;
|
|
48
65
|
|
|
49
|
-
return
|
|
66
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
50
67
|
while (1) {
|
|
51
68
|
switch (_context.prev = _context.next) {
|
|
52
69
|
case 0:
|
|
@@ -61,7 +78,7 @@ export var useReferences = function useReferences(_ref) {
|
|
|
61
78
|
setLoading(true);
|
|
62
79
|
_context.next = 5;
|
|
63
80
|
return client.query({
|
|
64
|
-
query: SEARCH_CONTENT_ENTRIES,
|
|
81
|
+
query: _graphql.SEARCH_CONTENT_ENTRIES,
|
|
65
82
|
variables: {
|
|
66
83
|
modelIds: models.map(function (m) {
|
|
67
84
|
return m.modelId;
|
|
@@ -74,8 +91,8 @@ export var useReferences = function useReferences(_ref) {
|
|
|
74
91
|
_yield$client$query = _context.sent;
|
|
75
92
|
data = _yield$client$query.data;
|
|
76
93
|
setLoading(false);
|
|
77
|
-
collection = convertReferenceEntriesToOptionCollection(data.content.data);
|
|
78
|
-
allEntries.current =
|
|
94
|
+
collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
|
|
95
|
+
allEntries.current = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, allEntries.current), collection);
|
|
79
96
|
setEntries(collection);
|
|
80
97
|
|
|
81
98
|
case 11:
|
|
@@ -91,17 +108,17 @@ export var useReferences = function useReferences(_ref) {
|
|
|
91
108
|
};
|
|
92
109
|
}();
|
|
93
110
|
|
|
94
|
-
useEffect(function () {
|
|
111
|
+
(0, _react.useEffect)(function () {
|
|
95
112
|
return function () {
|
|
96
113
|
isMounted.current = false;
|
|
97
114
|
};
|
|
98
115
|
}, []);
|
|
99
|
-
useEffect(function () {
|
|
116
|
+
(0, _react.useEffect)(function () {
|
|
100
117
|
searchEntries();
|
|
101
118
|
}, [search]);
|
|
102
|
-
useEffect(function () {
|
|
119
|
+
(0, _react.useEffect)(function () {
|
|
103
120
|
client.query({
|
|
104
|
-
query: SEARCH_CONTENT_ENTRIES,
|
|
121
|
+
query: _graphql.SEARCH_CONTENT_ENTRIES,
|
|
105
122
|
variables: {
|
|
106
123
|
modelIds: models.map(function (m) {
|
|
107
124
|
return m.modelId;
|
|
@@ -121,19 +138,19 @@ export var useReferences = function useReferences(_ref) {
|
|
|
121
138
|
return;
|
|
122
139
|
}
|
|
123
140
|
|
|
124
|
-
var collection = convertReferenceEntriesToOptionCollection(data.content.data);
|
|
141
|
+
var collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
|
|
125
142
|
setLatestEntries(Object.values(collection));
|
|
126
|
-
allEntries.current =
|
|
143
|
+
allEntries.current = (0, _objectSpread2.default)({}, collection);
|
|
127
144
|
});
|
|
128
145
|
}, [modelsHash]);
|
|
129
|
-
useEffect(function () {
|
|
146
|
+
(0, _react.useEffect)(function () {
|
|
130
147
|
if (!values || values.length == 0) {
|
|
131
148
|
return;
|
|
132
149
|
}
|
|
133
150
|
|
|
134
151
|
setLoading(true);
|
|
135
152
|
client.query({
|
|
136
|
-
query: GET_CONTENT_ENTRIES,
|
|
153
|
+
query: _graphql.GET_CONTENT_ENTRIES,
|
|
137
154
|
variables: {
|
|
138
155
|
/**
|
|
139
156
|
* We need make sure nothing else other than modelId and id is passed to entries variable.
|
|
@@ -160,7 +177,7 @@ export var useReferences = function useReferences(_ref) {
|
|
|
160
177
|
var existingItem = latest[entryId];
|
|
161
178
|
|
|
162
179
|
if (existingItem) {
|
|
163
|
-
collection[entryId] =
|
|
180
|
+
collection[entryId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingItem), {}, {
|
|
164
181
|
published: {
|
|
165
182
|
id: item.id,
|
|
166
183
|
entryId: item.entryId,
|
|
@@ -174,7 +191,7 @@ export var useReferences = function useReferences(_ref) {
|
|
|
174
191
|
return collection;
|
|
175
192
|
}, latest); // Calculate a couple of props for the Autocomplete component.
|
|
176
193
|
|
|
177
|
-
setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));
|
|
194
|
+
setValueEntries(Object.values(entries).map(_helpers.convertReferenceEntryToOption));
|
|
178
195
|
});
|
|
179
196
|
}, []);
|
|
180
197
|
/**
|
|
@@ -182,7 +199,7 @@ export var useReferences = function useReferences(_ref) {
|
|
|
182
199
|
* It will also format the value to store to the DB.
|
|
183
200
|
*/
|
|
184
201
|
|
|
185
|
-
var onChange = useCallback(function (values) {
|
|
202
|
+
var onChange = (0, _react.useCallback)(function (values) {
|
|
186
203
|
setSearch("");
|
|
187
204
|
setValueEntries(values); // Update parent form
|
|
188
205
|
|
|
@@ -194,11 +211,11 @@ export var useReferences = function useReferences(_ref) {
|
|
|
194
211
|
}));
|
|
195
212
|
}, []); // Format options for the Autocomplete component.
|
|
196
213
|
|
|
197
|
-
var options = useMemo(function () {
|
|
214
|
+
var options = (0, _react.useMemo)(function () {
|
|
198
215
|
return Object.values(entries);
|
|
199
216
|
}, [entries]); // Format default options for the Autocomplete component.
|
|
200
217
|
|
|
201
|
-
var defaultOptions = useMemo(function () {
|
|
218
|
+
var defaultOptions = (0, _react.useMemo)(function () {
|
|
202
219
|
return Object.values(latestEntries);
|
|
203
220
|
}, [latestEntries]);
|
|
204
221
|
return {
|
|
@@ -210,4 +227,6 @@ export var useReferences = function useReferences(_ref) {
|
|
|
210
227
|
// Options to show when the autocomplete dropdown is visible
|
|
211
228
|
options: search ? options : defaultOptions || []
|
|
212
229
|
};
|
|
213
|
-
};
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
exports.useReferences = useReferences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useReferences.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRIES","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","useReferences","bind","field","isMounted","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","variables","modelIds","map","m","modelId","data","collection","content","current","limit","fetchPolicy","then","Object","length","id","res","latest","reduce","item","entryId","published","existingItem","title","onChange","options","defaultOptions"],"mappings":";;;;AAAA,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,OAAjC,EAA0CC,MAA1C,EAAkDC,QAAlD,QAAkE,OAAlE;AACA,SAASC,eAAT;AAEA,SACIC,sBADJ,EAEIC,mBAFJ;AAWA,SACIC,yCADJ,EAEIC,6BAFJ;AASA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAA0C;AAAA,MAAvCC,IAAuC,QAAvCA,IAAuC;AAAA,MAAjCC,KAAiC,QAAjCA,KAAiC;AACnE,MAAMC,SAAS,GAAGV,MAAM,CAAC,IAAD,CAAxB;AACA,MAAMW,UAAU,GAAGX,MAAM,CAAuB,EAAvB,CAAzB;AACA,MAAMY,MAAM,GAAGV,eAAe,EAA9B;;AACA,kBAA4BD,QAAQ,CAAS,EAAT,CAApC;AAAA;AAAA,MAAOY,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA8Bb,QAAQ,CAAU,KAAV,CAAtC;AAAA;AAAA,MAAOc,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAA8Bf,QAAQ,CAAuB,EAAvB,CAAtC;AAAA;AAAA,MAAOgB,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAA0CjB,QAAQ,CAAe,EAAf,CAAlD;AAAA;AAAA,MAAOkB,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,mBAAwCnB,QAAQ,CAAe,EAAf,CAAhD;AAAA;AAAA,MAAOoB,YAAP;AAAA,MAAqBC,eAArB;;AAEA,MAAMC,MAAM,GAAId,KAAK,CAACe,QAAN,GAAiBf,KAAK,CAACe,QAAN,CAAeD,MAAf,IAAyB,EAA1C,GAA+C,EAA/D;AAIA,MAAME,UAAU,GAAGF,MAAM,CAACG,IAAP,CAAY,GAAZ,CAAnB;AACA,MAAMC,MAAkC,GAAGnB,IAAI,CAACoB,KAAL,GAAapB,IAAI,CAACoB,KAAlB,GAA0B,EAArE;;AAEA,MAAMC,aAAa;AAAA,yEAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,kBACbhB,MADa;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKlBG,cAAAA,UAAU,CAAC,IAAD,CAAV;AALkB;AAAA,qBAMKJ,MAAM,CAACkB,KAAP,CAGrB;AACEA,gBAAAA,KAAK,EAAE3B,sBADT;AAEE4B,gBAAAA,SAAS,EAAE;AACPC,kBAAAA,QAAQ,EAAET,MAAM,CAACU,GAAP,CAAW,UAAAC,CAAC;AAAA,2BAAIA,CAAC,CAACC,OAAN;AAAA,mBAAZ,CADH;AAEPL,kBAAAA,KAAK,EAAEjB;AAFA;AAFb,eAHqB,CANL;;AAAA;AAAA;AAMVuB,cAAAA,IANU,uBAMVA,IANU;AAgBlBpB,cAAAA,UAAU,CAAC,KAAD,CAAV;AAEMqB,cAAAA,UAlBY,GAkBChC,yCAAyC,CAAC+B,IAAI,CAACE,OAAL,CAAaF,IAAd,CAlB1C;AAoBlBzB,cAAAA,UAAU,CAAC4B,OAAX,mCACO5B,UAAU,CAAC4B,OADlB,GAEOF,UAFP;AAKAnB,cAAAA,UAAU,CAACmB,UAAD,CAAV;;AAzBkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAbR,aAAa;AAAA;AAAA;AAAA,KAAnB;;AA4BA/B,EAAAA,SAAS,CAAC,YAAM;AACZ,WAAO,YAAM;AACTY,MAAAA,SAAS,CAAC6B,OAAV,GAAoB,KAApB;AACH,KAFD;AAGH,GAJQ,EAIN,EAJM,CAAT;AAMAzC,EAAAA,SAAS,CAAC,YAAM;AACZ+B,IAAAA,aAAa;AAChB,GAFQ,EAEN,CAAChB,MAAD,CAFM,CAAT;AAIAf,EAAAA,SAAS,CAAC,YAAM;AACZc,IAAAA,MAAM,CACDkB,KADL,CACsE;AAC9DA,MAAAA,KAAK,EAAE3B,sBADuD;AAE9D4B,MAAAA,SAAS,EAAE;AACPC,QAAAA,QAAQ,EAAET,MAAM,CAACU,GAAP,CAAW,UAAAC,CAAC;AAAA,iBAAIA,CAAC,CAACC,OAAN;AAAA,SAAZ,CADH;AAEPK,QAAAA,KAAK,EAAE;AAFA,OAFmD;;AAM9D;AAChB;AACA;AACA;AACgBC,MAAAA,WAAW,EAAE;AAViD,KADtE,EAaKC,IAbL,CAaU,iBAAc;AAAA,UAAXN,IAAW,SAAXA,IAAW;;AAChB,UAAI,CAAC1B,SAAS,CAAC6B,OAAf,EAAwB;AACpB;AACH;;AAED,UAAMF,UAAU,GAAGhC,yCAAyC,CAAC+B,IAAI,CAACE,OAAL,CAAaF,IAAd,CAA5D;AACAhB,MAAAA,gBAAgB,CAACuB,MAAM,CAAChB,MAAP,CAAcU,UAAd,CAAD,CAAhB;AACA1B,MAAAA,UAAU,CAAC4B,OAAX,qBACOF,UADP;AAGH,KAvBL;AAwBH,GAzBQ,EAyBN,CAACZ,UAAD,CAzBM,CAAT;AA2BA3B,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAI,CAAC6B,MAAD,IAAWA,MAAM,CAACiB,MAAP,IAAiB,CAAhC,EAAmC;AAC/B;AACH;;AAED5B,IAAAA,UAAU,CAAC,IAAD,CAAV;AAEAJ,IAAAA,MAAM,CACDkB,KADL,CAC8D;AACtDA,MAAAA,KAAK,EAAE1B,mBAD+C;AAEtD2B,MAAAA,SAAS,EAAE;AACP;AACpB;AACA;AACoBd,QAAAA,OAAO,EAAEU,MAAM,CAACM,GAAP,CAAW,UAAAL,KAAK,EAAI;AACzB,iBAAO;AACHO,YAAAA,OAAO,EAAEP,KAAK,CAACO,OADZ;AAEHU,YAAAA,EAAE,EAAEjB,KAAK,CAACiB;AAFP,WAAP;AAIH,SALQ;AAJF;AAF2C,KAD9D,EAeKH,IAfL,CAeU,UAAAI,GAAG,EAAI;AACT,UAAI,CAACpC,SAAS,CAAC6B,OAAf,EAAwB;AACpB;AACH;;AAEDvB,MAAAA,UAAU,CAAC,KAAD,CAAV;AAEA,UAAM+B,MAAM,GAAG,CAACD,GAAG,CAACV,IAAJ,CAASW,MAAT,CAAgBX,IAAhB,IAAwB,EAAzB,EAA6BY,MAA7B,CAAoC,UAACX,UAAD,EAAaY,IAAb,EAAsB;AACrEZ,QAAAA,UAAU,CAACY,IAAI,CAACC,OAAN,CAAV,GAA2BD,IAA3B;AACA,eAAOZ,UAAP;AACH,OAHc,EAGZ,EAHY,CAAf;AAKA,UAAMpB,OAAO,GAAG,CAAC6B,GAAG,CAACV,IAAJ,CAASe,SAAT,CAAmBf,IAAnB,IAA2B,EAA5B,EAAgCY,MAAhC,CAAuC,UAACX,UAAD,EAAaY,IAAb,EAAsB;AACzE,YAAMC,OAAO,GAAGD,IAAI,CAACC,OAArB;AACA,YAAME,YAAY,GAAGL,MAAM,CAACG,OAAD,CAA3B;;AACA,YAAIE,YAAJ,EAAkB;AACdf,UAAAA,UAAU,CAACa,OAAD,CAAV,mCACOE,YADP;AAEID,YAAAA,SAAS,EAAE;AACPN,cAAAA,EAAE,EAAEI,IAAI,CAACJ,EADF;AAEPK,cAAAA,OAAO,EAAED,IAAI,CAACC,OAFP;AAGPG,cAAAA,KAAK,EAAEJ,IAAI,CAACI;AAHL;AAFf;AAQA,iBAAOhB,UAAP;AACH;;AACDA,QAAAA,UAAU,CAACa,OAAD,CAAV,GAAsBD,IAAtB;AACA,eAAOZ,UAAP;AACH,OAhBe,EAgBbU,MAhBa,CAAhB,CAZS,CA8BT;;AACAzB,MAAAA,eAAe,CAACqB,MAAM,CAAChB,MAAP,CAAcV,OAAd,EAAuBgB,GAAvB,CAA2B3B,6BAA3B,CAAD,CAAf;AACH,KA/CL;AAgDH,GAvDQ,EAuDN,EAvDM,CAAT;AAyDA;AACJ;AACA;AACA;;AACI,MAAMgD,QAAQ,GAAGzD,WAAW,CAAC,UAAC8B,MAAD,EAAgC;AACzDb,IAAAA,SAAS,CAAC,EAAD,CAAT;AACAQ,IAAAA,eAAe,CAACK,MAAD,CAAf,CAFyD,CAIzD;;AACAnB,IAAAA,IAAI,CAAC8C,QAAL,CACI3B,MAAM,CAACM,GAAP,CAAW,UAAAgB,IAAI;AAAA,aAAK;AAChBd,QAAAA,OAAO,EAAEc,IAAI,CAACd,OADE;AAEhBU,QAAAA,EAAE,EAAEI,IAAI,CAACJ;AAFO,OAAL;AAAA,KAAf,CADJ;AAMH,GAX2B,EAWzB,EAXyB,CAA5B,CA/ImE,CA4JnE;;AACA,MAAMU,OAAO,GAAGxD,OAAO,CAAC;AAAA,WAAM4C,MAAM,CAAChB,MAAP,CAAcV,OAAd,CAAN;AAAA,GAAD,EAA+B,CAACA,OAAD,CAA/B,CAAvB,CA7JmE,CA+JnE;;AACA,MAAMuC,cAAc,GAAGzD,OAAO,CAAC;AAAA,WAAM4C,MAAM,CAAChB,MAAP,CAAcR,aAAd,CAAN;AAAA,GAAD,EAAqC,CAACA,aAAD,CAArC,CAA9B;AAEA,SAAO;AACHmC,IAAAA,QAAQ,EAARA,QADG;AAEHvC,IAAAA,OAAO,EAAPA,OAFG;AAGHD,IAAAA,SAAS,EAATA,SAHG;AAIH;AACAG,IAAAA,OAAO,EAAEI,YALN;AAMH;AACAkC,IAAAA,OAAO,EAAE1C,MAAM,GAAG0C,OAAH,GAAaC,cAAc,IAAI;AAP3C,GAAP;AASH,CA3KM","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"]}
|
|
1
|
+
{"version":3,"names":["useReferences","bind","field","isMounted","useRef","allEntries","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","m","modelId","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","limit","fetchPolicy","then","Object","length","GET_CONTENT_ENTRIES","id","res","latest","reduce","item","entryId","published","existingItem","title","convertReferenceEntryToOption","onChange","useCallback","options","useMemo","defaultOptions"],"sources":["useReferences.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAWA;;AASO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAA0C;EAAA,IAAvCC,IAAuC,QAAvCA,IAAuC;EAAA,IAAjCC,KAAiC,QAAjCA,KAAiC;EACnE,IAAMC,SAAS,GAAG,IAAAC,aAAA,EAAO,IAAP,CAAlB;EACA,IAAMC,UAAU,GAAG,IAAAD,aAAA,EAA6B,EAA7B,CAAnB;EACA,IAAME,MAAM,GAAG,IAAAC,sBAAA,GAAf;;EACA,gBAA4B,IAAAC,eAAA,EAAiB,EAAjB,CAA5B;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,SAAf;;EACA,iBAA8B,IAAAF,eAAA,EAAkB,KAAlB,CAA9B;EAAA;EAAA,IAAOG,OAAP;EAAA,IAAgBC,UAAhB;;EACA,iBAA8B,IAAAJ,eAAA,EAA+B,EAA/B,CAA9B;EAAA;EAAA,IAAOK,OAAP;EAAA,IAAgBC,UAAhB;;EACA,iBAA0C,IAAAN,eAAA,EAAuB,EAAvB,CAA1C;EAAA;EAAA,IAAOO,aAAP;EAAA,IAAsBC,gBAAtB;;EACA,iBAAwC,IAAAR,eAAA,EAAuB,EAAvB,CAAxC;EAAA;EAAA,IAAOS,YAAP;EAAA,IAAqBC,eAArB;;EAEA,IAAMC,MAAM,GAAIjB,KAAK,CAACkB,QAAN,GAAiBlB,KAAK,CAACkB,QAAN,CAAeD,MAAf,IAAyB,EAA1C,GAA+C,EAA/D;EAIA,IAAME,UAAU,GAAGF,MAAM,CAACG,IAAP,CAAY,GAAZ,CAAnB;EACA,IAAMC,MAAkC,GAAGtB,IAAI,CAACuB,KAAL,GAAavB,IAAI,CAACuB,KAAlB,GAA0B,EAArE;;EAEA,IAAMC,aAAa;IAAA,mGAAG;MAAA;;MAAA;QAAA;UAAA;YAAA;cAAA,IACbhB,MADa;gBAAA;gBAAA;cAAA;;cAAA;;YAAA;cAKlBG,UAAU,CAAC,IAAD,CAAV;cALkB;cAAA,OAMKN,MAAM,CAACoB,KAAP,CAGrB;gBACEA,KAAK,EAAEC,+BADT;gBAEEC,SAAS,EAAE;kBACPC,QAAQ,EAAEV,MAAM,CAACW,GAAP,CAAW,UAAAC,CAAC;oBAAA,OAAIA,CAAC,CAACC,OAAN;kBAAA,CAAZ,CADH;kBAEPN,KAAK,EAAEjB;gBAFA;cAFb,CAHqB,CANL;;YAAA;cAAA;cAMVwB,IANU,uBAMVA,IANU;cAgBlBrB,UAAU,CAAC,KAAD,CAAV;cAEMsB,UAlBY,GAkBC,IAAAC,kDAAA,EAA0CF,IAAI,CAACG,OAAL,CAAaH,IAAvD,CAlBD;cAoBlB5B,UAAU,CAACgC,OAAX,+DACOhC,UAAU,CAACgC,OADlB,GAEOH,UAFP;cAKApB,UAAU,CAACoB,UAAD,CAAV;;YAzBkB;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAAH;;IAAA,gBAAbT,aAAa;MAAA;IAAA;EAAA,GAAnB;;EA4BA,IAAAa,gBAAA,EAAU,YAAM;IACZ,OAAO,YAAM;MACTnC,SAAS,CAACkC,OAAV,GAAoB,KAApB;IACH,CAFD;EAGH,CAJD,EAIG,EAJH;EAMA,IAAAC,gBAAA,EAAU,YAAM;IACZb,aAAa;EAChB,CAFD,EAEG,CAAChB,MAAD,CAFH;EAIA,IAAA6B,gBAAA,EAAU,YAAM;IACZhC,MAAM,CACDoB,KADL,CACsE;MAC9DA,KAAK,EAAEC,+BADuD;MAE9DC,SAAS,EAAE;QACPC,QAAQ,EAAEV,MAAM,CAACW,GAAP,CAAW,UAAAC,CAAC;UAAA,OAAIA,CAAC,CAACC,OAAN;QAAA,CAAZ,CADH;QAEPO,KAAK,EAAE;MAFA,CAFmD;;MAM9D;AAChB;AACA;AACA;MACgBC,WAAW,EAAE;IAViD,CADtE,EAaKC,IAbL,CAaU,iBAAc;MAAA,IAAXR,IAAW,SAAXA,IAAW;;MAChB,IAAI,CAAC9B,SAAS,CAACkC,OAAf,EAAwB;QACpB;MACH;;MAED,IAAMH,UAAU,GAAG,IAAAC,kDAAA,EAA0CF,IAAI,CAACG,OAAL,CAAaH,IAAvD,CAAnB;MACAjB,gBAAgB,CAAC0B,MAAM,CAACnB,MAAP,CAAcW,UAAd,CAAD,CAAhB;MACA7B,UAAU,CAACgC,OAAX,mCACOH,UADP;IAGH,CAvBL;EAwBH,CAzBD,EAyBG,CAACb,UAAD,CAzBH;EA2BA,IAAAiB,gBAAA,EAAU,YAAM;IACZ,IAAI,CAACf,MAAD,IAAWA,MAAM,CAACoB,MAAP,IAAiB,CAAhC,EAAmC;MAC/B;IACH;;IAED/B,UAAU,CAAC,IAAD,CAAV;IAEAN,MAAM,CACDoB,KADL,CAC8D;MACtDA,KAAK,EAAEkB,4BAD+C;MAEtDhB,SAAS,EAAE;QACP;AACpB;AACA;QACoBf,OAAO,EAAEU,MAAM,CAACO,GAAP,CAAW,UAAAN,KAAK,EAAI;UACzB,OAAO;YACHQ,OAAO,EAAER,KAAK,CAACQ,OADZ;YAEHa,EAAE,EAAErB,KAAK,CAACqB;UAFP,CAAP;QAIH,CALQ;MAJF;IAF2C,CAD9D,EAeKJ,IAfL,CAeU,UAAAK,GAAG,EAAI;MACT,IAAI,CAAC3C,SAAS,CAACkC,OAAf,EAAwB;QACpB;MACH;;MAEDzB,UAAU,CAAC,KAAD,CAAV;MAEA,IAAMmC,MAAM,GAAG,CAACD,GAAG,CAACb,IAAJ,CAASc,MAAT,CAAgBd,IAAhB,IAAwB,EAAzB,EAA6Be,MAA7B,CAAoC,UAACd,UAAD,EAAae,IAAb,EAAsB;QACrEf,UAAU,CAACe,IAAI,CAACC,OAAN,CAAV,GAA2BD,IAA3B;QACA,OAAOf,UAAP;MACH,CAHc,EAGZ,EAHY,CAAf;MAKA,IAAMrB,OAAO,GAAG,CAACiC,GAAG,CAACb,IAAJ,CAASkB,SAAT,CAAmBlB,IAAnB,IAA2B,EAA5B,EAAgCe,MAAhC,CAAuC,UAACd,UAAD,EAAae,IAAb,EAAsB;QACzE,IAAMC,OAAO,GAAGD,IAAI,CAACC,OAArB;QACA,IAAME,YAAY,GAAGL,MAAM,CAACG,OAAD,CAA3B;;QACA,IAAIE,YAAJ,EAAkB;UACdlB,UAAU,CAACgB,OAAD,CAAV,+DACOE,YADP;YAEID,SAAS,EAAE;cACPN,EAAE,EAAEI,IAAI,CAACJ,EADF;cAEPK,OAAO,EAAED,IAAI,CAACC,OAFP;cAGPG,KAAK,EAAEJ,IAAI,CAACI;YAHL;UAFf;UAQA,OAAOnB,UAAP;QACH;;QACDA,UAAU,CAACgB,OAAD,CAAV,GAAsBD,IAAtB;QACA,OAAOf,UAAP;MACH,CAhBe,EAgBba,MAhBa,CAAhB,CAZS,CA8BT;;MACA7B,eAAe,CAACwB,MAAM,CAACnB,MAAP,CAAcV,OAAd,EAAuBiB,GAAvB,CAA2BwB,sCAA3B,CAAD,CAAf;IACH,CA/CL;EAgDH,CAvDD,EAuDG,EAvDH;EAyDA;AACJ;AACA;AACA;;EACI,IAAMC,QAAQ,GAAG,IAAAC,kBAAA,EAAY,UAACjC,MAAD,EAAgC;IACzDb,SAAS,CAAC,EAAD,CAAT;IACAQ,eAAe,CAACK,MAAD,CAAf,CAFyD,CAIzD;;IACAtB,IAAI,CAACsD,QAAL,CACIhC,MAAM,CAACO,GAAP,CAAW,UAAAmB,IAAI;MAAA,OAAK;QAChBjB,OAAO,EAAEiB,IAAI,CAACjB,OADE;QAEhBa,EAAE,EAAEI,IAAI,CAACJ;MAFO,CAAL;IAAA,CAAf,CADJ;EAMH,CAXgB,EAWd,EAXc,CAAjB,CA/ImE,CA4JnE;;EACA,IAAMY,OAAO,GAAG,IAAAC,cAAA,EAAQ;IAAA,OAAMhB,MAAM,CAACnB,MAAP,CAAcV,OAAd,CAAN;EAAA,CAAR,EAAsC,CAACA,OAAD,CAAtC,CAAhB,CA7JmE,CA+JnE;;EACA,IAAM8C,cAAc,GAAG,IAAAD,cAAA,EAAQ;IAAA,OAAMhB,MAAM,CAACnB,MAAP,CAAcR,aAAd,CAAN;EAAA,CAAR,EAA4C,CAACA,aAAD,CAA5C,CAAvB;EAEA,OAAO;IACHwC,QAAQ,EAARA,QADG;IAEH5C,OAAO,EAAPA,OAFG;IAGHD,SAAS,EAATA,SAHG;IAIH;IACAG,OAAO,EAAEI,YALN;IAMH;IACAwC,OAAO,EAAEhD,MAAM,GAAGgD,OAAH,GAAaE,cAAc,IAAI;EAP3C,CAAP;AASH,CA3KM"}
|
|
@@ -1,16 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.useNewRefEntry = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _ContentEntriesContext = require("../../../../views/contentEntries/ContentEntriesContext");
|
|
17
|
+
|
|
18
|
+
var _MissingEntryHelpText = _interopRequireWildcard(require("../components/MissingEntryHelpText"));
|
|
19
|
+
|
|
20
|
+
var useNewRefEntry = function useNewRefEntry(_ref) {
|
|
6
21
|
var field = _ref.field;
|
|
7
22
|
var models = (field.settings && field.settings.models ? field.settings.models : null) || [];
|
|
8
23
|
|
|
9
|
-
var _models =
|
|
24
|
+
var _models = (0, _slicedToArray2.default)(models, 1),
|
|
10
25
|
refModelId = _models[0].modelId;
|
|
11
26
|
|
|
12
27
|
var referenceMultipleModels = models.length > 1;
|
|
13
|
-
var contentEntriesContextValue = useContext(
|
|
28
|
+
var contentEntriesContextValue = (0, _react.useContext)(_ContentEntriesContext.Context);
|
|
14
29
|
/**
|
|
15
30
|
* We don't wrap the "ContentEntryForm" with "ContentEntriesContextProvider"
|
|
16
31
|
* when rendering it inside content model editor's preview tab.
|
|
@@ -42,9 +57,9 @@ export var useNewRefEntry = function useNewRefEntry(_ref) {
|
|
|
42
57
|
var helpText = null;
|
|
43
58
|
|
|
44
59
|
if (referenceMultipleModels) {
|
|
45
|
-
helpText = /*#__PURE__*/
|
|
60
|
+
helpText = /*#__PURE__*/_react.default.createElement(_MissingEntryHelpText.ReferenceMultipleModelsHelpText, null);
|
|
46
61
|
} else {
|
|
47
|
-
helpText = /*#__PURE__*/
|
|
62
|
+
helpText = /*#__PURE__*/_react.default.createElement(_MissingEntryHelpText.default, {
|
|
48
63
|
refModelId: refModelId
|
|
49
64
|
});
|
|
50
65
|
}
|
|
@@ -54,4 +69,6 @@ export var useNewRefEntry = function useNewRefEntry(_ref) {
|
|
|
54
69
|
refModelId: refModelId,
|
|
55
70
|
helpText: helpText
|
|
56
71
|
};
|
|
57
|
-
};
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
exports.useNewRefEntry = useNewRefEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["useNewRefEntry","field","models","settings","refModelId","modelId","referenceMultipleModels","length","contentEntriesContextValue","useContext","ContentEntriesContext","renderedInPreviewTab","renderNewEntryModal","insideDialog","helpText"],"sources":["useNewRefEntry.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { Context as ContentEntriesContext } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { CmsEditorField } from \"~/types\";\nimport MissingEntryHelpText, {\n ReferenceMultipleModelsHelpText\n} from \"../components/MissingEntryHelpText\";\n\ninterface UseNewRefEntryParams {\n field: CmsEditorField;\n}\n\ninterface UseNewRefEntry {\n renderNewEntryModal: boolean;\n refModelId: string;\n helpText: React.ReactElement;\n}\n\nexport const useNewRefEntry = ({ field }: UseNewRefEntryParams): UseNewRefEntry => {\n const models = (field.settings && field.settings.models ? field.settings.models : null) || [];\n const [{ modelId: refModelId }] = models;\n const referenceMultipleModels = models.length > 1;\n\n const contentEntriesContextValue = useContext(ContentEntriesContext);\n\n /**\n * We don't wrap the \"ContentEntryForm\" with \"ContentEntriesContextProvider\"\n * when rendering it inside content model editor's preview tab.\n *\n * And we also don't want to have new ref field Dialog in the preview tab.\n * Therefore, we check for \"contentEntriesContextValue\" to know that we're inside preview tab.\n */\n const renderedInPreviewTab = contentEntriesContextValue === null;\n\n /**\n * Set \"renderNewEntryModal\" value.\n */\n let renderNewEntryModal;\n\n if (renderedInPreviewTab) {\n renderNewEntryModal = false;\n } else if (referenceMultipleModels) {\n renderNewEntryModal = false;\n } else {\n const { insideDialog } = contentEntriesContextValue;\n renderNewEntryModal = !insideDialog;\n }\n /**\n * Set \"helpText\" value.\n */\n let helpText = null;\n if (referenceMultipleModels) {\n helpText = <ReferenceMultipleModelsHelpText />;\n } else {\n helpText = <MissingEntryHelpText refModelId={refModelId} />;\n }\n\n return {\n renderNewEntryModal,\n refModelId,\n helpText\n };\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAcO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAqD;EAAA,IAAlDC,KAAkD,QAAlDA,KAAkD;EAC/E,IAAMC,MAAM,GAAG,CAACD,KAAK,CAACE,QAAN,IAAkBF,KAAK,CAACE,QAAN,CAAeD,MAAjC,GAA0CD,KAAK,CAACE,QAAN,CAAeD,MAAzD,GAAkE,IAAnE,KAA4E,EAA3F;;EACA,2CAAkCA,MAAlC;EAAA,IAAkBE,UAAlB,cAASC,OAAT;;EACA,IAAMC,uBAAuB,GAAGJ,MAAM,CAACK,MAAP,GAAgB,CAAhD;EAEA,IAAMC,0BAA0B,GAAG,IAAAC,iBAAA,EAAWC,8BAAX,CAAnC;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;EACI,IAAMC,oBAAoB,GAAGH,0BAA0B,KAAK,IAA5D;EAEA;AACJ;AACA;;EACI,IAAII,mBAAJ;;EAEA,IAAID,oBAAJ,EAA0B;IACtBC,mBAAmB,GAAG,KAAtB;EACH,CAFD,MAEO,IAAIN,uBAAJ,EAA6B;IAChCM,mBAAmB,GAAG,KAAtB;EACH,CAFM,MAEA;IACH,IAAQC,YAAR,GAAyBL,0BAAzB,CAAQK,YAAR;IACAD,mBAAmB,GAAG,CAACC,YAAvB;EACH;EACD;AACJ;AACA;;;EACI,IAAIC,QAAQ,GAAG,IAAf;;EACA,IAAIR,uBAAJ,EAA6B;IACzBQ,QAAQ,gBAAG,6BAAC,qDAAD,OAAX;EACH,CAFD,MAEO;IACHA,QAAQ,gBAAG,6BAAC,6BAAD;MAAsB,UAAU,EAAEV;IAAlC,EAAX;EACH;;EAED,OAAO;IACHQ,mBAAmB,EAAnBA,mBADG;IAEHR,UAAU,EAAVA,UAFG;IAGHU,QAAQ,EAARA;EAHG,CAAP;AAKH,CA5CM"}
|