20085: Sharing dialog immediately saves changes
[arvados-workbench2.git] / src / views-components / sharing-dialog / sharing-public-access-form-component.tsx
index 37b3d37678b5bd382468e5dc1e1a65685094aea1..a9c9d6fc1aef0ad0ae71ccbf4d7dd4fbdc97fa2a 100644 (file)
@@ -18,11 +18,12 @@ const sharingPublicAccessStyles: StyleRulesCallback<'root'> = theme => ({
 
 interface AccessProps {
     visibility: VisibilityLevel;
+    includePublic: boolean;
     onSave: () => void;
 }
 
 const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
-    ({ classes, visibility, onSave }: WithStyles<'root'> & AccessProps) =>
+    ({ classes, visibility, includePublic, onSave }: WithStyles<'root'> & AccessProps) =>
         <>
             <Divider />
             <Grid container alignItems='center' spacing={8} className={classes.root}>
@@ -32,7 +33,7 @@ const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
                     </Typography>
                 </Grid>
                 <Grid item xs={4} container wrap='nowrap'>
-                    <Field name='visibility' component={VisibilityLevelSelectComponent} onChange={onSave} />
+                    <Field<{ includePublic: boolean }> name='visibility' component={VisibilityLevelSelectComponent} includePublic={includePublic} onChange={onSave} />
                 </Grid>
             </Grid>
         </>
@@ -41,7 +42,9 @@ const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
 const renderVisibilityInfo = (visibility: VisibilityLevel) => {
     switch (visibility) {
         case VisibilityLevel.PUBLIC:
-            return 'Anyone can access';
+            return 'Anyone on the Internet can access';
+        case VisibilityLevel.ALL_USERS:
+            return 'All users on this cluster can access';
         case VisibilityLevel.SHARED:
             return 'Specific people can access';
         case VisibilityLevel.PRIVATE:
@@ -51,10 +54,10 @@ const renderVisibilityInfo = (visibility: VisibilityLevel) => {
     }
 };
 
-const SharingPublicAccessFormComponent = ({ visibility, onSave }: AccessProps) =>
-    <SharingPublicAccessForm {...{ visibility, onSave }} />;
+const SharingPublicAccessFormComponent = ({ visibility, includePublic, onSave }: AccessProps) =>
+    <SharingPublicAccessForm {...{ visibility, includePublic, onSave }} />;
 
 export default SharingPublicAccessFormComponent;
 
-const VisibilityLevelSelectComponent = ({ input }: WrappedFieldProps) =>
-    <VisibilityLevelSelect fullWidth disableUnderline {...input} />;
+const VisibilityLevelSelectComponent = ({ input, includePublic }: { includePublic: boolean } & WrappedFieldProps) =>
+    <VisibilityLevelSelect fullWidth disableUnderline {...input} includePublic={includePublic} />;