blob: 73b4cc2c294ad008cdafd78cab92208f174ee4c0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { LightTooltip } from "@components/muiComponents";
import { InputLabel, TextField, Typography } from "@mui/material";
import { Capitalize, isEmpty } from "@utils/Utils";
import { Controller } from "react-hook-form";
const FormInputText = ({
data,
control,
fieldName,
isLabelCapitalized
}: any) => {
const { name, isOptional, typeName } = data;
return (
<Controller
name={!isEmpty(fieldName) ? `${fieldName}.${name}` : name}
control={control}
rules={{
required: !isOptional
}}
key={name}
render={({ field: { onChange, value }, fieldState: { error } }) => (
<>
<div className="form-fields">
<InputLabel className="form-textfield-label" required={!isOptional}>
{!isEmpty(isLabelCapitalized) ? name : Capitalize(name)}
</InputLabel>
<LightTooltip title={`Data Type: (${typeName})`}>
<Typography
color="#666666"
overflow="hidden"
textOverflow="ellipsis"
maxWidth="160px"
fontSize={14}
>{`(${typeName})`}</Typography>
</LightTooltip>
</div>
<TextField
margin="normal"
error={!!error}
fullWidth
onChange={onChange}
value={value}
variant="outlined"
size="small"
type={typeName == "string" ? "text" : "number"}
placeholder={name}
// helperText={error ? "This field is required" : ""}
className="form-textfield"
/>
</>
)}
/>
);
};
export default FormInputText;