// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from "react"; import { Field, Validator } from "redux-form"; import { TextField } from "components/text-field/text-field"; import { COLLECTION_NAME_VALIDATION, COLLECTION_NAME_VALIDATION_ALLOW_SLASH, COLLECTION_DESCRIPTION_VALIDATION, COLLECTION_PROJECT_VALIDATION } from "validators/validators"; import { ProjectTreePickerField, CollectionTreePickerField, DirectoryTreePickerField } from "views-components/projects-tree-picker/tree-picker-field"; import { PickerIdProp } from 'store/tree-picker/picker-id'; import { connect } from "react-redux"; import { RootState } from "store/store"; import { MultiCheckboxField } from "components/checkbox-field/checkbox-field"; import { getStorageClasses } from "common/config"; import { ERROR_MESSAGE } from "validators/require"; interface CollectionNameFieldProps { validate: Validator[]; } // See implementation note on declaration of ProjectNameField export const CollectionNameField = connect( (state: RootState) => { return { validate: (state.auth.config.clusterConfig.Collections.ForwardSlashNameSubstitution === "" ? COLLECTION_NAME_VALIDATION : COLLECTION_NAME_VALIDATION_ALLOW_SLASH) }; })((props: CollectionNameFieldProps) => ); export const CollectionDescriptionField = () => ; export const CollectionProjectPickerField = (props: PickerIdProp) => ; export const CollectionPickerField = (props: PickerIdProp) => ; const validateDirectory = (val) => (val && val.uuid ? undefined : ERROR_MESSAGE); export const DirectoryPickerField = (props: PickerIdProp) => ; interface StorageClassesProps { items: string[]; defaultClasses?: string[]; } export const CollectionStorageClassesField = connect( (state: RootState) => { return { items: getStorageClasses(state.auth.config) }; })( (props: StorageClassesProps) => );