diff --git a/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/sharing/sharing.tsx b/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/sharing/sharing.tsx index 85b1ef798509..65e1f55eb86d 100644 --- a/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/sharing/sharing.tsx +++ b/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/sharing/sharing.tsx @@ -17,11 +17,16 @@ import { Restrictions, Access, Security, Entry } from '../../utils/security' const user = require('component/singletons/user-instance') const common = require('js/Common') const announcement = require('component/announcement') -const store = require('../../../js/store.js') + +type Attribute = { + attribute: string + values: string[] +} type Props = { id: number lightbox: any + onUpdate?: (attributes: Attribute[]) => void } type State = { @@ -120,12 +125,13 @@ export class Sharing extends React.Component { if (res.status !== 200) { throw new Error() } - - store.setWorkspaceRestrictions(this.props.id, attributes) - return res.json() }) .then(() => { + if (this.props.onUpdate) { + this.props.onUpdate(attributes) + } + this.props.lightbox.close() announcement.announce( { diff --git a/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/workspace-interactions/workspace-interactions.tsx b/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/workspace-interactions/workspace-interactions.tsx index 7fc9bcfbbb77..d9ddbea6cac3 100644 --- a/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/workspace-interactions/workspace-interactions.tsx +++ b/ui/packages/catalog-ui-search/src/main/webapp/react-component/container/workspace-interactions/workspace-interactions.tsx @@ -29,6 +29,11 @@ type State = { subscribed: boolean } +type Attribute = { + attribute: string + values: string[] +} + const mapPropsToState = (props: Props) => { return { subscribed: props.workspace.get('subscribed'), @@ -80,6 +85,9 @@ class WorkspaceInteractions extends React.Component { openWorkspaceInNewTab = () => { window.open('./#workspaces/' + this.props.workspace.id) } + updateWorkspaceRestrictions = (attributes: Attribute[]) => { + store.setWorkspaceRestrictions(this.props.workspace.id, attributes) + } viewSharing = () => { lightboxInstance.model.updateTitle('Workspace Sharing') lightboxInstance.model.open() @@ -88,6 +96,7 @@ class WorkspaceInteractions extends React.Component { key={this.props.workspace.id} id={this.props.workspace.id} lightbox={lightboxInstance} + onUpdate={this.updateWorkspaceRestrictions} /> ) }