From 20f54ed3b096580790211688d3ed8d9a73ebb902 Mon Sep 17 00:00:00 2001 From: Anish Roy <6275anishroy@gmail.com> Date: Fri, 5 May 2023 15:44:41 +0530 Subject: [PATCH 1/4] fix: JSON column configuration overlapping fields --- src/components/fields/Json/SideDrawerField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/fields/Json/SideDrawerField.tsx b/src/components/fields/Json/SideDrawerField.tsx index 4c0fbc96..03a451c6 100644 --- a/src/components/fields/Json/SideDrawerField.tsx +++ b/src/components/fields/Json/SideDrawerField.tsx @@ -83,7 +83,7 @@ export default function Json({ sx={{ minHeight: 32, mt: -32 / 8, - ".MuiPopover-root &": { mt: 0 }, // Don’t have margins in popover cell + ".MuiPopover-root & , .MuiDialog-root &": { mt: 0 }, // Don’t have margins in popover cell and dialog "& .MuiTabs-flexContainer": { justifyContent: "flex-end", From 3a3f4656bc269dc22c76d54d1f8ca3a3cad0ef33 Mon Sep 17 00:00:00 2001 From: Anish Roy <6275anishroy@gmail.com> Date: Fri, 5 May 2023 15:50:24 +0530 Subject: [PATCH 2/4] fix: Action button on table with frozen column, floats with high z index --- src/components/fields/Action/ActionFab.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/fields/Action/ActionFab.tsx b/src/components/fields/Action/ActionFab.tsx index c09c2903..7896fae8 100644 --- a/src/components/fields/Action/ActionFab.tsx +++ b/src/components/fields/Action/ActionFab.tsx @@ -204,6 +204,7 @@ export default function ActionFab({ } size="small" sx={{ + zIndex: 1, "&:not(.MuiFab-primary):not(.MuiFab-secondary):not(.Mui-disabled)": { bgcolor: (theme) => theme.palette.mode === "dark" From de84161b5c328623a873d7290babe86b428c85d5 Mon Sep 17 00:00:00 2001 From: Anish Roy <6275anishroy@gmail.com> Date: Fri, 5 May 2023 16:31:09 +0530 Subject: [PATCH 3/4] fix: context right click menu breaks when cell being selected is in editor mode --- src/components/Table/TableCell/TableCell.tsx | 24 ++++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/components/Table/TableCell/TableCell.tsx b/src/components/Table/TableCell/TableCell.tsx index 4ea51433..76d92c81 100644 --- a/src/components/Table/TableCell/TableCell.tsx +++ b/src/components/Table/TableCell/TableCell.tsx @@ -182,13 +182,27 @@ export const TableCell = memo(function TableCell({ }} onContextMenu={(e) => { e.preventDefault(); - setSelectedCell({ - path: row.original._rowy_ref.path, - columnKey: cell.column.id, - focusInside: false, + + let isEditorCell = false; + + setSelectedCell((prev) => { + isEditorCell = prev?.focusInside === true; + return { + path: row.original._rowy_ref.path, + columnKey: cell.column.id, + focusInside: false, + // focusInside: !!!prev + // ? false + // : prev?.columnKey === cell.column.id && + // prev.path === row.original._rowy_ref.path + // ? prev?.focusInside + // : false, + }; }); (e.target as HTMLDivElement).focus(); - setContextMenuTarget(e.target as HTMLElement); + if (!isEditorCell) { + setContextMenuTarget(e.target as HTMLElement); + } }} > {renderedValidationTooltip} From c688be388190a01fe70e4f06f892e0a6f9e30fb0 Mon Sep 17 00:00:00 2001 From: Anish Roy <6275anishroy@gmail.com> Date: Fri, 5 May 2023 16:44:22 +0530 Subject: [PATCH 4/4] feat: Array value formatted on display cells --- src/components/fields/Array/DisplayCell.tsx | 10 ++++++++++ .../fields/Array/SideDrawerField/SupportedTypes.ts | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/components/fields/Array/DisplayCell.tsx b/src/components/fields/Array/DisplayCell.tsx index e934ea5f..22f8c0a1 100644 --- a/src/components/fields/Array/DisplayCell.tsx +++ b/src/components/fields/Array/DisplayCell.tsx @@ -1,5 +1,7 @@ import { useTheme } from "@mui/material"; import { IDisplayCellProps } from "@src/components/fields/types"; +import { isArray } from "lodash-es"; +import { SupportedTypes, detectType } from "./SideDrawerField/SupportedTypes"; export default function Array({ value }: IDisplayCellProps) { const theme = useTheme(); @@ -7,6 +9,14 @@ export default function Array({ value }: IDisplayCellProps) { if (!value) { return null; } + if (isArray(value)) { + value = value.map((item: any) => { + let itemType = detectType(item); + let converter = SupportedTypes[itemType].humanize; + if (!converter) return item; + return converter(item); + }); + } return (