19969: Pass required prop to generic input to allow disabling required asterisk on...
authorStephen Smith <stephen@curii.com>
Mon, 20 Mar 2023 17:54:30 +0000 (13:54 -0400)
committerStephen Smith <stephen@curii.com>
Mon, 20 Mar 2023 17:54:30 +0000 (13:54 -0400)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/views-components/form-fields/search-bar-form-fields.tsx
src/views/run-process-panel/inputs/generic-input.tsx
src/views/run-process-panel/inputs/project-input.tsx

index be28ba2a29d7a449d7225b7fcd5e3ad8b5c39f6a..47633a0b12061d649f0491c0328d56ca7c5ed1af 100644 (file)
@@ -47,7 +47,7 @@ export const SearchBarClusterField = connect(
     );
 
 export const SearchBarProjectField = () =>
-    <ProjectInput input={{
+    <ProjectInput required={false} input={{
         id: "projectObject",
         label: "Limit search to Project"
     } as ProjectCommandInputParameter}
index 8ca4ec89502f045b544c00cc64b0ee84778e382c..963998f1e5504b11f4cdb3a38ab20f88f6f161cc 100644 (file)
@@ -13,12 +13,13 @@ export type GenericInputProps = WrappedFieldProps & {
 
 type GenericInputContainerProps = GenericInputProps & {
     component: React.ComponentType<GenericInputProps>;
+    required?: boolean;
 };
 export const GenericInput = ({ component: Component, ...props }: GenericInputContainerProps) => {
     return <FormGroup>
         <FormLabel
             focused={props.meta.active}
-            required={isRequiredInput(props.commandInput)}
+            required={props.required !== undefined ? props.required : isRequiredInput(props.commandInput)}
             error={props.meta.touched && !!props.meta.error}>
             {getInputLabel(props.commandInput)}
         </FormLabel>
@@ -31,4 +32,4 @@ export const GenericInput = ({ component: Component, ...props }: GenericInputCon
             }
         </FormHelperText>
     </FormGroup>;
-};
\ No newline at end of file
+};
index 97028fc97cfc1a3f34a96e4cf56f45e3a9c0e989..279e399c60c0ab466cb636a9380df80d79cfa595 100644 (file)
@@ -37,9 +37,10 @@ export const ProjectInput = ({ required, input, options }: ProjectInputProps) =>
         commandInput={input}
         component={ProjectInputComponent as any}
         format={format}
-        validate={required ? require : undefined}
+        validate={required !== undefined ? require : undefined}
         {...{
-            options
+            options,
+            required
         }} />;
 
 const format = (value?: ProjectResource) => value ? value.name : '';
@@ -58,6 +59,7 @@ const mapStateToProps = (state: RootState) => ({ userUuid: getUserUuid(state) })
 export const ProjectInputComponent = connect(mapStateToProps)(
     class ProjectInputComponent extends React.Component<GenericInputProps & DispatchProp & HasUserUuid & {
         options?: { showOnlyOwned: boolean, showOnlyWritable: boolean };
+        required?: boolean;
     }, ProjectInputComponentState> {
         state: ProjectInputComponentState = {
             open: false,