20085: Sharing dialog immediately saves changes
[arvados-workbench2.git] / src / views-components / sharing-dialog / sharing-public-access-form.tsx
index bf64ba32771433dfaf5c8b7a8adb77be18ea0731..eb337c38ad19f8aae3c3ed58430b2326ed3940f4 100644 (file)
@@ -3,17 +3,26 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { reduxForm } from 'redux-form';
-import { connect } from 'react-redux';
 import { compose } from 'redux';
+import { connect } from 'react-redux';
 import SharingPublicAccessFormComponent from './sharing-public-access-form-component';
-import { SHARING_PUBLIC_ACCESS_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
-import { PermissionLevel } from '~/models/permission';
+import { SHARING_PUBLIC_ACCESS_FORM_NAME, VisibilityLevel } from 'store/sharing-dialog/sharing-dialog-types';
+import { RootState } from 'store/store';
+import { getSharingPublicAccessFormData } from '../../store/sharing-dialog/sharing-dialog-types';
+
+interface SaveProps {
+    onSave: () => void;
+}
+
 export const SharingPublicAccessForm = compose(
-    connect(() => ({
-        initialValues: {
-            enabled: false,
-            permissions: PermissionLevel.CAN_READ,
+    reduxForm<{}, SaveProps>(
+        { form: SHARING_PUBLIC_ACCESS_FORM_NAME }
+    ),
+    connect(
+        (state: RootState) => {
+            const { visibility } = getSharingPublicAccessFormData(state) || { visibility: VisibilityLevel.PRIVATE };
+            const includePublic = state.auth.config.clusterConfig.Users.AnonymousUserToken.length > 0;
+            return { visibility, includePublic };
         }
-    })),
-    reduxForm({ form: SHARING_PUBLIC_ACCESS_FORM_NAME })
-)(SharingPublicAccessFormComponent);
\ No newline at end of file
+    )
+)(SharingPublicAccessFormComponent);