15768: standardized naming Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii...
[arvados.git] / src / views-components / sharing-dialog / sharing-public-access-form.tsx
index 1b39a654de8a66f0d66b9e6316da809540528469..eb337c38ad19f8aae3c3ed58430b2326ed3940f4 100644 (file)
@@ -3,9 +3,26 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { reduxForm } from 'redux-form';
+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 { 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';
 
-export const SharingPublicAccessForm = reduxForm(
-    { form: SHARING_PUBLIC_ACCESS_FORM_NAME }
+interface SaveProps {
+    onSave: () => void;
+}
+
+export const SharingPublicAccessForm = compose(
+    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 };
+        }
+    )
 )(SharingPublicAccessFormComponent);