@firecms/core 3.0.0-canary.113 → 3.0.0-canary.114

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.
Files changed (31) hide show
  1. package/dist/components/ArrayContainer.d.ts +2 -1
  2. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
  3. package/dist/components/EntityPreview.d.ts +1 -1
  4. package/dist/form/components/FormikArrayContainer.d.ts +2 -1
  5. package/dist/index.es.js +114 -74
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/index.umd.js +113 -73
  8. package/dist/index.umd.js.map +1 -1
  9. package/dist/preview/components/ReferencePreview.d.ts +1 -1
  10. package/dist/types/side_dialogs_controller.d.ts +10 -0
  11. package/dist/util/icons.d.ts +1 -0
  12. package/package.json +5 -5
  13. package/src/components/ArrayContainer.tsx +7 -4
  14. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +13 -8
  15. package/src/components/EntityPreview.tsx +20 -22
  16. package/src/components/HomePage/DefaultHomePage.tsx +7 -9
  17. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +6 -2
  18. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +3 -3
  19. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -1
  20. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  21. package/src/core/EntityEditView.tsx +18 -16
  22. package/src/form/components/FormikArrayContainer.tsx +4 -1
  23. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
  24. package/src/form/field_bindings/BlockFieldBinding.tsx +2 -1
  25. package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -4
  26. package/src/hooks/useBuildNavigationController.tsx +0 -3
  27. package/src/internal/useBuildSideDialogsController.tsx +1 -0
  28. package/src/internal/useBuildSideEntityController.tsx +13 -2
  29. package/src/preview/components/ReferencePreview.tsx +2 -13
  30. package/src/types/side_dialogs_controller.tsx +13 -0
  31. package/src/util/icons.tsx +8 -2
@@ -21,7 +21,7 @@ export type ReferencePreviewProps = {
21
21
  /**
22
22
  * @group Preview components
23
23
  */
24
- export const ReferencePreview = React.memo<ReferencePreviewProps>(function ReferencePreview(props: ReferencePreviewProps) {
24
+ export const ReferencePreview = function ReferencePreview(props: ReferencePreviewProps) {
25
25
  const reference = props.reference;
26
26
  if (!(typeof reference === "object" && "isEntityReference" in reference && reference.isEntityReference())) {
27
27
  console.warn("Reference preview received value of type", typeof reference);
@@ -33,18 +33,7 @@ export const ReferencePreview = React.memo<ReferencePreviewProps>(function Refer
33
33
  </EntityPreviewContainer>;
34
34
  }
35
35
  return <ReferencePreviewInternal {...props} />;
36
- }, areEqual) as React.FunctionComponent<ReferencePreviewProps>;
37
-
38
- function areEqual(prevProps: ReferencePreviewProps, nextProps: ReferencePreviewProps) {
39
- return prevProps.disabled === nextProps.disabled &&
40
- prevProps.size === nextProps.size &&
41
- prevProps.hover === nextProps.hover &&
42
- prevProps.reference?.id === nextProps.reference?.id &&
43
- prevProps.reference?.path === nextProps.reference?.path &&
44
- prevProps.includeEntityLink === nextProps.includeEntityLink &&
45
- prevProps.onClick === nextProps.onClick
46
- ;
47
- }
36
+ };
48
37
 
49
38
  function ReferencePreviewInternal({
50
39
  disabled,
@@ -1,3 +1,5 @@
1
+ import React from "react";
2
+
1
3
  /**
2
4
  * Controller to open the side dialog
3
5
  * @group Hooks and utilities
@@ -14,6 +16,12 @@ export interface SideDialogsController {
14
16
  */
15
17
  sidePanels: SideDialogPanelProps[];
16
18
 
19
+ /**
20
+ * Override the current side panels
21
+ * @param panels
22
+ */
23
+ setSidePanels: (panels: SideDialogPanelProps[]) => void;
24
+
17
25
  /**
18
26
  * Open one or multiple side panels
19
27
  * @param props
@@ -65,4 +73,9 @@ export interface SideDialogPanelProps {
65
73
  * Callback when the panel is closed
66
74
  */
67
75
  onClose?: () => void;
76
+
77
+ /**
78
+ * Use this prop to store additional data in the panel
79
+ */
80
+ additional?: any;
68
81
  }
@@ -22,7 +22,13 @@ export type IconViewProps = {
22
22
  }
23
23
 
24
24
  export const IconForView = React.memo(
25
- function IconForView({ collectionOrView, className }: { collectionOrView?: IconViewProps, className?: string }): React.ReactElement {
25
+ function IconForView({
26
+ collectionOrView,
27
+ className,
28
+ size = "medium"
29
+ }: {
30
+ collectionOrView?: IconViewProps, className?: string, size?: "smallest" | "small" | "medium" | "large" | number,
31
+ }): React.ReactElement {
26
32
  if (!collectionOrView) return <></>;
27
33
  const icon = getIcon(collectionOrView.icon, className);
28
34
  if (collectionOrView?.icon && icon)
@@ -45,7 +51,7 @@ export const IconForView = React.memo(
45
51
  if (!key)
46
52
  key = coolIconKeys[hashString(collectionOrView.path) % iconsCount];
47
53
 
48
- return <Icon iconKey={key} size={"medium"} className={className}/>;
54
+ return <Icon iconKey={key} size={size} className={className}/>;
49
55
  }, (prevProps, nextProps) => {
50
56
  return equal(prevProps.collectionOrView?.icon, nextProps.collectionOrView?.icon);
51
57
  });