From b88c50eca601c1f412a1a7ce0ecf169ce9710e36 Mon Sep 17 00:00:00 2001 From: Manish Kushare Date: Tue, 24 Jan 2023 20:43:16 +0530 Subject: [PATCH] [ Feature added ] : [Table widget ] adding CSA to deselect the row (#5320) * feature add: un select the selected row using csa * adding age case if wrong key and value is provided while un selecting selecetd row, then show alert message and do nothing * made the suggested changes * added csa action to discard the changes * update the changes rquested --- .../src/Editor/Components/Table/Table.jsx | 27 +++++++++++++++++++ .../src/Editor/WidgetManager/widgetConfig.js | 8 ++++++ 2 files changed, 35 insertions(+) diff --git a/frontend/src/Editor/Components/Table/Table.jsx b/frontend/src/Editor/Components/Table/Table.jsx index d1ab147395..1a80472b3b 100644 --- a/frontend/src/Editor/Components/Table/Table.jsx +++ b/frontend/src/Editor/Components/Table/Table.jsx @@ -40,6 +40,7 @@ import * as XLSX from 'xlsx/xlsx.mjs'; import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; import Popover from 'react-bootstrap/Popover'; import { useMounted } from '@/_hooks/use-mount'; +import { toast } from 'react-hot-toast'; export function Table({ id, @@ -486,6 +487,32 @@ export function Table({ }, [JSON.stringify(tableData), JSON.stringify(tableDetails.selectedRow)] ); + registerAction( + 'deselectRow', + async function () { + if (!_.isEmpty(tableDetails.selectedRow)) { + const selectedRowDetails = { selectedRow: {}, selectedRowId: {} }; + mergeToTableDetails(selectedRowDetails); + setExposedVariables(selectedRowDetails); + } + return; + }, + [JSON.stringify(tableData), JSON.stringify(tableDetails.selectedRow)] + ); + registerAction( + 'discardChanges', + async function () { + if (Object.keys(tableDetails.changeSet || {}).length > 0) { + setExposedVariables({ + changeSet: {}, + dataUpdates: [], + }).then(() => { + mergeToTableDetails({ dataUpdates: {}, changeSet: {} }); + }); + } + }, + [JSON.stringify(tableData), JSON.stringify(tableDetails.changeSet)] + ); useEffect(() => { const selectedRowsOriginalData = selectedFlatRows.map((row) => row.original); diff --git a/frontend/src/Editor/WidgetManager/widgetConfig.js b/frontend/src/Editor/WidgetManager/widgetConfig.js index a4dad2a337..0a892c74a6 100644 --- a/frontend/src/Editor/WidgetManager/widgetConfig.js +++ b/frontend/src/Editor/WidgetManager/widgetConfig.js @@ -378,6 +378,14 @@ export const widgets = [ { handle: 'value', displayName: 'Value' }, ], }, + { + handle: 'deselectRow', + displayName: 'Deselect row', + }, + { + handle: 'discardChanges', + displayName: 'Discard Changes', + }, ], definition: { others: {