Commit cf42a4da authored by isstuev's avatar isstuev

publictag bugfix and rule for required fields

parent 16a6063a
...@@ -92,7 +92,7 @@ const ApiKeyForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -92,7 +92,7 @@ const ApiKeyForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
const renderTokenInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'token'>}) => { const renderTokenInput = useCallback(({ field }: {field: ControllerRenderProps<Inputs, 'token'>}) => {
return ( return (
<FormControl variant="floating" id="address" isRequired> <FormControl variant="floating" id="address">
<Input <Input
{ ...field } { ...field }
disabled={ true } disabled={ true }
...@@ -134,6 +134,7 @@ const ApiKeyForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -134,6 +134,7 @@ const ApiKeyForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
control={ control } control={ control }
rules={{ rules={{
maxLength: NAME_MAX_LENGTH, maxLength: NAME_MAX_LENGTH,
required: true,
}} }}
render={ renderNameInput } render={ renderNameInput }
/> />
......
...@@ -142,7 +142,10 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -142,7 +142,10 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
name="contract_address_hash" name="contract_address_hash"
control={ control } control={ control }
render={ renderContractAddressInput } render={ renderContractAddressInput }
rules={{ pattern: ADDRESS_REGEXP }} rules={{
pattern: ADDRESS_REGEXP,
required: true,
}}
/> />
</Box> </Box>
<Box marginTop={ 5 }> <Box marginTop={ 5 }>
...@@ -150,6 +153,7 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -150,6 +153,7 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
name="name" name="name"
control={ control } control={ control }
render={ renderNameInput } render={ renderNameInput }
rules={{ required: true }}
/> />
</Box> </Box>
<Box marginTop={ 5 }> <Box marginTop={ 5 }>
...@@ -157,6 +161,7 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -157,6 +161,7 @@ const CustomAbiForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
name="abi" name="abi"
control={ control } control={ control }
render={ renderAbiInput } render={ renderAbiInput }
rules={{ required: true }}
/> />
</Box> </Box>
<Box marginTop={ 8 }> <Box marginTop={ 8 }>
......
...@@ -98,6 +98,7 @@ const AddressForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -98,6 +98,7 @@ const AddressForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
control={ control } control={ control }
rules={{ rules={{
pattern: ADDRESS_REGEXP, pattern: ADDRESS_REGEXP,
required: true,
}} }}
render={ renderAddressInput } render={ renderAddressInput }
/> />
...@@ -108,6 +109,7 @@ const AddressForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => { ...@@ -108,6 +109,7 @@ const AddressForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => {
control={ control } control={ control }
rules={{ rules={{
maxLength: TAG_MAX_LENGTH, maxLength: TAG_MAX_LENGTH,
required: true,
}} }}
render={ renderTagInput } render={ renderTagInput }
/> />
......
...@@ -97,6 +97,7 @@ const TransactionForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => ...@@ -97,6 +97,7 @@ const TransactionForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) =>
control={ control } control={ control }
rules={{ rules={{
pattern: TRANSACTION_HASH_REGEXP, pattern: TRANSACTION_HASH_REGEXP,
required: true,
}} }}
render={ renderTransactionInput } render={ renderTransactionInput }
/> />
...@@ -107,6 +108,7 @@ const TransactionForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) => ...@@ -107,6 +108,7 @@ const TransactionForm: React.FC<Props> = ({ data, onClose, setAlertVisible }) =>
control={ control } control={ control }
rules={{ rules={{
maxLength: TAG_MAX_LENGTH, maxLength: TAG_MAX_LENGTH,
required: true,
}} }}
render={ renderTagInput } render={ renderTagInput }
/> />
......
...@@ -39,7 +39,10 @@ export default function PublicTagFormAction({ control, index, fieldsLength, erro ...@@ -39,7 +39,10 @@ export default function PublicTagFormAction({ control, index, fieldsLength, erro
name={ `addresses.${ index }.address` } name={ `addresses.${ index }.address` }
control={ control } control={ control }
render={ renderAddressInput } render={ renderAddressInput }
rules={{ pattern: ADDRESS_REGEXP }} rules={{
pattern: ADDRESS_REGEXP,
required: index === 0,
}}
/> />
{ index === fieldsLength - 1 && fieldsLength < MAX_INPUTS_NUM && ( { index === fieldsLength - 1 && fieldsLength < MAX_INPUTS_NUM && (
<IconButton <IconButton
......
...@@ -35,7 +35,10 @@ export default function PublicTagFormComment({ control, error }: Props) { ...@@ -35,7 +35,10 @@ export default function PublicTagFormComment({ control, error }: Props) {
name="comment" name="comment"
control={ control } control={ control }
render={ renderComment } render={ renderComment }
rules={{ maxLength: TEXT_INPUT_MAX_LENGTH }} rules={{
maxLength: TEXT_INPUT_MAX_LENGTH,
required: true,
}}
/> />
); );
} }
...@@ -130,7 +130,7 @@ const PublicTagsForm = ({ changeToDataScreen, data }: Props) => { ...@@ -130,7 +130,7 @@ const PublicTagsForm = ({ changeToDataScreen, data }: Props) => {
e.error?.full_name && setError('fullName', { type: 'custom', message: getErrorMessage(e.error, 'full_name') }); e.error?.full_name && setError('fullName', { type: 'custom', message: getErrorMessage(e.error, 'full_name') });
e.error?.email && setError('email', { type: 'custom', message: getErrorMessage(e.error, 'email') }); e.error?.email && setError('email', { type: 'custom', message: getErrorMessage(e.error, 'email') });
e.error?.tags && setError('tags', { type: 'custom', message: getErrorMessage(e.error, 'tags') }); e.error?.tags && setError('tags', { type: 'custom', message: getErrorMessage(e.error, 'tags') });
e.error?.addresses && setError('addresses.0', { type: 'custom', message: getErrorMessage(e.error, 'addresses') }); e.error?.addresses && setError('addresses.0.address', { type: 'custom', message: getErrorMessage(e.error, 'addresses') });
e.error?.additional_comment && setError('comment', { type: 'custom', message: getErrorMessage(e.error, 'additional_comment') }); e.error?.additional_comment && setError('comment', { type: 'custom', message: getErrorMessage(e.error, 'additional_comment') });
} else { } else {
setAlertVisible(true); setAlertVisible(true);
...@@ -206,7 +206,7 @@ const PublicTagsForm = ({ changeToDataScreen, data }: Props) => { ...@@ -206,7 +206,7 @@ const PublicTagsForm = ({ changeToDataScreen, data }: Props) => {
<Box position="relative" key={ field.id } marginBottom={ 4 }> <Box position="relative" key={ field.id } marginBottom={ 4 }>
<PublicTagFormAddressInput <PublicTagFormAddressInput
control={ control } control={ control }
error={ errors?.addresses?.[index] as FieldError } error={ errors?.addresses?.[index]?.address as FieldError }
index={ index } index={ index }
fieldsLength={ fields.length } fieldsLength={ fields.length }
onAddFieldClick={ onAddFieldClick } onAddFieldClick={ onAddFieldClick }
......
...@@ -43,7 +43,7 @@ export default function PublicTagsFormInput<Inputs extends FieldValues>({ ...@@ -43,7 +43,7 @@ export default function PublicTagsFormInput<Inputs extends FieldValues>({
name={ fieldName } name={ fieldName }
control={ control } control={ control }
render={ renderInput } render={ renderInput }
rules={{ pattern }} rules={{ pattern, required }}
/> />
); );
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment