@firecms/core 3.0.0-canary.16 → 3.0.0-canary.161
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 +3 -3
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +30 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +19 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +11 -12
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +7 -5
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +12 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +7 -6
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +1 -1
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +15 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
- package/dist/components/common/index.d.ts +1 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +2 -1
- package/dist/components/common/useDataSourceEntityCollectionTableController.d.ts +4 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +18 -4
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/NavigationRoutes.d.ts +3 -3
- package/dist/core/index.d.ts +3 -4
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +1 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +3 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +4 -5
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +3 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBuildNavigationController.d.ts +3 -4
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useProjectLog.d.ts +8 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +5 -9
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +20199 -14111
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +22769 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -16
- package/dist/preview/PropertyPreviewProps.d.ts +6 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +3 -2
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/util.d.ts +3 -3
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +53 -18
- package/dist/types/datasource.d.ts +51 -35
- package/dist/types/entities.d.ts +6 -1
- package/dist/types/entity_actions.d.ts +18 -4
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +63 -41
- package/dist/types/firecms.d.ts +6 -2
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +6 -5
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +22 -12
- package/dist/types/properties.d.ts +34 -21
- package/dist/types/property_config.d.ts +0 -2
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +2 -2
- package/dist/util/entities.d.ts +2 -2
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +6 -3
- package/dist/util/index.d.ts +1 -0
- package/dist/util/navigation_utils.d.ts +2 -2
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/resolutions.d.ts +30 -16
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/package.json +59 -44
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +243 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +92 -25
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
- package/src/components/DeleteEntityDialog.tsx +9 -18
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +28 -25
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +12 -8
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +31 -17
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +30 -35
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +84 -77
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +139 -87
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +19 -7
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityPreview.tsx +60 -51
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +26 -19
- package/src/components/HomePage/FavouritesView.tsx +6 -11
- package/src/components/HomePage/NavigationCard.tsx +4 -4
- package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +48 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +8 -7
- package/src/components/ReferenceWidget.tsx +22 -12
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +9 -9
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +30 -6
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/VirtualTable/VirtualTable.tsx +77 -46
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +18 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +8 -4
- package/src/components/common/index.ts +1 -0
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/common/types.tsx +4 -6
- package/src/components/common/useColumnsIds.tsx +23 -2
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +25 -14
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +4 -2
- package/src/contexts/DialogsProvider.tsx +2 -2
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +178 -0
- package/src/core/DefaultDrawer.tsx +184 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +721 -156
- package/src/core/EntitySidePanel.tsx +1 -2
- package/src/core/FireCMS.tsx +57 -53
- package/src/core/NavigationRoutes.tsx +7 -8
- package/src/core/SideDialogs.tsx +2 -1
- package/src/core/field_configs.tsx +11 -12
- package/src/core/index.tsx +3 -4
- package/src/form/PropertyFieldBinding.tsx +74 -35
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/LabelWithIcon.tsx +27 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +22 -12
- package/src/form/components/StorageUploadProgress.tsx +3 -4
- package/src/form/components/index.tsx +1 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +29 -17
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +45 -35
- package/src/form/field_bindings/BlockFieldBinding.tsx +53 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
- package/src/form/field_bindings/MapFieldBinding.tsx +67 -48
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +52 -34
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +37 -47
- package/src/form/field_bindings/SwitchFieldBinding.tsx +28 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +27 -24
- package/src/form/index.tsx +4 -9
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +1 -17
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +12 -8
- package/src/hooks/data/useCollectionFetch.tsx +2 -2
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +5 -5
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +11 -5
- package/src/hooks/useBuildNavigationController.tsx +93 -34
- package/src/hooks/useFireCMSContext.tsx +5 -5
- package/src/hooks/useProjectLog.tsx +32 -10
- package/src/hooks/useResolvedNavigationFrom.tsx +6 -6
- package/src/hooks/useValidateAuthenticator.tsx +21 -41
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +72 -82
- package/src/internal/useBuildSideDialogsController.tsx +1 -0
- package/src/internal/useBuildSideEntityController.tsx +102 -22
- package/src/internal/useUnsavedChangesDialog.tsx +5 -3
- package/src/preview/PropertyPreview.tsx +11 -18
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +25 -36
- package/src/preview/components/ReferencePreview.tsx +23 -34
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +44 -11
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +62 -20
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +60 -43
- package/src/types/entities.ts +11 -1
- package/src/types/entity_actions.tsx +20 -7
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +69 -45
- package/src/types/firecms.tsx +7 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +7 -7
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +24 -14
- package/src/types/properties.ts +39 -22
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +13 -0
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +6 -6
- package/src/util/entities.ts +6 -5
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +16 -10
- package/src/util/icon_synonyms.ts +3 -100
- package/src/util/icons.tsx +17 -7
- package/src/util/index.ts +1 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_utils.ts +6 -6
- package/src/util/objects.ts +45 -28
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +11 -2
- package/src/util/resolutions.ts +79 -46
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +34 -8
- package/src/util/useTraceUpdate.tsx +1 -0
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/EntityForm.d.ts +0 -77
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/EntityForm.tsx +0 -728
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
|
@@ -3,7 +3,7 @@ import React, { useEffect } from "react";
|
|
|
3
3
|
import {
|
|
4
4
|
Button,
|
|
5
5
|
CircularProgress,
|
|
6
|
-
|
|
6
|
+
cls,
|
|
7
7
|
defaultBorderMixin,
|
|
8
8
|
FilterListOffIcon,
|
|
9
9
|
SearchBar,
|
|
@@ -16,20 +16,27 @@ import { useLargeLayout } from "../../../hooks";
|
|
|
16
16
|
|
|
17
17
|
interface CollectionTableToolbarProps {
|
|
18
18
|
size: CollectionSize;
|
|
19
|
-
filterIsSet: boolean;
|
|
20
19
|
loading: boolean;
|
|
21
|
-
forceFilter?: boolean;
|
|
22
20
|
actionsStart?: React.ReactNode;
|
|
23
21
|
actions?: React.ReactNode;
|
|
24
22
|
title?: React.ReactNode,
|
|
25
23
|
onTextSearchClick?: () => void;
|
|
26
24
|
onTextSearch?: (searchString?: string) => void;
|
|
27
25
|
onSizeChanged: (size: CollectionSize) => void;
|
|
28
|
-
clearFilter?: () => void;
|
|
29
26
|
textSearchLoading?: boolean;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
|
-
export function CollectionTableToolbar(
|
|
29
|
+
export function CollectionTableToolbar({
|
|
30
|
+
actions,
|
|
31
|
+
actionsStart,
|
|
32
|
+
loading,
|
|
33
|
+
onSizeChanged,
|
|
34
|
+
onTextSearch,
|
|
35
|
+
onTextSearchClick,
|
|
36
|
+
size,
|
|
37
|
+
textSearchLoading,
|
|
38
|
+
title
|
|
39
|
+
}: CollectionTableToolbarProps) {
|
|
33
40
|
|
|
34
41
|
const searchInputRef = React.useRef<HTMLInputElement>(null);
|
|
35
42
|
const largeLayout = useLargeLayout();
|
|
@@ -37,30 +44,20 @@ export function CollectionTableToolbar(props: CollectionTableToolbarProps) {
|
|
|
37
44
|
const searchLoading = React.useRef<boolean>(false);
|
|
38
45
|
|
|
39
46
|
useEffect(() => {
|
|
40
|
-
if (searchInputRef.current && searchLoading.current && !
|
|
47
|
+
if (searchInputRef.current && searchLoading.current && !textSearchLoading) {
|
|
41
48
|
searchInputRef.current.focus();
|
|
42
49
|
}
|
|
43
|
-
searchLoading.current =
|
|
44
|
-
}, [
|
|
45
|
-
|
|
46
|
-
const clearFilterButton = !props.forceFilter && props.filterIsSet && props.clearFilter &&
|
|
47
|
-
<Button
|
|
48
|
-
variant={"outlined"}
|
|
49
|
-
className="h-fit-content"
|
|
50
|
-
aria-label="filter clear"
|
|
51
|
-
onClick={props.clearFilter}
|
|
52
|
-
size={"small"}>
|
|
53
|
-
<FilterListOffIcon/>
|
|
54
|
-
Clear filter
|
|
55
|
-
</Button>;
|
|
50
|
+
searchLoading.current = textSearchLoading ?? false;
|
|
51
|
+
}, [textSearchLoading]);
|
|
52
|
+
|
|
56
53
|
|
|
57
54
|
const sizeSelect = (
|
|
58
55
|
<Tooltip title={"Table row size"} side={"right"} sideOffset={4}>
|
|
59
56
|
<Select
|
|
60
|
-
value={
|
|
57
|
+
value={size as string}
|
|
61
58
|
className="w-16 h-10"
|
|
62
|
-
size={"
|
|
63
|
-
onValueChange={(v) =>
|
|
59
|
+
size={"medium"}
|
|
60
|
+
onValueChange={(v) => onSizeChanged(v as CollectionSize)}
|
|
64
61
|
renderValue={(v) => <div className={"font-medium"}>{v.toUpperCase()}</div>}
|
|
65
62
|
>
|
|
66
63
|
{["xs", "s", "m", "l", "xl"].map((size) => (
|
|
@@ -74,40 +71,38 @@ export function CollectionTableToolbar(props: CollectionTableToolbarProps) {
|
|
|
74
71
|
|
|
75
72
|
return (
|
|
76
73
|
<div
|
|
77
|
-
className={
|
|
74
|
+
className={cls(defaultBorderMixin, "no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-surface-50 dark:bg-surface-900 border-b flex flex-row justify-between items-center w-full")}>
|
|
78
75
|
|
|
79
76
|
<div className="flex items-center gap-2 md:mr-4 mr-2">
|
|
80
77
|
|
|
81
|
-
{
|
|
82
|
-
{
|
|
78
|
+
{title && <div className={"hidden lg:block"}>
|
|
79
|
+
{title}
|
|
83
80
|
</div>}
|
|
84
81
|
|
|
85
82
|
{sizeSelect}
|
|
86
83
|
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
{clearFilterButton}
|
|
84
|
+
{actionsStart}
|
|
90
85
|
|
|
91
86
|
</div>
|
|
92
87
|
|
|
93
88
|
<div className="flex items-center gap-2">
|
|
94
89
|
|
|
95
90
|
{largeLayout && <div className="w-[22px]">
|
|
96
|
-
{
|
|
91
|
+
{loading &&
|
|
97
92
|
<CircularProgress size={"small"}/>}
|
|
98
93
|
</div>}
|
|
99
94
|
|
|
100
|
-
{(
|
|
95
|
+
{(onTextSearch || onTextSearchClick) &&
|
|
101
96
|
<SearchBar
|
|
102
97
|
key={"search-bar"}
|
|
103
98
|
inputRef={searchInputRef}
|
|
104
|
-
loading={
|
|
105
|
-
disabled={Boolean(
|
|
106
|
-
onClick={
|
|
107
|
-
onTextSearch={
|
|
99
|
+
loading={textSearchLoading}
|
|
100
|
+
disabled={Boolean(onTextSearchClick)}
|
|
101
|
+
onClick={onTextSearchClick}
|
|
102
|
+
onTextSearch={onTextSearchClick ? undefined : onTextSearch}
|
|
108
103
|
expandable={true}/>}
|
|
109
104
|
|
|
110
|
-
{
|
|
105
|
+
{actions}
|
|
111
106
|
|
|
112
107
|
</div>
|
|
113
108
|
|
|
@@ -2,10 +2,9 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"
|
|
|
2
2
|
|
|
3
3
|
import useMeasure from "react-use-measure";
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import { getRowHeight } from "../../VirtualTable/common";
|
|
7
|
-
import { cn, RemoveCircleIcon, Tooltip } from "@firecms/ui";
|
|
5
|
+
import { cls, DoNotDisturbOnIcon, Tooltip } from "@firecms/ui";
|
|
8
6
|
import { ErrorBoundary } from "../../../components";
|
|
7
|
+
import { getRowHeight, TableSize } from "../../common/table_height";
|
|
9
8
|
|
|
10
9
|
interface EntityTableCellProps {
|
|
11
10
|
children: React.ReactNode;
|
|
@@ -19,7 +18,7 @@ interface EntityTableCellProps {
|
|
|
19
18
|
error?: Error;
|
|
20
19
|
allowScroll?: boolean;
|
|
21
20
|
align: "right" | "left" | "center";
|
|
22
|
-
size:
|
|
21
|
+
size: TableSize;
|
|
23
22
|
disabledTooltip?: string;
|
|
24
23
|
width: number;
|
|
25
24
|
showExpandIcon?: boolean;
|
|
@@ -46,22 +45,21 @@ const TableCellInner = ({
|
|
|
46
45
|
children
|
|
47
46
|
}: TableCellInnerProps) => {
|
|
48
47
|
return (
|
|
49
|
-
<div
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}}
|
|
48
|
+
<div className={cls("flex flex-col max-h-full w-full",
|
|
49
|
+
{
|
|
50
|
+
"items-start": faded || scrollable
|
|
51
|
+
})}
|
|
52
|
+
style={{
|
|
53
|
+
justifyContent,
|
|
54
|
+
height: fullHeight ? "100%" : undefined,
|
|
55
|
+
overflow: scrollable ? "auto" : undefined,
|
|
56
|
+
WebkitMaskImage: faded
|
|
57
|
+
? "linear-gradient(to bottom, black 60%, transparent 100%)"
|
|
58
|
+
: undefined,
|
|
59
|
+
maskImage: faded
|
|
60
|
+
? "linear-gradient(to bottom, black 60%, transparent 100%)"
|
|
61
|
+
: undefined
|
|
62
|
+
}}
|
|
65
63
|
>
|
|
66
64
|
{children}
|
|
67
65
|
</div>
|
|
@@ -96,7 +94,7 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
|
|
|
96
94
|
const [onHover, setOnHover] = useState(false);
|
|
97
95
|
const [internalSaved, setInternalSaved] = useState(saved);
|
|
98
96
|
|
|
99
|
-
const showError = !disabled && error;
|
|
97
|
+
const showError = !disabled && Boolean(error);
|
|
100
98
|
|
|
101
99
|
useEffect(() => {
|
|
102
100
|
if (saved) {
|
|
@@ -157,8 +155,9 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
|
|
|
157
155
|
}, [ref, onSelect, selected, disabled]);
|
|
158
156
|
|
|
159
157
|
const onFocus = useCallback((event: React.SyntheticEvent<HTMLDivElement>) => {
|
|
160
|
-
onSelectCallback();
|
|
161
158
|
event.stopPropagation();
|
|
159
|
+
event.preventDefault();
|
|
160
|
+
onSelectCallback();
|
|
162
161
|
}, [onSelectCallback]);
|
|
163
162
|
|
|
164
163
|
const isOverflowing = useMemo(() => {
|
|
@@ -176,21 +175,26 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
|
|
|
176
175
|
const setOnHoverTrue = useCallback(() => setOnHover(true), []);
|
|
177
176
|
const setOnHoverFalse = useCallback(() => setOnHover(false), []);
|
|
178
177
|
|
|
178
|
+
const borderClass = showError
|
|
179
|
+
? "border-red-500"
|
|
180
|
+
: internalSaved
|
|
181
|
+
? "border-green-500"
|
|
182
|
+
: isSelected
|
|
183
|
+
? "border-primary"
|
|
184
|
+
: "border-transparent";
|
|
185
|
+
|
|
179
186
|
return (
|
|
180
187
|
<div
|
|
181
|
-
|
|
182
|
-
className={cn(
|
|
188
|
+
className={cls(
|
|
183
189
|
"transition-colors duration-100 ease-in-out",
|
|
184
190
|
`flex relative h-full rounded-md p-${p} border border-4 border-opacity-75`,
|
|
185
|
-
onHover && !disabled ? "bg-
|
|
186
|
-
saved ? "bg-
|
|
187
|
-
!isSelected && !internalSaved && !showError ? "border-transparent" : "",
|
|
191
|
+
onHover && !disabled ? "bg-surface-50 dark:bg-surface-900" : "",
|
|
192
|
+
saved ? "bg-surface-100 bg-opacity-75 dark:bg-surface-800 dark:bg-opacity-75" : "",
|
|
188
193
|
hideOverflow ? "overflow-hidden" : "",
|
|
189
|
-
isSelected ? "bg-
|
|
190
|
-
|
|
191
|
-
internalSaved ? "border-green-500 " : "",
|
|
192
|
-
showError ? "border-red-500" : ""
|
|
194
|
+
isSelected ? "bg-surface-50 dark:bg-surface-900" : "",
|
|
195
|
+
borderClass
|
|
193
196
|
)}
|
|
197
|
+
ref={ref}
|
|
194
198
|
style={{
|
|
195
199
|
justifyContent,
|
|
196
200
|
alignItems: disabled || !isOverflowing ? "center" : undefined,
|
|
@@ -199,11 +203,9 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
|
|
|
199
203
|
}}
|
|
200
204
|
tabIndex={selected || disabled ? undefined : 0}
|
|
201
205
|
onFocus={onFocus}
|
|
202
|
-
// onClick={onClick}
|
|
203
206
|
onMouseEnter={setOnHoverTrue}
|
|
204
207
|
onMouseMove={setOnHoverTrue}
|
|
205
208
|
onMouseLeave={setOnHoverFalse}
|
|
206
|
-
// contain={scrollable ? "content" : "size"}
|
|
207
209
|
>
|
|
208
210
|
|
|
209
211
|
<ErrorBoundary>
|
|
@@ -234,7 +236,7 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
|
|
|
234
236
|
{disabled && onHover && disabledTooltip &&
|
|
235
237
|
<div className="absolute top-1 right-1 text-xs">
|
|
236
238
|
<Tooltip title={disabledTooltip}>
|
|
237
|
-
<
|
|
239
|
+
<DoNotDisturbOnIcon size={"smallest"} color={"disabled"} className={"text-surface-500"}/>
|
|
238
240
|
</Tooltip>
|
|
239
241
|
</div>}
|
|
240
242
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ErrorIcon, IconButton } from "@firecms/ui";
|
|
2
2
|
import { ErrorTooltip } from "../../ErrorTooltip";
|
|
3
3
|
import { useCallback, useEffect, useRef } from "react";
|
|
4
4
|
|
|
@@ -11,7 +11,14 @@ export interface EntityTableCellActionsProps {
|
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export function EntityTableCellActions({
|
|
14
|
+
export function EntityTableCellActions({
|
|
15
|
+
showError,
|
|
16
|
+
disabled,
|
|
17
|
+
showExpandIcon,
|
|
18
|
+
selected,
|
|
19
|
+
openPopup,
|
|
20
|
+
children
|
|
21
|
+
}: EntityTableCellActionsProps) {
|
|
15
22
|
|
|
16
23
|
const ref = useRef<HTMLDivElement>(null);
|
|
17
24
|
const doOpenPopup = useCallback(() => {
|
|
@@ -54,13 +61,18 @@ export function EntityTableCellActions({ showError, disabled, showExpandIcon, se
|
|
|
54
61
|
|
|
55
62
|
{showError && <ErrorTooltip
|
|
56
63
|
side={"left"}
|
|
57
|
-
className={"flex items-center justify-center"}
|
|
58
|
-
style={{ width: 32, height: 32 }}
|
|
59
64
|
title={showError.message}>
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
<div
|
|
66
|
+
className={"flex items-center justify-center"}
|
|
67
|
+
style={{
|
|
68
|
+
width: 32,
|
|
69
|
+
height: 32
|
|
70
|
+
}}>
|
|
71
|
+
<ErrorIcon
|
|
72
|
+
size={"small"}
|
|
73
|
+
color={"error"}
|
|
74
|
+
/>
|
|
75
|
+
</div>
|
|
64
76
|
</ErrorTooltip>
|
|
65
77
|
}
|
|
66
78
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from "react";
|
|
2
|
-
import equal from "react-fast-compare"
|
|
3
2
|
|
|
4
3
|
import * as Portal from "@radix-ui/react-portal";
|
|
5
4
|
|
|
@@ -19,20 +18,20 @@ import { useDraggable } from "./useDraggable";
|
|
|
19
18
|
import { CustomFieldValidator, getYupEntitySchema } from "../../../../form/validation";
|
|
20
19
|
import { useWindowSize } from "./useWindowSize";
|
|
21
20
|
import { ElementResizeListener } from "./ElementResizeListener";
|
|
22
|
-
import { ErrorView } from "../../../ErrorView";
|
|
23
21
|
import { getPropertyInPath, isReadOnly, resolveCollection } from "../../../../util";
|
|
24
|
-
import { Button,
|
|
22
|
+
import { Button, CloseIcon, DialogActions, IconButton, Typography } from "@firecms/ui";
|
|
25
23
|
import { PropertyFieldBinding } from "../../../../form";
|
|
26
|
-
import { useCustomizationController, useFireCMSContext } from "../../../../hooks";
|
|
24
|
+
import { useCustomizationController, useDataSource, useFireCMSContext } from "../../../../hooks";
|
|
27
25
|
import { OnCellValueChangeParams } from "../../../common";
|
|
26
|
+
import { yupToFormErrors } from "../../../../core/EntityEditView";
|
|
28
27
|
|
|
29
28
|
interface PopupFormFieldProps<M extends Record<string, any>> {
|
|
30
|
-
entity?: Entity<M>;
|
|
31
29
|
customFieldValidator?: CustomFieldValidator;
|
|
32
30
|
path: string;
|
|
31
|
+
entityId: string;
|
|
33
32
|
tableKey: string;
|
|
34
33
|
propertyKey?: Extract<keyof M, string>;
|
|
35
|
-
collection?: EntityCollection<
|
|
34
|
+
collection?: EntityCollection<any>;
|
|
36
35
|
cellRect?: DOMRect;
|
|
37
36
|
open: boolean;
|
|
38
37
|
onClose: () => void;
|
|
@@ -41,18 +40,59 @@ interface PopupFormFieldProps<M extends Record<string, any>> {
|
|
|
41
40
|
* Callback when the value of a cell has been edited
|
|
42
41
|
* @param params
|
|
43
42
|
*/
|
|
44
|
-
onCellValueChange?: (params: OnCellValueChangeParams<any,
|
|
43
|
+
onCellValueChange?: (params: OnCellValueChangeParams<any, any>) => Promise<void> | void;
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
export function PopupFormField<M extends Record<string, any>>(props: PopupFormFieldProps<M>) {
|
|
48
47
|
if (!props.open) return null;
|
|
49
|
-
return <
|
|
48
|
+
return <PopupFormFieldLoading {...props} />;
|
|
50
49
|
|
|
51
50
|
}
|
|
52
51
|
|
|
52
|
+
export function PopupFormFieldLoading<M extends Record<string, any>>({
|
|
53
|
+
tableKey,
|
|
54
|
+
entityId,
|
|
55
|
+
customFieldValidator,
|
|
56
|
+
propertyKey,
|
|
57
|
+
collection: inputCollection,
|
|
58
|
+
path,
|
|
59
|
+
cellRect,
|
|
60
|
+
open,
|
|
61
|
+
onClose,
|
|
62
|
+
onCellValueChange,
|
|
63
|
+
container
|
|
64
|
+
}: PopupFormFieldProps<M>) {
|
|
65
|
+
const dataSource = useDataSource();
|
|
66
|
+
const [entity, setEntity] = useState<Entity<M> | undefined>(undefined);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (entityId && inputCollection) {
|
|
69
|
+
dataSource.fetchEntity({
|
|
70
|
+
path,
|
|
71
|
+
entityId,
|
|
72
|
+
collection: inputCollection
|
|
73
|
+
}).then(setEntity);
|
|
74
|
+
}
|
|
75
|
+
}, [entityId, inputCollection]);
|
|
76
|
+
|
|
77
|
+
if (!entity) return null;
|
|
78
|
+
return <PopupFormFieldInternal {...{
|
|
79
|
+
tableKey,
|
|
80
|
+
entityId,
|
|
81
|
+
customFieldValidator,
|
|
82
|
+
propertyKey,
|
|
83
|
+
collection: inputCollection,
|
|
84
|
+
path,
|
|
85
|
+
cellRect,
|
|
86
|
+
open,
|
|
87
|
+
onClose,
|
|
88
|
+
onCellValueChange,
|
|
89
|
+
container
|
|
90
|
+
}} entity={entity}/>;
|
|
91
|
+
}
|
|
92
|
+
|
|
53
93
|
export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
54
94
|
tableKey,
|
|
55
|
-
|
|
95
|
+
entityId,
|
|
56
96
|
customFieldValidator,
|
|
57
97
|
propertyKey,
|
|
58
98
|
collection: inputCollection,
|
|
@@ -61,10 +101,12 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
61
101
|
open,
|
|
62
102
|
onClose,
|
|
63
103
|
onCellValueChange,
|
|
64
|
-
container
|
|
65
|
-
|
|
104
|
+
container,
|
|
105
|
+
entity
|
|
106
|
+
}: PopupFormFieldProps<M> & {
|
|
107
|
+
entity?: Entity<M>
|
|
108
|
+
}) {
|
|
66
109
|
|
|
67
|
-
// const dataSource = useDataSource();
|
|
68
110
|
const fireCMSContext = useFireCMSContext();
|
|
69
111
|
const customizationController = useCustomizationController();
|
|
70
112
|
|
|
@@ -74,34 +116,13 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
74
116
|
y: number
|
|
75
117
|
}>();
|
|
76
118
|
|
|
77
|
-
const entityId = entityProp?.id;
|
|
78
|
-
const [entity, setEntity] = useState<Entity<M> | undefined>(entityProp);
|
|
79
|
-
// useEffect(() => {
|
|
80
|
-
// if (entityId && inputCollection) {
|
|
81
|
-
// return dataSource.listenEntity?.({
|
|
82
|
-
// path,
|
|
83
|
-
// entityId,
|
|
84
|
-
// collection: inputCollection,
|
|
85
|
-
// onUpdate: (e) => {
|
|
86
|
-
// setEntity(e);
|
|
87
|
-
// setInternalValue(e?.values);
|
|
88
|
-
// }
|
|
89
|
-
// });
|
|
90
|
-
// } else {
|
|
91
|
-
// return () => {
|
|
92
|
-
// };
|
|
93
|
-
// }
|
|
94
|
-
// }, [dataSource, entityId, inputCollection, path, open]);
|
|
95
|
-
|
|
96
|
-
const [internalValue, setInternalValue] = useState<EntityValues<M> | undefined>(entity?.values);
|
|
97
|
-
|
|
98
119
|
const collection: ResolvedEntityCollection<M> | undefined = inputCollection
|
|
99
120
|
? resolveCollection<M>({
|
|
100
121
|
collection: inputCollection,
|
|
101
122
|
path,
|
|
102
|
-
values:
|
|
123
|
+
values: entity?.values,
|
|
103
124
|
entityId,
|
|
104
|
-
|
|
125
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
105
126
|
})
|
|
106
127
|
: undefined;
|
|
107
128
|
|
|
@@ -205,58 +226,48 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
205
226
|
return onCellValueChange({
|
|
206
227
|
value: values[propertyKey as string],
|
|
207
228
|
propertyKey: propertyKey as string,
|
|
208
|
-
entity,
|
|
229
|
+
data: entity,
|
|
209
230
|
setError: setSavingError,
|
|
210
231
|
onValueUpdated: () => {
|
|
211
232
|
},
|
|
212
|
-
fullPath: path,
|
|
213
|
-
context: fireCMSContext
|
|
214
233
|
});
|
|
215
234
|
}
|
|
216
235
|
return Promise.resolve();
|
|
217
236
|
};
|
|
218
237
|
|
|
219
|
-
if (!entity)
|
|
220
|
-
return <></>;
|
|
221
|
-
|
|
222
|
-
// enableReinitialize={true}
|
|
223
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
224
238
|
const formex = useCreateFormex<M>({
|
|
225
239
|
initialValues: (entity?.values ?? {}) as EntityValues<M>,
|
|
226
240
|
validation: (values) => {
|
|
227
241
|
return validationSchema?.validate(values, { abortEarly: false })
|
|
228
242
|
.then(() => ({}))
|
|
229
243
|
.catch((e) => {
|
|
230
|
-
const errors: Record<string, string> = {};
|
|
231
|
-
e.inner.forEach((error: any) => {
|
|
232
|
-
|
|
233
|
-
});
|
|
234
|
-
return errors;
|
|
244
|
+
// const errors: Record<string, string> = {};
|
|
245
|
+
// e.inner.forEach((error: any) => {
|
|
246
|
+
// errors[error.path] = error.message;
|
|
247
|
+
// });
|
|
248
|
+
// return errors;
|
|
249
|
+
return yupToFormErrors(e);
|
|
235
250
|
});
|
|
236
251
|
},
|
|
237
252
|
validateOnInitialRender: true,
|
|
238
253
|
onSubmit: (values, actions) => {
|
|
239
254
|
saveValue(values)
|
|
240
|
-
.then(() =>
|
|
255
|
+
.then(() => {
|
|
256
|
+
formex.resetForm({
|
|
257
|
+
values: values
|
|
258
|
+
})
|
|
259
|
+
onClose();
|
|
260
|
+
})
|
|
241
261
|
.finally(() => actions.setSubmitting(false));
|
|
242
262
|
}
|
|
243
263
|
});
|
|
244
264
|
|
|
245
|
-
const {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}
|
|
252
|
-
}, [values]);
|
|
253
|
-
|
|
254
|
-
if (!entity)
|
|
255
|
-
return <ErrorView
|
|
256
|
-
error={"PopupFormField misconfiguration"}/>;
|
|
257
|
-
|
|
258
|
-
if (!collection)
|
|
259
|
-
return <></>;
|
|
265
|
+
const {
|
|
266
|
+
values,
|
|
267
|
+
isSubmitting,
|
|
268
|
+
setFieldValue,
|
|
269
|
+
handleSubmit
|
|
270
|
+
} = formex;
|
|
260
271
|
|
|
261
272
|
const disabled = isSubmitting;
|
|
262
273
|
|
|
@@ -266,10 +277,11 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
266
277
|
values,
|
|
267
278
|
path,
|
|
268
279
|
setFieldValue,
|
|
269
|
-
save: saveValue
|
|
280
|
+
save: saveValue,
|
|
281
|
+
formex
|
|
270
282
|
};
|
|
271
283
|
|
|
272
|
-
const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection
|
|
284
|
+
const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection?.properties ?? {} as ResolvedProperties, propertyKey as string);
|
|
273
285
|
const fieldProps: PropertyFieldBindingProps<any, M> | undefined = propertyKey && property
|
|
274
286
|
? {
|
|
275
287
|
propertyKey: propertyKey as string,
|
|
@@ -278,9 +290,8 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
278
290
|
includeDescription: false,
|
|
279
291
|
underlyingValueHasChanged: false,
|
|
280
292
|
context: formContext,
|
|
281
|
-
tableMode: true,
|
|
282
293
|
partOfArray: false,
|
|
283
|
-
|
|
294
|
+
minimalistView: false,
|
|
284
295
|
autoFocus: open
|
|
285
296
|
}
|
|
286
297
|
: undefined;
|
|
@@ -288,7 +299,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
288
299
|
let internalForm = <>
|
|
289
300
|
<div
|
|
290
301
|
key={`popup_form_${tableKey}_${entityId}_${propertyKey}`}
|
|
291
|
-
className="w-[
|
|
302
|
+
className="w-[700px] max-w-full max-h-[85vh]">
|
|
292
303
|
<form
|
|
293
304
|
onSubmit={handleSubmit}
|
|
294
305
|
noValidate>
|
|
@@ -323,10 +334,6 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
323
334
|
|
|
324
335
|
const plugins = customizationController.plugins;
|
|
325
336
|
if (plugins) {
|
|
326
|
-
// const formController: FormContext<M> = {
|
|
327
|
-
// values,
|
|
328
|
-
// setFieldValue
|
|
329
|
-
// }
|
|
330
337
|
plugins.forEach((plugin: FireCMSPlugin) => {
|
|
331
338
|
if (plugin.form?.provider) {
|
|
332
339
|
internalForm = (
|
|
@@ -346,7 +353,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
346
353
|
});
|
|
347
354
|
}
|
|
348
355
|
const form = <div
|
|
349
|
-
className={`text-
|
|
356
|
+
className={`text-surface-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-surface-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`}>
|
|
350
357
|
|
|
351
358
|
{internalForm}
|
|
352
359
|
|
|
@@ -363,7 +370,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
363
370
|
style={{
|
|
364
371
|
boxShadow: "0 0 0 2px rgba(128,128,128,0.2)",
|
|
365
372
|
}}
|
|
366
|
-
className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-
|
|
373
|
+
className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-surface-950 ${
|
|
367
374
|
!open ? "invisible" : "visible"
|
|
368
375
|
} cursor-grab overflow-visible`}
|
|
369
376
|
ref={draggableRef}>
|
|
@@ -376,7 +383,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
376
383
|
{form}
|
|
377
384
|
|
|
378
385
|
<div
|
|
379
|
-
className="absolute -top-3.5 -right-3.5 bg-
|
|
386
|
+
className="absolute -top-3.5 -right-3.5 bg-surface-500 rounded-full"
|
|
380
387
|
style={{
|
|
381
388
|
width: "32px",
|
|
382
389
|
height: "32px"
|
|
@@ -387,7 +394,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
|
|
|
387
394
|
event.stopPropagation();
|
|
388
395
|
onClose();
|
|
389
396
|
}}>
|
|
390
|
-
<
|
|
397
|
+
<CloseIcon className="text-white"
|
|
391
398
|
size={"small"}/>
|
|
392
399
|
</IconButton>
|
|
393
400
|
</div>
|