[arvados-workbench2] updated: 2.7.0-208-g964ad537
git repository hosting
git at public.arvados.org
Thu Nov 16 19:05:55 UTC 2023
Summary of changes:
.../multiselect-toolbar/MultiselectToolbar.tsx | 32 +++++++++++++---------
.../multiselect-toolbar/ms-project-action-set.ts | 14 ++++++----
2 files changed, 27 insertions(+), 19 deletions(-)
via 964ad5378b3cb1a3f02b8c89afb13340e69337a1 (commit)
from b58b29e3653118ef6a3f37d7312aab9d96f2af47 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 964ad5378b3cb1a3f02b8c89afb13340e69337a1
Author: Lisa Knox <lisaknox83 at gmail.com>
Date: Thu Nov 16 14:05:49 2023 -0500
21128: fixed unfreezing from toolbar Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>
diff --git a/src/components/multiselect-toolbar/MultiselectToolbar.tsx b/src/components/multiselect-toolbar/MultiselectToolbar.tsx
index 927da8c3..227fd2b1 100644
--- a/src/components/multiselect-toolbar/MultiselectToolbar.tsx
+++ b/src/components/multiselect-toolbar/MultiselectToolbar.tsx
@@ -43,17 +43,21 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
export type MultiselectToolbarProps = {
checkedList: TCheckedList;
selectedUuid: string | null
- resources: ResourcesState;
+ iconProps: IconProps
executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => void;
- favorites: FavoritesState
};
+type IconProps = {
+ resources: ResourcesState;
+ favorites: FavoritesState
+}
+
export const MultiselectToolbar = connect(
mapStateToProps,
mapDispatchToProps
)(
withStyles(styles)((props: MultiselectToolbarProps & WithStyles<CssRules>) => {
- const { classes, checkedList, resources, selectedUuid: singleSelectedUuid, favorites } = props;
+ const { classes, checkedList, selectedUuid: singleSelectedUuid, iconProps } = props;
const currentResourceKinds = Array.from(selectedToKindSet(checkedList));
const currentPathIsTrash = window.location.pathname === "/trash";
@@ -75,12 +79,12 @@ export const MultiselectToolbar = connect(
action.hasAlts ? (
<Tooltip
className={classes.button}
- title={action.useAlts(singleSelectedUuid, resources, favorites) ? action.altName: action.name}
+ title={action.useAlts(singleSelectedUuid, iconProps) ? action.altName: action.name}
key={i}
disableFocusListener
>
- <IconButton onClick={() => props.executeMulti(action, checkedList, resources)}>
- {action.useAlts(singleSelectedUuid, resources, favorites) ? action.altIcon && action.altIcon({}): action.icon({})}
+ <IconButton onClick={() => props.executeMulti(action, checkedList, iconProps.resources)}>
+ {action.useAlts(singleSelectedUuid, iconProps) ? action.altIcon && action.altIcon({}): action.icon({})}
</IconButton>
</Tooltip>
) : (
@@ -90,7 +94,7 @@ export const MultiselectToolbar = connect(
key={i}
disableFocusListener
>
- <IconButton onClick={() => props.executeMulti(action, checkedList, resources)}>{action.icon({})}</IconButton>
+ <IconButton onClick={() => props.executeMulti(action, checkedList, iconProps.resources)}>{action.icon({})}</IconButton>
</Tooltip>
)
)
@@ -194,13 +198,15 @@ const isExactlyOneSelected = (checkedList: TCheckedList) => {
//--------------------------------------------------//
-function mapStateToProps(state: RootState) {
+function mapStateToProps({multiselect, resources, favorites}: RootState) {
return {
- checkedList: state.multiselect.checkedList as TCheckedList,
- selectedUuid: isExactlyOneSelected(state.multiselect.checkedList),
- resources: state.resources,
- favorites: state.favorites
- };
+ checkedList: multiselect.checkedList as TCheckedList,
+ selectedUuid: isExactlyOneSelected(multiselect.checkedList),
+ iconProps: {
+ resources,
+ favorites
+ }
+ }
}
function mapDispatchToProps(dispatch: Dispatch) {
diff --git a/src/views-components/multiselect-toolbar/ms-project-action-set.ts b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
index dc620a19..b61cded5 100644
--- a/src/views-components/multiselect-toolbar/ms-project-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
@@ -41,8 +41,8 @@ export const msToggleFavoriteAction = {
altName: 'Remove from Favorites',
altIcon: RemoveFavoriteIcon,
isForMulti: false,
- useAlts: (uuid, resources, favorites) => {
- return checkFavorite(uuid, favorites);
+ useAlts: (uuid, iconProps) => {
+ return checkFavorite(uuid, iconProps.favorites);
},
execute: (dispatch, resources) => {
dispatch(toggleFavorite(resources[0])).then(() => {
@@ -138,8 +138,8 @@ export const msToggleTrashAction = {
altName: 'Restore from Trash',
altIcon: RestoreFromTrashIcon,
isForMulti: true,
- useAlts: (uuid, resources, favorites = []) => {
- return uuid ? (getResource(uuid)(resources) as any).isTrashed : false;
+ useAlts: (uuid, iconProps) => {
+ return uuid ? (getResource(uuid)(iconProps.resources) as any).isTrashed : false;
},
execute: (dispatch, resources) => {
for (const resource of [...resources]) {
@@ -155,9 +155,11 @@ export const msFreezeProjectAction = {
altName: 'Unfreeze Project',
altIcon: UnfreezeIcon,
isForMulti: false,
- useAlts: () => false,
+ useAlts: (uuid, iconProps) => {
+ return uuid ? !!(getResource(uuid)(iconProps.resources) as any).frozenByUuid : false;
+ },
execute: (dispatch, resources) => {
- if (resources[0].isFrozen) {
+ if (resources[0].frozenByUuid) {
dispatch(unfreezeProject(resources[0].uuid));
} else {
dispatch(freezeProject(resources[0].uuid));
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list