@firecms/core 3.0.0-alpha.8 → 3.0.0-alpha.81
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/README.md +1 -1
- package/dist/components/ArrayContainer.d.ts +42 -0
- package/dist/components/CircularProgressCenter.d.ts +11 -0
- package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
- package/dist/components/DeleteEntityDialog.d.ts +12 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +35 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
- package/dist/components/EntityCollectionTable/SimpleEntityCollectionTable.d.ts +95 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
- package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
- package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
- package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
- package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
- package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
- package/dist/components/EntityCollectionTable/index.d.ts +8 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
- package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
- package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
- package/dist/components/EntityCollectionTable/types.d.ts +53 -0
- package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
- package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
- package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
- package/dist/components/EntityPreview.d.ts +11 -0
- package/dist/components/ErrorBoundary.d.ts +11 -0
- package/dist/components/ErrorTooltip.d.ts +2 -0
- package/dist/components/ErrorView.d.ts +19 -0
- package/dist/components/FieldConfigBadge.d.ts +4 -0
- package/dist/components/FireCMSAppBar.d.ts +26 -0
- package/dist/components/FireCMSLogo.d.ts +7 -0
- package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
- package/dist/components/HomePage/FavouritesView.d.ts +3 -0
- package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
- package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
- package/dist/components/HomePage/index.d.ts +3 -0
- package/dist/components/LabelWithIcon.d.ts +14 -0
- package/dist/components/NotFoundPage.d.ts +1 -0
- package/dist/components/ReferenceSelectionInner.d.ts +58 -0
- package/dist/components/ReferenceWidget.d.ts +28 -0
- package/dist/components/SearchIconsView.d.ts +5 -0
- package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +214 -0
- package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/dist/components/VirtualTable/common.d.ts +2 -0
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
- package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
- package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
- package/dist/components/VirtualTable/index.d.ts +2 -0
- package/dist/components/VirtualTable/types.d.ts +34 -0
- package/dist/components/index.d.ts +21 -0
- package/dist/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/contexts/DataSourceContext.d.ts +3 -0
- package/dist/contexts/DialogsProvider.d.ts +4 -0
- package/dist/contexts/ModeController.d.ts +4 -0
- package/dist/contexts/NavigationContext.d.ts +3 -0
- package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
- package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
- package/dist/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/core/Drawer.d.ts +23 -0
- package/dist/core/EntitySidePanel.d.ts +10 -0
- package/dist/core/FireCMS.d.ts +14 -0
- package/dist/core/NavigationRoutes.d.ts +21 -0
- package/dist/core/Scaffold.d.ts +52 -0
- package/dist/core/SideDialogs.d.ts +23 -0
- package/dist/core/field_configs.d.ts +7 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/core/useBuildModeController.d.ts +6 -0
- package/dist/form/EntityForm.d.ts +75 -0
- package/dist/form/PropertyFieldBinding.d.ts +30 -0
- package/dist/form/components/CustomIdField.d.ts +9 -0
- package/dist/form/components/ErrorFocus.d.ts +4 -0
- package/dist/form/components/FieldHelperText.d.ts +12 -0
- package/dist/form/components/FormikArrayContainer.d.ts +18 -0
- package/dist/form/components/StorageItemPreview.d.ts +13 -0
- package/dist/form/components/StorageUploadProgress.d.ts +10 -0
- package/dist/form/components/SubmitListener.d.ts +1 -0
- package/dist/form/components/SwitchControl.d.ts +8 -0
- package/dist/form/components/index.d.ts +3 -0
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
- package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +20 -0
- package/dist/form/useClearRestoreValue.d.ts +13 -0
- package/dist/form/validation.d.ts +25 -0
- package/dist/hooks/data/delete.d.ts +37 -0
- package/dist/hooks/data/save.d.ts +42 -0
- package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
- package/dist/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/hooks/data/useDataSource.d.ts +6 -0
- package/dist/hooks/data/useEntityFetch.d.ts +28 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/useAuthController.d.ts +11 -0
- package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/hooks/useClipboard.d.ts +57 -0
- package/dist/hooks/useDialogsController.d.ts +11 -0
- package/dist/hooks/useFireCMSContext.d.ts +12 -0
- package/dist/hooks/useLargeLayout.d.ts +1 -0
- package/dist/hooks/useModeController.d.ts +20 -0
- package/dist/hooks/useNavigationController.d.ts +9 -0
- package/dist/hooks/useReferenceDialog.d.ts +18 -0
- package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
- package/dist/hooks/useSideDialogsController.d.ts +18 -0
- package/dist/hooks/useSideEntityController.d.ts +12 -0
- package/dist/hooks/useSnackbarController.d.ts +41 -0
- package/dist/hooks/useStorageSource.d.ts +6 -0
- package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/hooks/useVerifyLicense.d.ts +0 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.es.js +15810 -26791
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +5 -1027
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/EntityView.d.ts +22 -0
- package/dist/internal/common.d.ts +3 -0
- package/dist/internal/useBuildDataSource.d.ts +22 -0
- package/dist/internal/useBuildNavigationController.d.ts +14 -0
- package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
- package/dist/internal/useBuildSideEntityController.d.ts +4 -0
- package/dist/internal/useLocaleConfig.d.ts +1 -0
- package/dist/internal/useRestoreScroll.d.ts +6 -0
- package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
- package/dist/preview/PropertyPreview.d.ts +7 -0
- package/dist/preview/PropertyPreviewProps.d.ts +43 -0
- package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
- package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
- package/dist/preview/components/BooleanPreview.d.ts +7 -0
- package/dist/preview/components/DatePreview.d.ts +7 -0
- package/dist/preview/components/EmptyValue.d.ts +4 -0
- package/dist/preview/components/EnumValuesChip.d.ts +13 -0
- package/dist/preview/components/ImagePreview.d.ts +12 -0
- package/dist/preview/components/ReferencePreview.d.ts +22 -0
- package/dist/preview/components/StorageThumbnail.d.ts +13 -0
- package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
- package/dist/preview/index.d.ts +23 -0
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
- package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
- package/dist/preview/util.d.ts +7 -0
- package/dist/types/analytics.d.ts +1 -0
- package/dist/types/appcheck.d.ts +26 -0
- package/dist/types/auth.d.ts +40 -0
- package/dist/types/collections.d.ts +451 -0
- package/dist/types/datasource.d.ts +262 -0
- package/dist/types/dialogs_controller.d.ts +32 -0
- package/dist/types/entities.d.ts +57 -0
- package/dist/types/entity_actions.d.ts +35 -0
- package/dist/types/entity_callbacks.d.ts +171 -0
- package/dist/types/entity_link_builder.d.ts +7 -0
- package/dist/types/export_import.d.ts +21 -0
- package/dist/types/fields.d.ts +181 -0
- package/dist/types/firecms.d.ts +151 -0
- package/dist/types/firecms_context.d.ts +110 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/local_config_persistence.d.ts +21 -0
- package/dist/types/locales.d.ts +4 -0
- package/dist/types/modify_collections.d.ts +5 -0
- package/dist/types/navigation.d.ts +178 -0
- package/dist/types/permissions.d.ts +63 -0
- package/dist/types/plugins.d.ts +181 -0
- package/dist/types/properties.d.ts +681 -0
- package/dist/types/property_config.d.ts +42 -0
- package/dist/types/resolved_entities.d.ts +98 -0
- package/dist/types/side_dialogs_controller.d.ts +57 -0
- package/dist/types/side_entity_controller.d.ts +83 -0
- package/dist/types/storage.d.ts +82 -0
- package/dist/types/user.d.ts +36 -0
- package/dist/util/arrays.d.ts +1 -0
- package/dist/util/builders.d.ts +64 -0
- package/dist/util/collections.d.ts +3 -0
- package/dist/util/common.d.ts +2 -0
- package/dist/util/dates.d.ts +1 -0
- package/dist/util/entities.d.ts +28 -0
- package/dist/util/enums.d.ts +7 -0
- package/dist/util/flatten_object.d.ts +3 -0
- package/dist/util/hash.d.ts +1 -0
- package/dist/util/icon_list.d.ts +1 -0
- package/dist/util/icon_synonyms.d.ts +1950 -0
- package/dist/util/icons.d.ts +4 -0
- package/dist/util/index.d.ts +22 -0
- package/dist/util/join_collections.d.ts +9 -0
- package/dist/util/make_properties_editable.d.ts +3 -0
- package/dist/util/navigation_from_path.d.ts +24 -0
- package/dist/util/navigation_utils.d.ts +20 -0
- package/dist/util/objects.d.ts +10 -0
- package/dist/util/os.d.ts +2 -0
- package/dist/util/parent_references_from_path.d.ts +6 -0
- package/dist/util/paths.d.ts +14 -0
- package/dist/util/permissions.d.ts +5 -0
- package/dist/util/plurals.d.ts +18 -0
- package/dist/util/property_utils.d.ts +23 -0
- package/dist/util/references.d.ts +2 -0
- package/dist/util/regexp.d.ts +7 -0
- package/dist/util/resolutions.d.ts +64 -0
- package/dist/util/storage.d.ts +3 -0
- package/dist/util/strings.d.ts +6 -0
- package/dist/util/useDebounce.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +36 -0
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +112 -142
- package/src/components/ArrayContainer.tsx +369 -0
- package/src/components/CircularProgressCenter.tsx +26 -0
- package/src/components/DeleteConfirmationDialog.tsx +47 -0
- package/src/components/DeleteEntityDialog.tsx +207 -0
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +174 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +496 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
- package/src/components/EntityCollectionTable/SimpleEntityCollectionTable.tsx +369 -0
- package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
- package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
- package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
- package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
- package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
- package/src/components/EntityCollectionTable/index.tsx +20 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
- package/src/components/EntityCollectionTable/types.tsx +58 -0
- package/src/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.tsx +225 -0
- package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
- package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
- package/src/components/EntityPreview.tsx +83 -0
- package/src/components/ErrorBoundary.tsx +40 -0
- package/src/components/ErrorTooltip.tsx +11 -0
- package/src/components/ErrorView.tsx +52 -0
- package/src/components/FieldConfigBadge.tsx +17 -0
- package/src/components/FireCMSAppBar.tsx +157 -0
- package/src/components/FireCMSLogo.tsx +73 -0
- package/src/components/HomePage/DefaultHomePage.tsx +209 -0
- package/src/components/HomePage/FavouritesView.tsx +64 -0
- package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
- package/src/components/HomePage/NavigationGroup.tsx +39 -0
- package/src/components/HomePage/index.tsx +3 -0
- package/src/components/LabelWithIcon.tsx +33 -0
- package/src/components/NotFoundPage.tsx +25 -0
- package/src/components/ReferenceSelectionInner.tsx +364 -0
- package/src/components/ReferenceWidget.tsx +145 -0
- package/src/components/SearchIconsView.tsx +75 -0
- package/src/components/VirtualTable/VirtualTable.tsx +402 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +32 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +53 -0
- package/src/components/VirtualTable/common.tsx +18 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
- package/src/components/VirtualTable/index.tsx +2 -0
- package/src/components/VirtualTable/types.tsx +44 -0
- package/src/components/index.tsx +31 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/DataSourceContext.tsx +4 -0
- package/src/contexts/DialogsProvider.tsx +52 -0
- package/src/contexts/ModeController.tsx +13 -0
- package/src/contexts/NavigationContext.tsx +4 -0
- package/src/contexts/SideDialogsControllerContext.tsx +4 -0
- package/src/contexts/SideEntityControllerContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.tsx +12 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.ts +3 -0
- package/src/core/Drawer.tsx +161 -0
- package/src/core/EntitySidePanel.tsx +89 -0
- package/src/core/FireCMS.tsx +184 -0
- package/src/core/NavigationRoutes.tsx +118 -0
- package/src/core/Scaffold.tsx +278 -0
- package/src/core/SideDialogs.tsx +156 -0
- package/src/core/field_configs.tsx +400 -0
- package/src/core/index.tsx +14 -0
- package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
- package/src/core/useBuildModeController.tsx +60 -0
- package/src/form/EntityForm.tsx +646 -0
- package/src/form/PropertyFieldBinding.tsx +313 -0
- package/src/form/components/CustomIdField.tsx +124 -0
- package/src/form/components/ErrorFocus.tsx +51 -0
- package/src/form/components/FieldHelperText.tsx +58 -0
- package/src/form/components/FormikArrayContainer.tsx +44 -0
- package/src/form/components/StorageItemPreview.tsx +66 -0
- package/src/form/components/StorageUploadProgress.tsx +104 -0
- package/src/form/components/SubmitListener.tsx +32 -0
- package/src/form/components/SwitchControl.tsx +39 -0
- package/src/form/components/index.tsx +3 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
- package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +67 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +136 -0
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
- package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
- package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
- package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
- package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
- package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
- package/src/form/index.tsx +42 -0
- package/src/form/useClearRestoreValue.tsx +35 -0
- package/src/form/validation.ts +413 -0
- package/src/hooks/data/delete.ts +101 -0
- package/src/hooks/data/save.ts +165 -0
- package/src/hooks/data/useCollectionFetch.tsx +162 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useDataSource.tsx +9 -0
- package/src/hooks/data/useEntityFetch.tsx +129 -0
- package/src/hooks/index.tsx +23 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useDialogsController.tsx +14 -0
- package/src/hooks/useFireCMSContext.tsx +50 -0
- package/src/hooks/useLargeLayout.tsx +97 -0
- package/src/hooks/useModeController.tsx +24 -0
- package/src/hooks/useNavigationController.tsx +12 -0
- package/src/hooks/useReferenceDialog.tsx +56 -0
- package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
- package/src/hooks/useSideDialogsController.tsx +21 -0
- package/src/hooks/useSideEntityController.tsx +15 -0
- package/src/hooks/useSnackbarController.tsx +76 -0
- package/src/hooks/useStorageSource.tsx +9 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/hooks/useVerifyLicense.tsx +1 -0
- package/src/index.ts +8 -0
- package/src/internal/EntityView.tsx +576 -0
- package/src/internal/common.tsx +5 -0
- package/src/internal/useBuildDataSource.ts +358 -0
- package/src/internal/useBuildNavigationController.tsx +371 -0
- package/src/internal/useBuildSideDialogsController.tsx +126 -0
- package/src/internal/useBuildSideEntityController.tsx +172 -0
- package/src/internal/useLocaleConfig.tsx +18 -0
- package/src/internal/useRestoreScroll.tsx +48 -0
- package/src/internal/useUnsavedChangesDialog.tsx +106 -0
- package/src/preview/PropertyPreview.tsx +222 -0
- package/src/preview/PropertyPreviewProps.tsx +59 -0
- package/src/preview/components/ArrayEnumPreview.tsx +39 -0
- package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
- package/src/preview/components/BooleanPreview.tsx +11 -0
- package/src/preview/components/DatePreview.tsx +27 -0
- package/src/preview/components/EmptyValue.tsx +10 -0
- package/src/preview/components/EnumValuesChip.tsx +38 -0
- package/src/preview/components/ImagePreview.tsx +106 -0
- package/src/preview/components/ReferencePreview.tsx +249 -0
- package/src/preview/components/StorageThumbnail.tsx +84 -0
- package/src/preview/components/UrlComponentPreview.tsx +79 -0
- package/src/preview/index.ts +27 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
- package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
- package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
- package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
- package/src/preview/util.ts +31 -0
- package/src/types/analytics.ts +34 -0
- package/src/types/appcheck.ts +29 -0
- package/src/types/auth.tsx +49 -0
- package/src/types/collections.ts +530 -0
- package/src/types/datasource.ts +389 -0
- package/src/types/dialogs_controller.tsx +33 -0
- package/src/types/entities.ts +76 -0
- package/src/types/entity_actions.tsx +39 -0
- package/src/types/entity_callbacks.ts +209 -0
- package/src/types/entity_link_builder.ts +8 -0
- package/src/types/export_import.ts +26 -0
- package/src/types/fields.tsx +220 -0
- package/src/types/firecms.tsx +175 -0
- package/src/types/firecms_context.tsx +128 -0
- package/src/types/index.ts +26 -0
- package/src/types/local_config_persistence.tsx +23 -0
- package/src/types/locales.ts +81 -0
- package/src/types/modify_collections.tsx +6 -0
- package/src/types/navigation.ts +214 -0
- package/src/types/permissions.ts +76 -0
- package/src/types/plugins.tsx +219 -0
- package/src/types/properties.ts +851 -0
- package/src/types/property_config.tsx +72 -0
- package/src/types/resolved_entities.ts +148 -0
- package/src/types/side_dialogs_controller.tsx +68 -0
- package/src/types/side_entity_controller.tsx +96 -0
- package/src/types/storage.ts +96 -0
- package/src/types/user.ts +37 -0
- package/src/util/arrays.ts +3 -0
- package/src/util/builders.ts +139 -0
- package/src/util/collections.ts +50 -0
- package/src/util/common.tsx +2 -0
- package/src/util/dates.ts +1 -0
- package/src/util/entities.ts +196 -0
- package/src/util/enums.ts +56 -0
- package/src/util/flatten_object.ts +45 -0
- package/src/util/hash.ts +11 -0
- package/src/util/icon_list.ts +17 -0
- package/src/util/icon_synonyms.ts +1950 -0
- package/src/util/icons.tsx +45 -0
- package/src/util/index.ts +22 -0
- package/src/util/join_collections.ts +172 -0
- package/src/util/make_properties_editable.ts +29 -0
- package/src/util/navigation_from_path.ts +107 -0
- package/src/util/navigation_utils.ts +111 -0
- package/src/util/objects.ts +168 -0
- package/src/util/os.ts +13 -0
- package/src/util/parent_references_from_path.ts +56 -0
- package/src/util/paths.ts +27 -0
- package/src/util/permissions.ts +80 -0
- package/src/util/plurals.ts +190 -0
- package/src/util/property_utils.tsx +130 -0
- package/src/util/references.ts +20 -0
- package/src/util/regexp.ts +32 -0
- package/src/util/resolutions.ts +399 -0
- package/src/util/storage.ts +92 -0
- package/src/util/strings.ts +62 -0
- package/src/util/useDebounce.ts +25 -0
- package/src/util/useStorageUploadController.tsx +243 -0
- package/src/util/useTraceUpdate.tsx +23 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
type LayoutListener = (isLargeLayout: boolean) => void;
|
|
4
|
+
|
|
5
|
+
const breakpoints = {
|
|
6
|
+
xs: 0,
|
|
7
|
+
sm: 640,
|
|
8
|
+
md: 768,
|
|
9
|
+
lg: 1024,
|
|
10
|
+
xl: 1280,
|
|
11
|
+
"2xl": 1536,
|
|
12
|
+
"3xl": 1920
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Global state and listeners array
|
|
16
|
+
let isLargeLayoutGlobal = checkLargeLayout("lg"); // Default value
|
|
17
|
+
const listeners: LayoutListener[] = [];
|
|
18
|
+
|
|
19
|
+
// Utility to notify all listeners
|
|
20
|
+
const notifyListeners = () => {
|
|
21
|
+
listeners.forEach(listener => listener(isLargeLayoutGlobal));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// Listen to resize events once, at a global level
|
|
25
|
+
window.addEventListener("resize", () => {
|
|
26
|
+
const newIsLargeLayout = checkLargeLayout("lg");
|
|
27
|
+
if (newIsLargeLayout !== isLargeLayoutGlobal) {
|
|
28
|
+
isLargeLayoutGlobal = newIsLargeLayout;
|
|
29
|
+
notifyListeners();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export const useLargeLayout = () => {
|
|
34
|
+
const [isLargeLayout, setIsLargeLayout] = useState(isLargeLayoutGlobal);
|
|
35
|
+
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
// Listener function to update component state
|
|
38
|
+
const listener: LayoutListener = (newIsLargeLayout) => {
|
|
39
|
+
setIsLargeLayout(newIsLargeLayout);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// Register listener
|
|
43
|
+
listeners.push(listener);
|
|
44
|
+
|
|
45
|
+
// Initial state
|
|
46
|
+
setIsLargeLayout(isLargeLayoutGlobal);
|
|
47
|
+
|
|
48
|
+
// Clean up by removing the listener
|
|
49
|
+
return () => {
|
|
50
|
+
const index = listeners.indexOf(listener);
|
|
51
|
+
if (index > -1) {
|
|
52
|
+
listeners.splice(index, 1);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}, []);
|
|
56
|
+
|
|
57
|
+
return isLargeLayout;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function checkLargeLayout(breakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = "lg"): boolean {
|
|
61
|
+
return window.matchMedia(`(min-width: ${breakpoints[breakpoint] + 1}px)`).matches;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// import { useEffect, useState } from "react";
|
|
65
|
+
//
|
|
66
|
+
// const breakpoints = {
|
|
67
|
+
// xs: 0,
|
|
68
|
+
// sm: 640,
|
|
69
|
+
// md: 768,
|
|
70
|
+
// lg: 1024,
|
|
71
|
+
// xl: 1280,
|
|
72
|
+
// "2xl": 1536,
|
|
73
|
+
// "3xl": 1920
|
|
74
|
+
// }
|
|
75
|
+
// export const useLargeLayout = (breakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = "lg"): boolean => {
|
|
76
|
+
// const [isLargeLayout, setIsLargeLayout] = useState<boolean>(false);
|
|
77
|
+
//
|
|
78
|
+
// useEffect(() => {
|
|
79
|
+
// const handleResize = () => {
|
|
80
|
+
// const matched = window.matchMedia(`(min-width: ${breakpoints[breakpoint] + 1}px)`).matches;
|
|
81
|
+
// setIsLargeLayout(matched);
|
|
82
|
+
// };
|
|
83
|
+
//
|
|
84
|
+
// // Set initial state
|
|
85
|
+
// handleResize();
|
|
86
|
+
//
|
|
87
|
+
// // Set up event listener for resize events
|
|
88
|
+
// window.addEventListener("resize", handleResize);
|
|
89
|
+
//
|
|
90
|
+
// // Clean up event listener when component unmounts
|
|
91
|
+
// return () => {
|
|
92
|
+
// window.removeEventListener("resize", handleResize);
|
|
93
|
+
// };
|
|
94
|
+
// }, []);
|
|
95
|
+
//
|
|
96
|
+
// return isLargeLayout;
|
|
97
|
+
// };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ModeControllerContext } from "../contexts/ModeController";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Use this controller to change color mode
|
|
6
|
+
* @group Hooks and utilities
|
|
7
|
+
*/
|
|
8
|
+
export interface ModeController {
|
|
9
|
+
mode: "light" | "dark";
|
|
10
|
+
setMode: (mode: "light" | "dark") => void;
|
|
11
|
+
toggleMode: () => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Hook to retrieve the current mode ("light" | "dark"), and `setMode`
|
|
16
|
+
* or `toggle` functions to change it.
|
|
17
|
+
*
|
|
18
|
+
* Consider that in order to use this hook you need to have a parent
|
|
19
|
+
* `FireCMS`
|
|
20
|
+
*
|
|
21
|
+
* @see ModeController
|
|
22
|
+
* @group Hooks and utilities
|
|
23
|
+
*/
|
|
24
|
+
export const useModeController = () => useContext(ModeControllerContext);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { NavigationController } from "../types";
|
|
3
|
+
import { NavigationContext } from "../contexts/NavigationContext";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use this hook to get the navigation of the app.
|
|
7
|
+
* This controller provides the resolved collections for the CMS as well
|
|
8
|
+
* as utility methods.
|
|
9
|
+
*
|
|
10
|
+
* @group Hooks and utilities
|
|
11
|
+
*/
|
|
12
|
+
export const useNavigationController = (): NavigationController => useContext(NavigationContext);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useSideDialogsController } from "./useSideDialogsController";
|
|
2
|
+
import { ReferenceSelectionInner, ReferenceSelectionInnerProps } from "../components";
|
|
3
|
+
import { useCallback } from "react";
|
|
4
|
+
import { useNavigationController } from "./useNavigationController";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This hook is used to open a side dialog that allows the selection
|
|
8
|
+
* of entities under a given path.
|
|
9
|
+
* You can use it in custom views for selecting entities.
|
|
10
|
+
* You need to specify the path of the target collection at least.
|
|
11
|
+
* If your collection is not defined in your top collection configuration
|
|
12
|
+
* (in your `FireCMS` component), you need to specify explicitly.
|
|
13
|
+
* This is the same hook used internally when a reference property is defined.
|
|
14
|
+
* @group Hooks and utilities
|
|
15
|
+
*/
|
|
16
|
+
export function useReferenceDialog<M extends Record<string, any>>(referenceDialogProps: Omit<ReferenceSelectionInnerProps<M>, "path"> & {
|
|
17
|
+
path?: string | false;
|
|
18
|
+
onClose?: () => void;
|
|
19
|
+
}): { open: () => void; close: () => void } {
|
|
20
|
+
|
|
21
|
+
const navigation = useNavigationController();
|
|
22
|
+
const sideDialogsController = useSideDialogsController();
|
|
23
|
+
|
|
24
|
+
const open = useCallback(() => {
|
|
25
|
+
if (referenceDialogProps.path) {
|
|
26
|
+
let usedCollection = referenceDialogProps.collection;
|
|
27
|
+
if (!usedCollection)
|
|
28
|
+
usedCollection = navigation.getCollection(referenceDialogProps.path);
|
|
29
|
+
if (!usedCollection)
|
|
30
|
+
throw Error("Not able to resolve the collection in useReferenceDialog");
|
|
31
|
+
sideDialogsController.open({
|
|
32
|
+
key: `reference_${referenceDialogProps.path}`,
|
|
33
|
+
component:
|
|
34
|
+
<ReferenceSelectionInner
|
|
35
|
+
collection={usedCollection}
|
|
36
|
+
{...referenceDialogProps as ReferenceSelectionInnerProps<M>}/>,
|
|
37
|
+
width: "90vw",
|
|
38
|
+
onClose: () => {
|
|
39
|
+
referenceDialogProps.onClose?.();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`")
|
|
44
|
+
}
|
|
45
|
+
}, [navigation, referenceDialogProps, sideDialogsController]);
|
|
46
|
+
|
|
47
|
+
const close = useCallback(() => {
|
|
48
|
+
sideDialogsController.close();
|
|
49
|
+
}, [sideDialogsController]);
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
open,
|
|
53
|
+
close
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Entity, EntityCollection, EntityCustomView, FireCMSContext, User } from "../types";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { getNavigationEntriesFromPathInternal } from "../util/navigation_from_path";
|
|
4
|
+
import { useFireCMSContext } from "./useFireCMSContext";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @see resolveNavigationFrom
|
|
8
|
+
* @group Hooks and utilities
|
|
9
|
+
*/
|
|
10
|
+
export type ResolvedNavigationEntry<M extends Record<string, any>> =
|
|
11
|
+
| ResolvedNavigationEntity<M>
|
|
12
|
+
| ResolvedNavigationCollection<M>
|
|
13
|
+
| ResolvedNavigationEntityCustom<M>;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @see resolveNavigationFrom
|
|
17
|
+
* @group Hooks and utilities
|
|
18
|
+
*/
|
|
19
|
+
export interface ResolvedNavigationEntity<M extends Record<string, any>> {
|
|
20
|
+
type: "entity";
|
|
21
|
+
entity: Entity<M>;
|
|
22
|
+
entityId: string;
|
|
23
|
+
path: string;
|
|
24
|
+
parentCollection: EntityCollection<M>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @see resolveNavigationFrom
|
|
29
|
+
* @group Hooks and utilities
|
|
30
|
+
*/
|
|
31
|
+
export interface ResolvedNavigationCollection<M extends Record<string, any>> {
|
|
32
|
+
type: "collection";
|
|
33
|
+
path: string;
|
|
34
|
+
collection: EntityCollection<M>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @see resolveNavigationFrom
|
|
39
|
+
* @group Hooks and utilities
|
|
40
|
+
*/
|
|
41
|
+
interface ResolvedNavigationEntityCustom<M extends Record<string, any>> {
|
|
42
|
+
type: "custom_view";
|
|
43
|
+
path: string;
|
|
44
|
+
view: EntityCustomView<M>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Use this function to retrieve an array of navigation entries (resolved
|
|
49
|
+
* collection, entity or entity custom_view) for the given path. You need to pass the app context
|
|
50
|
+
* that you receive in different callbacks, such as the save hooks.
|
|
51
|
+
*
|
|
52
|
+
* It will take into account the `navigation` provided at the `FireCMS` level.
|
|
53
|
+
*
|
|
54
|
+
* @param path
|
|
55
|
+
* @param context
|
|
56
|
+
* @group Hooks and utilities
|
|
57
|
+
*/
|
|
58
|
+
export function resolveNavigationFrom<M extends Record<string, any>, UserType extends User>({
|
|
59
|
+
path,
|
|
60
|
+
context
|
|
61
|
+
}: {
|
|
62
|
+
path: string,
|
|
63
|
+
context: FireCMSContext<UserType>
|
|
64
|
+
}): Promise<ResolvedNavigationEntry<M>[]> {
|
|
65
|
+
|
|
66
|
+
const dataSource = context.dataSource;
|
|
67
|
+
const navigation = context.navigation;
|
|
68
|
+
|
|
69
|
+
if (!navigation) {
|
|
70
|
+
throw Error("Calling getNavigationFrom, but main navigation has not yet been initialised");
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const navigationEntries = getNavigationEntriesFromPathInternal({
|
|
74
|
+
path,
|
|
75
|
+
collections: navigation.collections ?? []
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const resultPromises: Promise<ResolvedNavigationEntry<any>>[] = navigationEntries
|
|
79
|
+
.map((entry) => {
|
|
80
|
+
if (entry.type === "collection") {
|
|
81
|
+
return Promise.resolve(entry);
|
|
82
|
+
} else if (entry.type === "entity") {
|
|
83
|
+
const collection = navigation.getCollection(entry.path, entry.entityId);
|
|
84
|
+
if (!collection) {
|
|
85
|
+
throw Error(`No collection defined in the navigation for the entity with path ${entry.path}`);
|
|
86
|
+
}
|
|
87
|
+
return dataSource.fetchEntity({
|
|
88
|
+
path: entry.path,
|
|
89
|
+
entityId: entry.entityId,
|
|
90
|
+
collection
|
|
91
|
+
})
|
|
92
|
+
.then((entity) => {
|
|
93
|
+
if (!entity) return undefined;
|
|
94
|
+
return { ...entry, entity };
|
|
95
|
+
});
|
|
96
|
+
} else if (entry.type === "custom_view") {
|
|
97
|
+
return Promise.resolve(entry);
|
|
98
|
+
} else {
|
|
99
|
+
throw Error("Unmapped element in useEntitiesFromPath");
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
.filter(v => Boolean(v)) as Promise<ResolvedNavigationEntry<any>>[];
|
|
103
|
+
|
|
104
|
+
return Promise.all(resultPromises);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @group Hooks and utilities
|
|
109
|
+
*/
|
|
110
|
+
export interface NavigationFromProps {
|
|
111
|
+
path: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @group Hooks and utilities
|
|
116
|
+
*/
|
|
117
|
+
export interface NavigationFrom<M extends Record<string, any>> {
|
|
118
|
+
data?: ResolvedNavigationEntry<M>[]
|
|
119
|
+
dataLoading: boolean,
|
|
120
|
+
dataLoadingError?: Error
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Use this hook to retrieve an array of navigation entries (resolved
|
|
125
|
+
* collection or entity) for the given path. You can use this hook
|
|
126
|
+
* in any React component that lives under `FireCMS`
|
|
127
|
+
* @group Hooks and utilities
|
|
128
|
+
*/
|
|
129
|
+
export function useResolvedNavigationFrom<M extends Record<string, any>, UserType extends User>(
|
|
130
|
+
{
|
|
131
|
+
path
|
|
132
|
+
}: NavigationFromProps): NavigationFrom<M> {
|
|
133
|
+
|
|
134
|
+
const context: FireCMSContext<UserType> = useFireCMSContext();
|
|
135
|
+
|
|
136
|
+
const [data, setData] = useState<ResolvedNavigationEntry<M>[] | undefined>();
|
|
137
|
+
const [dataLoading, setDataLoading] = useState<boolean>(false);
|
|
138
|
+
const [dataLoadingError, setDataLoadingError] = useState<Error | undefined>();
|
|
139
|
+
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
const navigation = context.navigation;
|
|
142
|
+
if (navigation) {
|
|
143
|
+
setDataLoading(true);
|
|
144
|
+
setDataLoadingError(undefined);
|
|
145
|
+
resolveNavigationFrom<M, UserType>({ path, context })
|
|
146
|
+
.then((res) => {
|
|
147
|
+
setData(res);
|
|
148
|
+
})
|
|
149
|
+
.catch((e) => setDataLoadingError(e))
|
|
150
|
+
.finally(() => setDataLoading(false));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
}, [path, context]);
|
|
154
|
+
|
|
155
|
+
if (!context.navigation) {
|
|
156
|
+
return { dataLoading: true };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return { data, dataLoading, dataLoadingError };
|
|
160
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SideDialogsController } from "../types";
|
|
2
|
+
import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
|
|
3
|
+
import { useContext } from "react";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook to retrieve the side dialogs' controller.
|
|
7
|
+
*
|
|
8
|
+
* This hook allows you to open and close side dialogs. This is the mechanism
|
|
9
|
+
* used when open a side entity dialog, or when selecting a reference.
|
|
10
|
+
*
|
|
11
|
+
* If you want to open a side entity dialog, you can use the {@link useSideEntityController}
|
|
12
|
+
* hook.
|
|
13
|
+
*
|
|
14
|
+
* If you want to select a reference, you can use the {@link useReferenceDialog}
|
|
15
|
+
*
|
|
16
|
+
* Consider that in order to use this hook you need to have a parent
|
|
17
|
+
* `FireCMS`
|
|
18
|
+
*
|
|
19
|
+
* @group Hooks and utilities
|
|
20
|
+
*/
|
|
21
|
+
export const useSideDialogsController = (): SideDialogsController => useContext(SideDialogsControllerContext);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SideEntityController } from "../types";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { SideEntityControllerContext } from "../contexts/SideEntityControllerContext";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use this hook to retrieve an entity controller that allows you to open
|
|
7
|
+
* a side dialog to edit an entity.
|
|
8
|
+
*
|
|
9
|
+
* Consider that in order to use this hook you need to have a parent
|
|
10
|
+
* `FireCMS`
|
|
11
|
+
*
|
|
12
|
+
* @see SideEntityController
|
|
13
|
+
* @group Hooks and utilities
|
|
14
|
+
*/
|
|
15
|
+
export const useSideEntityController = (): SideEntityController => useContext(SideEntityControllerContext);
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useSnackbar } from "notistack";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Possible snackbar types
|
|
6
|
+
* @group Hooks and utilities
|
|
7
|
+
*/
|
|
8
|
+
export type SnackbarMessageType = "success" | "info" | "warning" | "error";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Controller to display snackbars
|
|
12
|
+
* @group Hooks and utilities
|
|
13
|
+
*/
|
|
14
|
+
export interface SnackbarController {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Close the currently open snackbar
|
|
18
|
+
*/
|
|
19
|
+
close: () => void;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Display a new snackbar. You need to specify the type and message.
|
|
23
|
+
* You can optionally specify a title
|
|
24
|
+
*/
|
|
25
|
+
open: (props: {
|
|
26
|
+
type: SnackbarMessageType;
|
|
27
|
+
message: React.ReactNode;
|
|
28
|
+
autoHideDuration?: number;
|
|
29
|
+
}) => void;
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Hook to retrieve the SnackbarContext.
|
|
35
|
+
*
|
|
36
|
+
* Consider that in order to use this hook you need to have a parent
|
|
37
|
+
* `FireCMS`
|
|
38
|
+
*
|
|
39
|
+
* @see SnackbarController
|
|
40
|
+
* @group Hooks and utilities
|
|
41
|
+
*/
|
|
42
|
+
export const useSnackbarController = () => {
|
|
43
|
+
|
|
44
|
+
const {
|
|
45
|
+
enqueueSnackbar,
|
|
46
|
+
closeSnackbar
|
|
47
|
+
} = useSnackbar();
|
|
48
|
+
|
|
49
|
+
const open = useCallback((props: {
|
|
50
|
+
type: SnackbarMessageType;
|
|
51
|
+
// title?: string;
|
|
52
|
+
message: React.ReactNode;
|
|
53
|
+
autoHideDuration?: number;
|
|
54
|
+
}) => {
|
|
55
|
+
const {
|
|
56
|
+
type,
|
|
57
|
+
message,
|
|
58
|
+
autoHideDuration
|
|
59
|
+
} = props;
|
|
60
|
+
enqueueSnackbar({
|
|
61
|
+
message,
|
|
62
|
+
variant: type,
|
|
63
|
+
autoHideDuration
|
|
64
|
+
})
|
|
65
|
+
}, []);
|
|
66
|
+
|
|
67
|
+
const close = useCallback(() => {
|
|
68
|
+
closeSnackbar();
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
return useMemo(() => ({
|
|
72
|
+
open,
|
|
73
|
+
close
|
|
74
|
+
}), [open, close]);
|
|
75
|
+
|
|
76
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StorageSource } from "../types";
|
|
2
|
+
import { StorageSourceContext } from "../contexts/StorageSourceContext";
|
|
3
|
+
import { useContext } from "react";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use this hook to get the storage source being used
|
|
7
|
+
* @group Hooks and utilities
|
|
8
|
+
*/
|
|
9
|
+
export const useStorageSource = (): StorageSource => useContext(StorageSourceContext);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UserConfigurationPersistence } from "../types";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { UserConfigurationPersistenceContext } from "../contexts/UserConfigurationPersistenceContext";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use this controller to access the configuration that is stored externally,
|
|
7
|
+
* and not defined in code
|
|
8
|
+
*
|
|
9
|
+
* @group Hooks and utilities
|
|
10
|
+
*/
|
|
11
|
+
export const useUserConfigurationPersistence = (): UserConfigurationPersistence | undefined => useContext(UserConfigurationPersistenceContext);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// export
|