diff --git a/web/pgadmin/static/js/SchemaView/DataGridView.jsx b/web/pgadmin/static/js/SchemaView/DataGridView.jsx index b26df43d8..0438258c4 100644 --- a/web/pgadmin/static/js/SchemaView/DataGridView.jsx +++ b/web/pgadmin/static/js/SchemaView/DataGridView.jsx @@ -206,6 +206,7 @@ export default function DataGridView({ fixedRows, ...props}) { const classes = useStyles(); const stateUtils = useContext(StateUtilsContext); + const depListener = useContext(DepListenerContext); /* Using ref so that schema variable is not frozen in columns closure */ const schemaRef = useRef(schema); @@ -266,6 +267,8 @@ export default function DataGridView({ path: accessPath, value: row.index, }); + + depListener.removeDepListener(accessPath.concat(row.index)); }, ()=>{}, props.customDeleteTitle, props.customDeleteMsg); }} className={classes.gridRowButton} disabled={!canDeleteRow} /> ); diff --git a/web/pgadmin/static/js/SchemaView/DepListener.js b/web/pgadmin/static/js/SchemaView/DepListener.js index 3b2c8de6a..84fdf77be 100644 --- a/web/pgadmin/static/js/SchemaView/DepListener.js +++ b/web/pgadmin/static/js/SchemaView/DepListener.js @@ -19,6 +19,11 @@ export default class DepListener { }); } + + removeDepListener(dest) { + this._depListeners = _.filter(this._depListeners, (l)=>!_.join(l.dest, '|').startsWith(_.join(dest, '|'))); + } + _getListenerData(state, listener, actionObj) { /* Get data at same level */ let data = state; diff --git a/web/regression/javascript/components/Privilege.spec.js b/web/regression/javascript/components/Privilege.spec.js index 8847244e9..88afbced2 100644 --- a/web/regression/javascript/components/Privilege.spec.js +++ b/web/regression/javascript/components/Privilege.spec.js @@ -12,13 +12,15 @@ import React from 'react'; import '../helper/enzyme.helper'; import Privilege from 'sources/components/Privilege'; import { mount } from 'enzyme'; +import { withTheme } from '../fake_theme'; describe('Privilege', ()=>{ let ctrl, onChange = jasmine.createSpy('onChange'); beforeEach(()=>{ jasmineEnzyme(); + let ThemedPrivilege = withTheme(Privilege); ctrl = mount( -