dispatch({ id: row.id, type: 'toggleSubRow', filterParams: filterParams, gridData: gridData, selectedRows: selectedRows })}
+ />
+ )}
+
+
+ {!hasChildren && (
+
+
+ {row.label}
+
+ )}
+
+ >
+ );
+ };
+
+ Cell.displayName = 'Cell';
+ Cell.propTypes = {
+ row: PropTypes.object,
+ isCellSelected: PropTypes.bool,
+ };
+ return Cell;
+}
+
+function resultFormatter({selectedRows, activeRow, setActiveRow, getStyleClassName}) {
+ const Cell = ({ row, isCellSelected })=>{
+ isCellSelected && setActiveRow(row.id);
+
+ return (
+
+ {row.status}
+
+ );
+ };
+
+ Cell.displayName = 'Cell';
+ Cell.propTypes = {
+ row: PropTypes.object,
+ isCellSelected: PropTypes.bool,
+ };
+ return Cell;
+}
+
export function ResultGridComponent({ gridData, allRowIds, filterParams, selectedRowIds, transId, sourceData, targetData }) {
const [rows, dispatch] = useReducer(reducer, [...gridData]);
@@ -553,56 +671,15 @@ export function ResultGridComponent({ gridData, allRowIds, filterParams, selecte
...SelectColumn,
minWidth: 30,
width: 30,
- headerRenderer() {
- return (
- {
- if (e.target.checked) {
- setRootSelection(true);
- setSelectedRows([...allRowIds]);
- selectedRowIds([...allRowIds]);
- } else {
- setRootSelection(false);
- setSelectedRows([]);
- selectedRowIds([]);
- }
- }
- }
- >
- );
- },
- formatter({ row, isCellSelected }) {
- isCellSelected && setActiveRow(row.id);
- return (
-
- {
- setSelectedRows((prev) => {
- let tempSelectedRows = [...prev];
- if (!prev.includes(e.target.id)) {
- selectedResultRows(row, tempSelectedRows);
- tempSelectedRows.length === allRowIds.length && setRootSelection(true);
- } else {
- deselectResultRows(row, tempSelectedRows);
- }
- tempSelectedRows = new Set(tempSelectedRows);
- selectedRowIds([...tempSelectedRows]);
- return [...tempSelectedRows];
- });
- }
- }
- >
-
- );
- }
+ headerRenderer: selectHeaderRenderer({
+ selectedRows, setSelectedRows, rootSelection,
+ setRootSelection, allRowIds, selectedRowIds
+ }),
+ formatter: selectFormatter({
+ selectedRows, setSelectedRows, setRootSelection,
+ activeRow, setActiveRow, allRowIds, selectedRowIds,
+ selectedResultRows, deselectResultRows, getStyleClassName
+ }),
},
{
key: 'label',
@@ -615,46 +692,15 @@ export function ResultGridComponent({ gridData, allRowIds, filterParams, selecte
return 1;
},
- formatter({ row, isCellSelected }) {
- const hasChildren = row.children !== undefined;
- isCellSelected && setActiveRow(row.id);
- return (
- <>
- {hasChildren && (
-
- dispatch({ id: row.id, type: 'toggleSubRow', filterParams: filterParams, gridData: gridData, selectedRows: selectedRows })}
- />
- )}
-
-
- {!hasChildren && (
-
-
- {row.label}
-
- )}
-
- >
- );
- }
+ formatter: expandFormatter({
+ activeRow, setActiveRow, filterParams, gridData,
+ selectedRows, dispatch, getStyleClassName
+ }),
},
{
key: 'status',
name: 'Comparison Result',
- formatter({ row, isCellSelected }) {
- isCellSelected && setActiveRow(row.id);
-
- return (
-
- {row.status}
-
- );
- }
+ formatter: resultFormatter({selectedRows, activeRow, setActiveRow, getStyleClassName}),
},
];
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
index 606a58cd5..c6371054c 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
@@ -51,6 +51,31 @@ const StyledEditor = styled('div')(({theme})=>({
}
}));
+function ShowDataOutputQueryPopup({query}) {
+ function suppressEnterKey(e) {
+ if(e.keyCode == 13) {
+ e.stopPropagation();
+ }
+ }
+
+ return (
+
+ {
+ setEditorPosition(document.getElementById('sql-query'), ele, '.MuiBox-root', 29);
+ }} onKeyDown={suppressEnterKey}>
+
+
+
+ );
+}
+ShowDataOutputQueryPopup.propTypes = {
+ query: PropTypes.string,
+};
+
export function ResultSetToolbar({query,canEdit, totalRowCount}) {
const eventBus = useContext(QueryToolEventsContext);
const queryToolCtx = useContext(QueryToolContext);
@@ -182,28 +207,6 @@ export function ResultSetToolbar({query,canEdit, totalRowCount}) {
},
], queryToolCtx.mainContainerRef);
- function suppressEnterKey(e) {
- if(e.keyCode == 13) {
- e.stopPropagation();
- }
- }
-
- const ShowDataOutputQueryPopup =()=> {
- return (
-
- {
- setEditorPosition(document.getElementById('sql-query'), ele, '.MuiBox-root', 29);
- }} onKeyDown={suppressEnterKey}>
-
-
-
- );
- };
-
return (
<>
@@ -234,13 +237,13 @@ export function ResultSetToolbar({query,canEdit, totalRowCount}) {
}
onClick={showGraphVisualiser} disabled={buttonsDisabled['save-result']} />
- {query &&
+ {query &&
<>
}
onClick={()=>{setDataOutputQueryBtn(prev=>!prev);}} onBlur={()=>{setDataOutputQueryBtn(false);}} disabled={!query} id='sql-query'/>
- { dataOutputQueryBtn && }
+ { dataOutputQueryBtn && }
>
}