18123: Add optional disabled prop to active checkbox.
authorStephen Smith <stephen@curii.com>
Tue, 14 Dec 2021 02:45:40 +0000 (21:45 -0500)
committerStephen Smith <stephen@curii.com>
Tue, 14 Dec 2021 02:45:40 +0000 (21:45 -0500)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/views-components/data-explorer/renderers.tsx
src/views/group-details-panel/group-details-panel.tsx

index 2ec4bf51558f632d47ddca2fcf65cb5cb9f8d7d8..11752a5a6ae4b1c4956e7bbde04b73f3e44039dd 100644 (file)
@@ -188,11 +188,12 @@ export const ResourceEmail = connect(
         return resource || { email: '' };
     })(renderEmail);
 
-const renderIsActive = (props: { uuid: string, kind: ResourceKind, isActive: boolean, toggleIsActive: (uuid: string) => void }) => {
+const renderIsActive = (props: { uuid: string, kind: ResourceKind, isActive: boolean, toggleIsActive: (uuid: string) => void, disabled?: boolean }) => {
     if (props.kind === ResourceKind.USER) {
         return <Checkbox
             color="primary"
             checked={props.isActive}
+            disabled={!!props.disabled}
             onClick={() => props.toggleIsActive(props.uuid)} />;
     } else {
         return <Typography />;
@@ -200,18 +201,18 @@ const renderIsActive = (props: { uuid: string, kind: ResourceKind, isActive: boo
 }
 
 export const ResourceIsActive = connect(
-    (state: RootState, props: { uuid: string }) => {
+    (state: RootState, props: { uuid: string, disabled?: boolean }) => {
         const resource = getResource<UserResource>(props.uuid)(state.resources);
-        return resource || { isActive: false, kind: ResourceKind.NONE };
+        return resource ? {...resource, disabled: !!props.disabled} : { isActive: false, kind: ResourceKind.NONE };
     }, { toggleIsActive }
 )(renderIsActive);
 
 export const ResourceLinkTailIsActive = connect(
-    (state: RootState, props: { uuid: string }) => {
+    (state: RootState, props: { uuid: string, disabled?: boolean }) => {
         const link = getResource<LinkResource>(props.uuid)(state.resources);
         const tailResource = getResource<UserResource>(link?.tailUuid || '')(state.resources);
 
-        return tailResource || { isActive: false, kind: ResourceKind.NONE };
+        return tailResource ? {...tailResource, disabled: !!props.disabled} : { isActive: false, kind: ResourceKind.NONE };
     }, { toggleIsActive }
 )(renderIsActive);
 
index 9f2d3f41d9c0498d46c57db09b78b9fd039a8fcd..e47ff8c0cc114eef30147b75ffa434b366a12398 100644 (file)
@@ -55,7 +55,7 @@ export const groupDetailsMembersPanelColumns: DataColumns<string> = [
         selected: true,
         configurable: true,
         filters: createTree(),
-        render: uuid => <ResourceLinkTailIsActive uuid={uuid} />
+        render: uuid => <ResourceLinkTailIsActive uuid={uuid} disabled={true} />
     },
     {
         name: GroupDetailsPanelMembersColumnNames.VISIBLE,