20085: Make the public/private/shared dropdown save on change
[arvados-workbench2.git] / src / views-components / sharing-dialog / sharing-public-access-form-component.tsx
index 7ec71161ab303ed41cc7f4c4e34c43a7ae6b7577..37b3d37678b5bd382468e5dc1e1a65685094aea1 100644 (file)
@@ -16,8 +16,13 @@ const sharingPublicAccessStyles: StyleRulesCallback<'root'> = theme => ({
     }
 });
 
+interface AccessProps {
+    visibility: VisibilityLevel;
+    onSave: () => void;
+}
+
 const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
-    ({ classes, visibility }: WithStyles<'root'> & { visibility: VisibilityLevel }) =>
+    ({ classes, visibility, onSave }: WithStyles<'root'> & AccessProps) =>
         <>
             <Divider />
             <Grid container alignItems='center' spacing={8} className={classes.root}>
@@ -27,7 +32,7 @@ const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
                     </Typography>
                 </Grid>
                 <Grid item xs={4} container wrap='nowrap'>
-                    <Field name='visibility' component={VisibilityLevelSelectComponent} />
+                    <Field name='visibility' component={VisibilityLevelSelectComponent} onChange={onSave} />
                 </Grid>
             </Grid>
         </>
@@ -46,9 +51,10 @@ const renderVisibilityInfo = (visibility: VisibilityLevel) => {
     }
 };
 
-export default ({ visibility }: { visibility: VisibilityLevel }) =>
-    <SharingPublicAccessForm {...{ visibility }} />;
+const SharingPublicAccessFormComponent = ({ visibility, onSave }: AccessProps) =>
+    <SharingPublicAccessForm {...{ visibility, onSave }} />;
+
+export default SharingPublicAccessFormComponent;
 
 const VisibilityLevelSelectComponent = ({ input }: WrappedFieldProps) =>
     <VisibilityLevelSelect fullWidth disableUnderline {...input} />;
-