From 5402ee0019c6d9f12d2864e383d1a17a91c3b8b5 Mon Sep 17 00:00:00 2001 From: dsehnal <david.sehnal@gmail.com> Date: Tue, 13 Dec 2022 15:16:19 +0100 Subject: [PATCH] ApplyActionControl param handling --- CHANGELOG.md | 1 + src/mol-plugin-ui/state/apply-action.tsx | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3de459f2..ae05abb51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ Note that since we don't clearly distinguish between a public and private interf - Add interior cylinder caps - Add per-pixel object clipping - Fix `QualityAssessment` assignment bug for structures with different auth vs label sequence numbering +- Refresh `ApplyActionControl`'s param definition when toggling expanded state ## [v3.26.0] - 2022-12-04 diff --git a/src/mol-plugin-ui/state/apply-action.tsx b/src/mol-plugin-ui/state/apply-action.tsx index 6bdf1ab40..61d1ca99d 100644 --- a/src/mol-plugin-ui/state/apply-action.tsx +++ b/src/mol-plugin-ui/state/apply-action.tsx @@ -28,7 +28,8 @@ namespace ApplyActionControl { params: any, error?: string, busy: boolean, - isInitial: boolean + isInitial: boolean, + isCollapsed?: boolean, } } @@ -40,7 +41,7 @@ class ApplyActionControl extends TransformControlBase<ApplyActionControl.Props, ref: this.props.nodeRef }); } - getInfo() { return this._getInfo(this.props.nodeRef, this.props.state.transforms.get(this.props.nodeRef).version); } + getInfo() { return this._getInfo(this.props.nodeRef, this.props.state.transforms.get(this.props.nodeRef).version, this.state?.isCollapsed); } getTransformerId() { return this.props.state.transforms.get(this.props.nodeRef).transformer.id; } getHeader() { return this.props.hideHeader ? 'none' : this.props.action.definition.display; } canApply() { return !this.state.error && !this.state.busy; } @@ -49,9 +50,9 @@ class ApplyActionControl extends TransformControlBase<ApplyActionControl.Props, isUpdate() { return false; } getSourceAndTarget() { return { a: this.props.state.cells.get(this.props.nodeRef)!.obj }; } - private _getInfo = memoizeLatest((t: StateTransform.Ref, v: string) => StateTransformParameters.infoFromAction(this.plugin, this.props.state, this.props.action, this.props.nodeRef)); + private _getInfo = memoizeLatest((t: StateTransform.Ref, v: string, collapsed?: boolean) => StateTransformParameters.infoFromAction(this.plugin, this.props.state, this.props.action, this.props.nodeRef)); - state = { plugin: this.plugin, ref: this.props.nodeRef, version: this.props.state.transforms.get(this.props.nodeRef).version, error: void 0, isInitial: true, params: this.getInfo().initialValues, busy: false, isCollapsed: this.props.initiallyCollapsed }; + state: ApplyActionControl.ComponentState = { plugin: this.plugin, ref: this.props.nodeRef, version: this.props.state.transforms.get(this.props.nodeRef).version, error: void 0, isInitial: true, params: this.getInfo().initialValues, busy: false, isCollapsed: this.props.initiallyCollapsed }; static getDerivedStateFromProps(props: ApplyActionControl.Props, state: ApplyActionControl.ComponentState) { const version = props.state.transforms.get(props.nodeRef).version; -- GitLab