@firecms/core 3.0.1 → 3.1.0-canary.02232f4
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/AIIcon.d.ts +16 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +7 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +14 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +5 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +2 -2
- package/dist/components/EntityCollectionView/Board.d.ts +2 -0
- package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
- package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
- package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
- package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +4 -0
- package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +26 -0
- package/dist/components/EntityCollectionView/EntityCard.d.ts +19 -0
- package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +20 -0
- package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +31 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +2 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +7 -3
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +14 -0
- package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
- package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
- package/dist/components/EntityCollectionView/useBoardDataController.d.ts +60 -0
- package/dist/components/ErrorBoundary.d.ts +4 -2
- package/dist/components/HomePage/DefaultHomePage.d.ts +0 -1
- package/dist/components/LanguageToggle.d.ts +1 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +5 -1
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +6 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +4 -1
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +1 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +17 -1
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +1 -0
- package/dist/components/VirtualTable/types.d.ts +3 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/contexts/index.d.ts +10 -0
- package/dist/core/DrawerNavigationGroup.d.ts +45 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
- package/dist/editor/components/editor-bubble-item.d.ts +8 -0
- package/dist/editor/components/editor-bubble.d.ts +8 -0
- package/dist/editor/components/image-bubble.d.ts +5 -0
- package/dist/editor/components/index.d.ts +16 -0
- package/dist/editor/components/table-bubble.d.ts +5 -0
- package/dist/editor/editor.d.ts +30 -0
- package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
- package/dist/editor/extensions/Image/index.d.ts +6 -0
- package/dist/editor/extensions/Image.d.ts +6 -0
- package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
- package/dist/editor/extensions/clipboard.d.ts +7 -0
- package/dist/editor/extensions/custom-keymap.d.ts +1 -0
- package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
- package/dist/editor/hooks/useProseMirror.d.ts +13 -0
- package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
- package/dist/editor/index.d.ts +2 -0
- package/dist/editor/markdown.d.ts +5 -0
- package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
- package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
- package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
- package/dist/editor/nodeViews/index.d.ts +6 -0
- package/dist/editor/plugins/index.d.ts +2 -0
- package/dist/editor/plugins/inputrules.d.ts +6 -0
- package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
- package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
- package/dist/editor/schema.d.ts +2 -0
- package/dist/editor/selectors/ai-selector.d.ts +0 -0
- package/dist/editor/selectors/color-selector.d.ts +10 -0
- package/dist/editor/selectors/link-selector.d.ts +8 -0
- package/dist/editor/selectors/node-selector.d.ts +15 -0
- package/dist/editor/selectors/text-buttons.d.ts +1 -0
- package/dist/editor/types.d.ts +5 -0
- package/dist/editor/useProseMirror.d.ts +16 -0
- package/dist/editor/utils/prosemirror-utils.d.ts +6 -0
- package/dist/editor/utils/remove_classes.d.ts +1 -0
- package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +1 -1
- package/dist/form/validation.d.ts +3 -2
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useBreadcrumbsController.d.ts +16 -0
- package/dist/hooks/useBuildNavigationController.d.ts +0 -1
- package/dist/hooks/useCollapsedGroups.d.ts +6 -3
- package/dist/hooks/useTranslation.d.ts +17 -0
- package/dist/i18n/FireCMSi18nProvider.d.ts +33 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.es.js +30146 -15178
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +30032 -15085
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useRestoreScroll.d.ts +1 -1
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +10 -0
- package/dist/locales/es.d.ts +10 -0
- package/dist/locales/fr.d.ts +2 -0
- package/dist/locales/hi.d.ts +2 -0
- package/dist/locales/it.d.ts +2 -0
- package/dist/locales/pt.d.ts +7 -0
- package/dist/preview/PropertyPreviewProps.d.ts +5 -0
- package/dist/preview/components/DatePreview.d.ts +13 -3
- package/dist/preview/components/ImagePreview.d.ts +5 -1
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +1 -1
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +1 -1
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/collections.d.ts +88 -2
- package/dist/types/customization_controller.d.ts +2 -1
- package/dist/types/datasource.d.ts +0 -1
- package/dist/types/firecms.d.ts +2 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/navigation.d.ts +2 -2
- package/dist/types/plugins.d.ts +69 -1
- package/dist/types/properties.d.ts +268 -12
- package/dist/types/storage.d.ts +1 -0
- package/dist/types/translations.d.ts +669 -0
- package/dist/util/__tests__/conditions.test.d.ts +1 -0
- package/dist/util/__tests__/objects.test.d.ts +1 -0
- package/dist/util/conditions.d.ts +26 -0
- package/dist/util/entities.d.ts +2 -3
- package/dist/util/index.d.ts +3 -1
- package/dist/util/lazy_eager.d.ts +7 -0
- package/dist/util/objects.d.ts +1 -0
- package/dist/util/property_utils.d.ts +2 -1
- package/dist/util/resolutions.d.ts +3 -3
- package/dist/util/useStorageUploadController.d.ts +10 -1
- package/package.json +51 -12
- package/src/app/Scaffold.tsx +20 -19
- package/src/components/AIIcon.tsx +41 -0
- package/src/components/ArrayContainer.tsx +7 -8
- package/src/components/ClearFilterSortButton.tsx +25 -19
- package/src/components/ConfirmationDialog.tsx +4 -4
- package/src/components/DeleteEntityDialog.tsx +12 -11
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +82 -43
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +130 -79
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +121 -104
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +132 -103
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +6 -3
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +24 -44
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +90 -49
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -2
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +11 -11
- package/src/components/EntityCollectionView/Board.tsx +324 -0
- package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
- package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
- package/src/components/EntityCollectionView/BoardSortableList.tsx +174 -0
- package/src/components/EntityCollectionView/CollectionDataErrorBanner.tsx +43 -0
- package/src/components/EntityCollectionView/EntityBoardCard.tsx +212 -0
- package/src/components/EntityCollectionView/EntityCard.tsx +235 -0
- package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +706 -0
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +236 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +531 -209
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +35 -22
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +86 -15
- package/src/components/EntityCollectionView/FiltersDialog.tsx +252 -0
- package/src/components/EntityCollectionView/ViewModeToggle.tsx +202 -0
- package/src/components/EntityCollectionView/board_types.ts +113 -0
- package/src/components/EntityCollectionView/useBoardDataController.tsx +490 -0
- package/src/components/EntityJsonPreview.tsx +2 -1
- package/src/components/EntityView.tsx +3 -2
- package/src/components/ErrorBoundary.tsx +27 -15
- package/src/components/ErrorTooltip.tsx +2 -1
- package/src/components/HomePage/DefaultHomePage.tsx +65 -22
- package/src/components/HomePage/HomePageDnD.tsx +59 -42
- package/src/components/HomePage/NavigationCard.tsx +20 -18
- package/src/components/HomePage/NavigationGroup.tsx +20 -17
- package/src/components/HomePage/RenameGroupDialog.tsx +15 -15
- package/src/components/HomePage/SmallNavigationCard.tsx +10 -9
- package/src/components/LanguageToggle.tsx +66 -0
- package/src/components/NotFoundPage.tsx +5 -3
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +12 -17
- package/src/components/ReferenceWidget.tsx +5 -6
- package/src/components/SearchIconsView.tsx +3 -1
- package/src/components/SelectableTable/SelectableTable.tsx +75 -67
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +7 -6
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +50 -40
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +53 -40
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +60 -58
- package/src/components/UnsavedChangesDialog.tsx +6 -6
- package/src/components/UserDisplay.tsx +4 -4
- package/src/components/VirtualTable/VirtualTable.performance.test.tsx +1 -0
- package/src/components/VirtualTable/VirtualTable.tsx +275 -119
- package/src/components/VirtualTable/VirtualTableCell.tsx +18 -2
- package/src/components/VirtualTable/VirtualTableHeader.tsx +76 -64
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +163 -42
- package/src/components/VirtualTable/VirtualTableProps.tsx +21 -2
- package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +3 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +19 -6
- package/src/components/VirtualTable/types.tsx +3 -0
- package/src/components/common/default_entity_actions.tsx +4 -0
- package/src/components/common/useColumnsIds.tsx +95 -3
- package/src/components/common/useDataSourceTableController.tsx +12 -4
- package/src/components/index.tsx +5 -0
- package/src/contexts/BreacrumbsContext.tsx +15 -8
- package/src/contexts/index.ts +10 -0
- package/src/core/DefaultAppBar.tsx +49 -32
- package/src/core/DefaultDrawer.tsx +49 -57
- package/src/core/DrawerNavigationGroup.tsx +120 -0
- package/src/core/DrawerNavigationItem.tsx +4 -3
- package/src/core/EntityEditView.tsx +94 -50
- package/src/core/EntityEditViewFormActions.tsx +24 -17
- package/src/core/EntitySidePanel.tsx +34 -30
- package/src/core/FireCMS.tsx +33 -6
- package/src/core/SideDialogs.tsx +4 -2
- package/src/core/field_configs.tsx +18 -11
- package/src/core/index.tsx +1 -0
- package/src/editor/components/SlashCommandMenu.tsx +516 -0
- package/src/editor/components/editor-bubble-item.tsx +32 -0
- package/src/editor/components/editor-bubble.tsx +118 -0
- package/src/editor/components/image-bubble.tsx +156 -0
- package/src/editor/components/index.ts +14 -0
- package/src/editor/components/table-bubble.tsx +165 -0
- package/src/editor/editor.tsx +455 -0
- package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
- package/src/editor/extensions/Image/index.ts +133 -0
- package/src/editor/extensions/Image.ts +159 -0
- package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
- package/src/editor/extensions/clipboard.ts +72 -0
- package/src/editor/extensions/custom-keymap.ts +24 -0
- package/src/editor/extensions/drag-and-drop.tsx +480 -0
- package/src/editor/hooks/useProseMirror.ts +124 -0
- package/src/editor/hooks/useProseMirrorContext.ts +15 -0
- package/src/editor/index.ts +2 -0
- package/src/editor/markdown.ts +172 -0
- package/src/editor/nodeViews/ImageComponent.tsx +20 -0
- package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
- package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
- package/src/editor/nodeViews/index.ts +35 -0
- package/src/editor/plugins/index.ts +58 -0
- package/src/editor/plugins/inputrules.ts +82 -0
- package/src/editor/plugins/placeholderPlugin.ts +55 -0
- package/src/editor/plugins/slashCommandPlugin.ts +61 -0
- package/src/editor/schema.ts +240 -0
- package/src/editor/selectors/ai-selector.tsx +111 -0
- package/src/editor/selectors/color-selector.tsx +200 -0
- package/src/editor/selectors/link-selector.tsx +118 -0
- package/src/editor/selectors/node-selector.tsx +157 -0
- package/src/editor/selectors/text-buttons.tsx +86 -0
- package/src/editor/types.ts +6 -0
- package/src/editor/useProseMirror.ts +126 -0
- package/src/editor/utils/prosemirror-utils.ts +108 -0
- package/src/editor/utils/remove_classes.ts +17 -0
- package/src/editor/utils/useDebouncedCallback.ts +25 -0
- package/src/form/EntityForm.tsx +149 -67
- package/src/form/EntityFormActions.tsx +19 -12
- package/src/form/PropertyFieldBinding.tsx +68 -51
- package/src/form/components/ErrorFocus.tsx +3 -3
- package/src/form/components/LocalChangesMenu.tsx +13 -13
- package/src/form/components/StorageItemPreview.tsx +5 -3
- package/src/form/components/StorageUploadProgress.tsx +18 -3
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +18 -5
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +22 -10
- package/src/form/field_bindings/BlockFieldBinding.tsx +26 -9
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -17
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +46 -25
- package/src/form/field_bindings/MapFieldBinding.tsx +88 -70
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +93 -52
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +15 -1
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +25 -11
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +25 -11
- package/src/form/field_bindings/RepeatFieldBinding.tsx +21 -6
- package/src/form/field_bindings/SelectFieldBinding.tsx +7 -5
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +110 -92
- package/src/form/field_bindings/SwitchFieldBinding.tsx +31 -14
- package/src/form/field_bindings/TextFieldBinding.tsx +77 -38
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +7 -5
- package/src/form/validation.ts +245 -160
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useBreadcrumbsController.tsx +18 -0
- package/src/hooks/useBuildNavigationController.tsx +91 -41
- package/src/hooks/useCollapsedGroups.ts +18 -9
- package/src/hooks/useTranslation.ts +31 -0
- package/src/hooks/useValidateAuthenticator.tsx +1 -1
- package/src/i18n/FireCMSi18nProvider.tsx +160 -0
- package/src/index.ts +5 -0
- package/src/internal/useBuildDataSource.ts +68 -34
- package/src/internal/useBuildSideDialogsController.tsx +11 -8
- package/src/internal/useBuildSideEntityController.tsx +24 -24
- package/src/internal/useRestoreScroll.tsx +26 -14
- package/src/locales/de.ts +718 -0
- package/src/locales/en.ts +730 -0
- package/src/locales/es.ts +730 -0
- package/src/locales/fr.ts +718 -0
- package/src/locales/hi.ts +718 -0
- package/src/locales/it.ts +718 -0
- package/src/locales/pt.ts +727 -0
- package/src/preview/PropertyPreview.tsx +43 -33
- package/src/preview/PropertyPreviewProps.tsx +6 -0
- package/src/preview/components/DatePreview.tsx +72 -4
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +37 -21
- package/src/preview/components/ReferencePreview.tsx +2 -1
- package/src/preview/components/StorageThumbnail.tsx +16 -12
- package/src/preview/components/UrlComponentPreview.tsx +32 -27
- package/src/preview/components/UserPreview.tsx +3 -1
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +9 -7
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +11 -9
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +26 -24
- package/src/preview/property_previews/MapPropertyPreview.tsx +49 -27
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +61 -56
- package/src/routes/CustomCMSRoute.tsx +1 -0
- package/src/routes/FireCMSRoute.tsx +87 -65
- package/src/types/analytics.ts +10 -0
- package/src/types/collections.ts +97 -3
- package/src/types/customization_controller.tsx +2 -1
- package/src/types/datasource.ts +54 -56
- package/src/types/firecms.tsx +2 -1
- package/src/types/index.ts +1 -0
- package/src/types/navigation.ts +2 -2
- package/src/types/plugins.tsx +77 -1
- package/src/types/properties.ts +359 -37
- package/src/types/storage.ts +2 -1
- package/src/types/translations.ts +752 -0
- package/src/util/__tests__/conditions.test.ts +506 -0
- package/src/util/__tests__/objects.test.ts +196 -0
- package/src/util/callbacks.ts +6 -3
- package/src/util/collections.ts +51 -6
- package/src/util/conditions.ts +339 -0
- package/src/util/entities.ts +29 -30
- package/src/util/entity_cache.ts +2 -1
- package/src/util/index.ts +3 -1
- package/src/util/join_collections.ts +10 -8
- package/src/util/lazy_eager.tsx +33 -0
- package/src/util/objects.ts +46 -13
- package/src/util/{references.ts → previews.ts} +16 -2
- package/src/util/property_utils.tsx +37 -11
- package/src/util/resolutions.ts +62 -58
- package/src/util/useStorageUploadController.tsx +23 -29
- /package/dist/util/{references.d.ts → previews.d.ts} +0 -0
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
User
|
|
12
12
|
} from "../../types";
|
|
13
13
|
import { OnCellValueChange, OnColumnResizeParams, UniqueFieldValidator } from "../common/types";
|
|
14
|
+
import { VirtualTableColumn } from "../VirtualTable";
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* @group Collection components
|
|
@@ -18,142 +19,158 @@ import { OnCellValueChange, OnColumnResizeParams, UniqueFieldValidator } from ".
|
|
|
18
19
|
export type EntityCollectionTableProps<M extends Record<string, any>,
|
|
19
20
|
USER extends User = User> = {
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
className?: string;
|
|
23
|
+
|
|
24
|
+
style?: React.CSSProperties;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Display these entities as selected
|
|
28
|
+
*/
|
|
29
|
+
selectionController: SelectionController<M>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* List of entities that will be displayed as selected;
|
|
33
|
+
*/
|
|
34
|
+
highlightedEntities?: Entity<M>[];
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Override the title in the toolbar
|
|
38
|
+
*/
|
|
39
|
+
title?: React.ReactNode;
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Additional component that renders actions such as buttons in the
|
|
42
|
-
* collection toolbar, displayed on the left side
|
|
43
|
-
*/
|
|
44
|
-
actionsStart?: React.ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* Additional component that renders actions such as buttons in the
|
|
43
|
+
* collection toolbar, displayed on the left side
|
|
44
|
+
*/
|
|
45
|
+
actionsStart?: React.ReactNode;
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Callback when a cell value changes.
|
|
49
|
+
*/
|
|
50
|
+
onValueChange?: OnCellValueChange<any, M>;
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
uniqueFieldValidator?: UniqueFieldValidator;
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Builder for creating the buttons in each row
|
|
56
|
+
* @param entity
|
|
57
|
+
* @param size
|
|
58
|
+
*/
|
|
59
|
+
tableRowActionsBuilder?: (params: {
|
|
60
|
+
entity: Entity<M>,
|
|
61
|
+
size: CollectionSize,
|
|
62
|
+
width: number,
|
|
63
|
+
frozen?: boolean
|
|
64
|
+
}) => React.ReactNode;
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Callback when anywhere on the table is clicked
|
|
68
|
+
*/
|
|
69
|
+
onEntityClick?(entity: Entity<M>): void;
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Callback when a column is resized
|
|
73
|
+
*/
|
|
74
|
+
onColumnResize?(params: OnColumnResizeParams): void;
|
|
74
75
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Initial scroll position
|
|
78
|
+
*/
|
|
79
|
+
initialScroll?: number;
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Callback when the table is scrolled
|
|
83
|
+
* @param props
|
|
84
|
+
*/
|
|
85
|
+
onScroll?: (props: {
|
|
86
|
+
scrollDirection: "forward" | "backward",
|
|
87
|
+
scrollOffset: number,
|
|
88
|
+
scrollUpdateWasRequested: boolean
|
|
89
|
+
}) => void;
|
|
89
90
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Callback when the selected size of the table is changed
|
|
93
|
+
*/
|
|
94
|
+
onSizeChanged?(size: CollectionSize): void;
|
|
94
95
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Should apply a different style to a row when hovering
|
|
98
|
+
*/
|
|
99
|
+
hoverRow?: boolean;
|
|
99
100
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Additional component that renders actions such as buttons in the
|
|
103
|
+
* collection toolbar, displayed on the right side
|
|
104
|
+
*/
|
|
105
|
+
actions?: React.ReactNode;
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*/
|
|
111
|
-
tableController: EntityTableController<M>;
|
|
107
|
+
/**
|
|
108
|
+
* View mode toggle button, positioned left of the search bar.
|
|
109
|
+
*/
|
|
110
|
+
viewModeToggle?: React.ReactNode;
|
|
112
111
|
|
|
113
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Controller holding the logic for the table
|
|
114
|
+
* {@link useDataSourceTableController}
|
|
115
|
+
* {@link EntityTableController}
|
|
116
|
+
*/
|
|
117
|
+
tableController: EntityTableController<M>;
|
|
114
118
|
|
|
115
|
-
|
|
119
|
+
displayedColumnIds?: PropertyColumnConfig[];
|
|
116
120
|
|
|
117
|
-
|
|
121
|
+
forceFilter?: FilterValues<Extract<keyof M, string>>;
|
|
118
122
|
|
|
119
|
-
|
|
123
|
+
textSearchEnabled?: boolean;
|
|
120
124
|
|
|
121
|
-
|
|
125
|
+
inlineEditing?: boolean;
|
|
122
126
|
|
|
123
|
-
|
|
127
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
124
128
|
|
|
125
|
-
|
|
129
|
+
defaultSize?: CollectionSize;
|
|
126
130
|
|
|
127
|
-
|
|
131
|
+
properties: ResolvedProperties<M>;
|
|
128
132
|
|
|
129
|
-
|
|
133
|
+
getPropertyFor?: (props: GetPropertyForProps<M>) => ResolvedProperties<M>[string];
|
|
130
134
|
|
|
131
|
-
|
|
135
|
+
filterable?: boolean;
|
|
132
136
|
|
|
133
|
-
|
|
137
|
+
sortable?: boolean;
|
|
134
138
|
|
|
135
|
-
|
|
136
|
-
property: ResolvedProperty,
|
|
137
|
-
propertyKey: string,
|
|
138
|
-
onHover: boolean,
|
|
139
|
-
}>;
|
|
139
|
+
endAdornment?: React.ReactNode;
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
AdditionalHeaderWidget?: React.ComponentType<{
|
|
142
|
+
property: ResolvedProperty,
|
|
143
|
+
propertyKey: string,
|
|
144
|
+
onHover: boolean,
|
|
145
|
+
}>;
|
|
142
146
|
|
|
143
|
-
|
|
147
|
+
AddColumnComponent?: React.ComponentType;
|
|
144
148
|
|
|
145
|
-
|
|
149
|
+
additionalIDHeaderWidget?: React.ReactNode;
|
|
146
150
|
|
|
147
|
-
|
|
151
|
+
emptyComponent?: React.ReactNode;
|
|
148
152
|
|
|
149
|
-
|
|
153
|
+
getIdColumnWidth?: () => number;
|
|
150
154
|
|
|
151
|
-
|
|
155
|
+
onTextSearchClick?: () => void;
|
|
152
156
|
|
|
153
|
-
|
|
157
|
+
textSearchLoading?: boolean;
|
|
154
158
|
|
|
155
|
-
|
|
156
|
-
|
|
159
|
+
enablePopupIcon: boolean;
|
|
160
|
+
|
|
161
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Callback when columns are reordered via drag-and-drop
|
|
165
|
+
*/
|
|
166
|
+
onColumnsOrderChange?: (columns: VirtualTableColumn[]) => void;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* If true, the internal toolbar will not be rendered.
|
|
170
|
+
* Used when the parent component renders its own toolbar.
|
|
171
|
+
*/
|
|
172
|
+
hideToolbar?: boolean;
|
|
173
|
+
};
|
|
157
174
|
|
|
158
175
|
export type GetPropertyForProps<M extends Record<string, any>> = {
|
|
159
176
|
propertyKey: string,
|
|
@@ -49,6 +49,13 @@ export interface PropertyTableCellProps<T extends CMSType> {
|
|
|
49
49
|
path: string;
|
|
50
50
|
disabled: boolean;
|
|
51
51
|
enablePopupIcon?: boolean;
|
|
52
|
+
// Sortable props for dnd-kit integration
|
|
53
|
+
sortableNodeRef?: (node: HTMLElement | null) => void;
|
|
54
|
+
sortableStyle?: React.CSSProperties;
|
|
55
|
+
sortableAttributes?: Record<string, any>;
|
|
56
|
+
isDragging?: boolean;
|
|
57
|
+
isDraggable?: boolean;
|
|
58
|
+
frozen?: boolean;
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
function isStorageProperty(property: ResolvedProperty) {
|
|
@@ -69,19 +76,25 @@ function isStorageProperty(property: ResolvedProperty) {
|
|
|
69
76
|
|
|
70
77
|
export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
71
78
|
function PropertyTableCell<T extends CMSType, M extends Record<string, any>>({
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
propertyKey,
|
|
80
|
+
customFieldValidator,
|
|
81
|
+
value,
|
|
82
|
+
property,
|
|
83
|
+
align,
|
|
84
|
+
width,
|
|
85
|
+
height,
|
|
86
|
+
path,
|
|
87
|
+
entity,
|
|
88
|
+
readonly,
|
|
89
|
+
disabled: disabledProp,
|
|
90
|
+
enablePopupIcon = true,
|
|
91
|
+
sortableNodeRef,
|
|
92
|
+
sortableStyle,
|
|
93
|
+
sortableAttributes,
|
|
94
|
+
isDragging,
|
|
95
|
+
isDraggable,
|
|
96
|
+
frozen
|
|
97
|
+
}: PropertyTableCellProps<T>) {
|
|
85
98
|
|
|
86
99
|
const {
|
|
87
100
|
onValueChange,
|
|
@@ -240,7 +253,13 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
240
253
|
align={align ?? "left"}
|
|
241
254
|
fullHeight={false}
|
|
242
255
|
disabledTooltip={disabledTooltip ?? (readOnlyProperty ? "Read only" : undefined)}
|
|
243
|
-
disabled={true}
|
|
256
|
+
disabled={true}
|
|
257
|
+
sortableNodeRef={sortableNodeRef}
|
|
258
|
+
sortableStyle={sortableStyle}
|
|
259
|
+
sortableAttributes={sortableAttributes}
|
|
260
|
+
isDragging={isDragging}
|
|
261
|
+
isDraggable={isDraggable}
|
|
262
|
+
frozen={frozen}>
|
|
244
263
|
<PropertyPreview
|
|
245
264
|
width={width}
|
|
246
265
|
height={getRowHeight(size)}
|
|
@@ -261,32 +280,32 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
261
280
|
const referenceValue = internalValue ? new EntityReference(internalValue, path) : undefined;
|
|
262
281
|
innerComponent =
|
|
263
282
|
<TableReferenceField name={propertyKey as string}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
283
|
+
internalValue={referenceValue}
|
|
284
|
+
updateValue={(v) => updateValue(v ? (v as EntityReference).id : null)}
|
|
285
|
+
disabled={disabled}
|
|
286
|
+
size={size}
|
|
287
|
+
path={path}
|
|
288
|
+
multiselect={false}
|
|
289
|
+
previewProperties={referenceProperty.previewProperties}
|
|
290
|
+
includeId={referenceProperty.includeId}
|
|
291
|
+
includeEntityLink={referenceProperty.includeEntityLink}
|
|
292
|
+
title={stringProperty.name}
|
|
293
|
+
forceFilter={referenceProperty.forceFilter}
|
|
275
294
|
/>;
|
|
276
295
|
allowScroll = false;
|
|
277
296
|
} else if (isAStorageProperty) {
|
|
278
297
|
innerComponent = <TableStorageUpload error={validationError ?? error}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
298
|
+
disabled={disabled}
|
|
299
|
+
focused={selected}
|
|
300
|
+
selected={selected}
|
|
301
|
+
openPopup={setPopupCell ? openPopup : undefined}
|
|
302
|
+
property={property as ResolvedStringProperty | ResolvedArrayProperty<string[]>}
|
|
303
|
+
entity={entity}
|
|
304
|
+
path={path}
|
|
305
|
+
value={internalValue}
|
|
306
|
+
previewSize={getPreviewSizeFrom(size)}
|
|
307
|
+
updateValue={updateValue}
|
|
308
|
+
propertyKey={propertyKey as string}
|
|
290
309
|
/>;
|
|
291
310
|
includeActions = false;
|
|
292
311
|
showExpandIcon = true;
|
|
@@ -296,15 +315,15 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
296
315
|
const numberProperty = property as ResolvedNumberProperty;
|
|
297
316
|
if (numberProperty.enumValues) {
|
|
298
317
|
innerComponent = <VirtualTableSelect name={propertyKey as string}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
318
|
+
multiple={false}
|
|
319
|
+
disabled={disabled}
|
|
320
|
+
focused={selected}
|
|
321
|
+
valueType={"number"}
|
|
322
|
+
small={getPreviewSizeFrom(size) !== "medium"}
|
|
323
|
+
enumValues={numberProperty.enumValues}
|
|
324
|
+
error={validationError ?? error}
|
|
325
|
+
internalValue={internalValue as string | number}
|
|
326
|
+
updateValue={updateValue}
|
|
308
327
|
/>;
|
|
309
328
|
fullHeight = true;
|
|
310
329
|
} else {
|
|
@@ -322,54 +341,55 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
322
341
|
const stringProperty = property as ResolvedStringProperty;
|
|
323
342
|
if (stringProperty.enumValues) {
|
|
324
343
|
innerComponent = <VirtualTableSelect name={propertyKey as string}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
344
|
+
multiple={false}
|
|
345
|
+
focused={selected}
|
|
346
|
+
disabled={disabled}
|
|
347
|
+
valueType={"string"}
|
|
348
|
+
small={getPreviewSizeFrom(size) !== "medium"}
|
|
349
|
+
enumValues={stringProperty.enumValues}
|
|
350
|
+
error={validationError ?? error}
|
|
351
|
+
internalValue={internalValue as string | number}
|
|
352
|
+
updateValue={updateValue}
|
|
334
353
|
/>;
|
|
335
354
|
fullHeight = true;
|
|
336
355
|
} else if (stringProperty.userSelect) {
|
|
337
356
|
innerComponent = <VirtualTableUserSelect name={propertyKey as string}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
357
|
+
multiple={false}
|
|
358
|
+
focused={selected}
|
|
359
|
+
disabled={disabled}
|
|
360
|
+
small={getPreviewSizeFrom(size) !== "medium"}
|
|
361
|
+
error={validationError ?? error}
|
|
362
|
+
internalValue={internalValue as string}
|
|
363
|
+
updateValue={updateValue}
|
|
345
364
|
/>;
|
|
346
365
|
fullHeight = true;
|
|
347
366
|
} else if (stringProperty.markdown || !stringProperty.storage || !stringProperty.reference) {
|
|
348
367
|
const multiline = Boolean(stringProperty.multiline) || Boolean(stringProperty.markdown);
|
|
349
368
|
innerComponent = <VirtualTableInput error={validationError ?? error}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
369
|
+
disabled={disabled}
|
|
370
|
+
multiline={multiline}
|
|
371
|
+
focused={selected}
|
|
372
|
+
value={internalValue as string}
|
|
373
|
+
updateValue={updateValue}
|
|
355
374
|
/>;
|
|
356
375
|
allowScroll = true;
|
|
357
376
|
}
|
|
358
377
|
} else if (property.dataType === "boolean") {
|
|
359
378
|
innerComponent = <VirtualTableSwitch error={validationError ?? error}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
379
|
+
disabled={disabled}
|
|
380
|
+
focused={selected}
|
|
381
|
+
internalValue={internalValue as boolean}
|
|
382
|
+
updateValue={updateValue}
|
|
364
383
|
/>;
|
|
365
384
|
} else if (property.dataType === "date") {
|
|
366
385
|
innerComponent = <VirtualTableDateField name={propertyKey as string}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
386
|
+
error={validationError ?? error}
|
|
387
|
+
disabled={disabled}
|
|
388
|
+
mode={property.mode}
|
|
389
|
+
timezone={property.timezone}
|
|
390
|
+
focused={selected}
|
|
391
|
+
internalValue={internalValue as Date}
|
|
392
|
+
updateValue={updateValue}
|
|
373
393
|
/>;
|
|
374
394
|
fullHeight = true;
|
|
375
395
|
hideOverflow = false;
|
|
@@ -378,17 +398,17 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
378
398
|
if (typeof property.path === "string") {
|
|
379
399
|
innerComponent =
|
|
380
400
|
<TableReferenceField name={propertyKey as string}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
401
|
+
internalValue={internalValue as EntityReference}
|
|
402
|
+
updateValue={updateValue}
|
|
403
|
+
disabled={disabled}
|
|
404
|
+
size={size}
|
|
405
|
+
path={property.path}
|
|
406
|
+
multiselect={false}
|
|
407
|
+
previewProperties={property.previewProperties}
|
|
408
|
+
includeId={property.includeId}
|
|
409
|
+
includeEntityLink={property.includeEntityLink}
|
|
410
|
+
title={property.name}
|
|
411
|
+
forceFilter={property.forceFilter}
|
|
392
412
|
/>;
|
|
393
413
|
}
|
|
394
414
|
allowScroll = false;
|
|
@@ -403,15 +423,15 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
403
423
|
if (selected && arrayProperty.of.enumValues) {
|
|
404
424
|
innerComponent =
|
|
405
425
|
<VirtualTableSelect name={propertyKey as string}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
426
|
+
multiple={true}
|
|
427
|
+
disabled={disabled}
|
|
428
|
+
focused={selected}
|
|
429
|
+
small={getPreviewSizeFrom(size) !== "medium"}
|
|
430
|
+
valueType={arrayProperty.of.dataType}
|
|
431
|
+
enumValues={arrayProperty.of.enumValues}
|
|
432
|
+
error={validationError ?? error}
|
|
433
|
+
internalValue={internalValue as string | number}
|
|
434
|
+
updateValue={updateValue}
|
|
415
435
|
/>;
|
|
416
436
|
allowScroll = true;
|
|
417
437
|
fullHeight = true;
|
|
@@ -447,11 +467,11 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
447
467
|
showExpandIcon = enablePopupIcon && selected && !innerComponent && !disabled && !readOnlyProperty;
|
|
448
468
|
innerComponent = (
|
|
449
469
|
<PropertyPreview width={width}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
470
|
+
height={height}
|
|
471
|
+
propertyKey={propertyKey as string}
|
|
472
|
+
value={internalValue}
|
|
473
|
+
property={property}
|
|
474
|
+
size={getPreviewSizeFrom(size)}
|
|
455
475
|
/>
|
|
456
476
|
);
|
|
457
477
|
}
|
|
@@ -474,12 +494,18 @@ export const PropertyTableCell = React.memo<PropertyTableCellProps<any>>(
|
|
|
474
494
|
showExpandIcon={showExpandIcon}
|
|
475
495
|
value={internalValue}
|
|
476
496
|
hideOverflow={hideOverflow}
|
|
497
|
+
sortableNodeRef={sortableNodeRef}
|
|
498
|
+
sortableStyle={sortableStyle}
|
|
499
|
+
sortableAttributes={sortableAttributes}
|
|
500
|
+
isDragging={isDragging}
|
|
501
|
+
isDraggable={isDraggable}
|
|
502
|
+
frozen={frozen}
|
|
477
503
|
actions={includeActions && <EntityTableCellActions
|
|
478
504
|
showError={showError}
|
|
479
505
|
disabled={disabled}
|
|
480
506
|
showExpandIcon={showExpandIcon}
|
|
481
507
|
selected={selected}
|
|
482
|
-
openPopup={!disabled ? openPopup : undefined}/>}
|
|
508
|
+
openPopup={!disabled ? openPopup : undefined} />}
|
|
483
509
|
>
|
|
484
510
|
|
|
485
511
|
{innerComponent}
|
|
@@ -498,6 +524,9 @@ function areEqual(prevProps: PropertyTableCellProps<any>, nextProps: PropertyTab
|
|
|
498
524
|
equal(prevProps.property, nextProps.property) &&
|
|
499
525
|
equal(prevProps.value, nextProps.value) &&
|
|
500
526
|
equal(prevProps.entity.id, nextProps.entity.id) &&
|
|
501
|
-
equal(prevProps.entity.values, nextProps.entity.values)
|
|
527
|
+
equal(prevProps.entity.values, nextProps.entity.values) &&
|
|
528
|
+
prevProps.isDragging === nextProps.isDragging &&
|
|
529
|
+
prevProps.isDraggable === nextProps.isDraggable &&
|
|
530
|
+
prevProps.frozen === nextProps.frozen
|
|
502
531
|
;
|
|
503
532
|
}
|
|
@@ -10,6 +10,7 @@ import { useCustomizationController, useNavigationController, useReferenceDialog
|
|
|
10
10
|
import { ErrorView } from "../../ErrorView";
|
|
11
11
|
import { cls, EditIcon } from "@firecms/ui";
|
|
12
12
|
import { EntityPreviewContainer } from "../../EntityPreview";
|
|
13
|
+
import { useTranslation } from "../../../hooks";
|
|
13
14
|
|
|
14
15
|
type TableReferenceFieldProps = {
|
|
15
16
|
name: string;
|
|
@@ -62,6 +63,8 @@ export const TableReferenceFieldInternal = React.memo(
|
|
|
62
63
|
includeEntityLink
|
|
63
64
|
} = props;
|
|
64
65
|
|
|
66
|
+
const { t } = useTranslation();
|
|
67
|
+
|
|
65
68
|
const onSingleEntitySelected = useCallback((entity: Entity<any>) => {
|
|
66
69
|
updateValue(entity ? getReferenceFrom(entity) : null);
|
|
67
70
|
}, [updateValue]);
|
|
@@ -111,7 +114,7 @@ export const TableReferenceFieldInternal = React.memo(
|
|
|
111
114
|
return <EntityPreviewContainer
|
|
112
115
|
onClick={disabled ? undefined : handleOpen}
|
|
113
116
|
size={getPreviewSizeFrom(size)}>
|
|
114
|
-
<ErrorView title="
|
|
117
|
+
<ErrorView title={t("value_is_not_reference")} error={t("click_to_edit")}/>
|
|
115
118
|
</EntityPreviewContainer>;
|
|
116
119
|
};
|
|
117
120
|
|
|
@@ -136,11 +139,11 @@ export const TableReferenceFieldInternal = React.memo(
|
|
|
136
139
|
}
|
|
137
140
|
</>;
|
|
138
141
|
else
|
|
139
|
-
return <ErrorView error={"
|
|
142
|
+
return <ErrorView error={t("data_is_not_array_of_references")}/>;
|
|
140
143
|
};
|
|
141
144
|
|
|
142
145
|
if (!collection)
|
|
143
|
-
return <ErrorView error={"
|
|
146
|
+
return <ErrorView error={t("collection_does_not_exist")}/>;
|
|
144
147
|
|
|
145
148
|
return (
|
|
146
149
|
<div className="w-full group">
|