From faeb8f108c5df7b2f4ddbbf2e7c8f50f0ca409bc Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 24 Jun 2024 20:10:49 +0530 Subject: [PATCH] TJDB row edit drawer fix after click on expand (#10161) Co-authored-by: blank0537 --- .../Drawers/EditRowDrawer/index.jsx | 67 ++++++++++--------- frontend/src/TooljetDatabase/Table/Header.jsx | 6 +- frontend/src/TooljetDatabase/Table/index.jsx | 27 ++++++-- 3 files changed, 61 insertions(+), 39 deletions(-) diff --git a/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx b/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx index 6ada6b0930..13b59555e3 100644 --- a/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx +++ b/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx @@ -13,6 +13,7 @@ const EditRowDrawer = ({ setIsEditRowDrawerOpen, selectedRowIds, rows, + isDirectRowExpand, referencedColumnDetails, setReferencedColumnDetails, }) => { @@ -37,38 +38,40 @@ const EditRowDrawer = ({ return ( <> - { - setIsEditRowDrawerOpen(!isEditRowDrawerOpen); - }} - className="gap-0" - data-cy="edit-row-button-" - style={{ - padding: '4px 8px 4px 8px', - }} - > - {/* */} - - - - - -    - - Edit row - - + {!isDirectRowExpand && ( + { + setIsEditRowDrawerOpen(!isEditRowDrawerOpen); + }} + className="gap-0" + data-cy="edit-row-button-" + style={{ + padding: '4px 8px 4px 8px', + }} + > + {/* */} + + + + + +    + + Edit row + + + )} setIsEditRowDrawerOpen(false)} diff --git a/frontend/src/TooljetDatabase/Table/Header.jsx b/frontend/src/TooljetDatabase/Table/Header.jsx index cdc0101c69..92a0f41852 100644 --- a/frontend/src/TooljetDatabase/Table/Header.jsx +++ b/frontend/src/TooljetDatabase/Table/Header.jsx @@ -29,6 +29,7 @@ const Header = ({ setIsEditRowDrawerOpen, setFilterEnable, filterEnable, + isDirectRowExpand, referencedColumnDetails, setReferencedColumnDetails, }) => { @@ -149,7 +150,7 @@ const Header = ({
<> - {Object.keys(selectedRowIds).length === 0 && ( + {(isDirectRowExpand || Object.keys(selectedRowIds).length === 0) && ( <> ) : null} - {Object.keys(selectedRowIds).length > 0 && ( + {!isDirectRowExpand && Object.keys(selectedRowIds).length > 0 && (
{ const [nullValue, setNullValue] = useState(false); const [progress, setProgress] = useState(0); const [isCellUpdateInProgress, setIsCellUpdateInProgress] = useState(false); + const [isDirectRowExpand, setIsDirectRowExpand] = useState(false); const [referencedColumnDetails, setReferencedColumnDetails] = useState([]); const [cachedOptions, setCahedOptions] = useState({}); @@ -225,6 +226,7 @@ const Table = ({ collapseSidebar }) => { const newSelectedIdRef = {}; if (rowIdSelected) newSelectedIdRef[`${rowIdSelected}`] = true; setSelectedRowIds(newSelectedIdRef); + setIsDirectRowExpand(true); return; }; @@ -401,6 +403,14 @@ const Table = ({ collapseSidebar }) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [selectedTable]); + useEffect(() => { + if (!isEditRowDrawerOpen && isDirectRowExpand) { + setSelectedRowIds({}); + setIsDirectRowExpand(false); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isEditRowDrawerOpen]); + const tableData = React.useMemo( () => (loading ? Array(10).fill({}) : selectedTableData), [loading, selectedTableData] @@ -1083,6 +1093,8 @@ const Table = ({ collapseSidebar }) => { setIsEditRowDrawerOpen={setIsEditRowDrawerOpen} setFilterEnable={setFilterEnable} filterEnable={filterEnable} + isDirectRowExpand={isDirectRowExpand} + setIsDirectRowExpand={setIsDirectRowExpand} referencedColumnDetails={referencedColumnDetails} setReferencedColumnDetails={setReferencedColumnDetails} // getForeignKeyDetails={getForeignKeyDetails} @@ -1156,15 +1168,20 @@ const Table = ({ collapseSidebar }) => {
0 && Object.keys(selectedRowIds).length < rows.length + isDirectRowExpand + ? false + : Object.keys(selectedRowIds).length > 0 && Object.keys(selectedRowIds).length < rows.length + } + checked={ + isDirectRowExpand ? false : Object.keys(selectedRowIds).length === rows.length && rows.length } - checked={Object.keys(selectedRowIds).length === rows.length && rows.length} onChange={() => toggleSelectOrDeSelectAllRows(rows.length)} style={{ backgroundColor: `${ - (Object.keys(selectedRowIds).length > 0 && + (!isDirectRowExpand && + Object.keys(selectedRowIds).length > 0 && Object.keys(selectedRowIds).length < rows.length) || - (Object.keys(selectedRowIds).length === rows.length && rows.length) + (!isDirectRowExpand && Object.keys(selectedRowIds).length === rows.length && rows.length) ? '#3E63DD' : 'var(--base)' }`, @@ -1263,7 +1280,7 @@ const Table = ({ collapseSidebar }) => { }} > toggleRowSelection(row.id)} />