Commit 6ff33e9a authored by tom's avatar tom

company name and website fields

parent cd328318
...@@ -9,6 +9,8 @@ import type { PublicTagTypesResponse } from 'types/api/addressMetadata'; ...@@ -9,6 +9,8 @@ import type { PublicTagTypesResponse } from 'types/api/addressMetadata';
import Hint from 'ui/shared/Hint'; import Hint from 'ui/shared/Hint';
import PublicTagsSubmitFieldAddresses from './fields/PublicTagsSubmitFieldAddresses'; import PublicTagsSubmitFieldAddresses from './fields/PublicTagsSubmitFieldAddresses';
import PublicTagsSubmitFieldCompanyName from './fields/PublicTagsSubmitFieldCompanyName';
import PublicTagsSubmitFieldCompanyWebsite from './fields/PublicTagsSubmitFieldCompanyWebsite';
import PublicTagsSubmitFieldDescription from './fields/PublicTagsSubmitFieldDescription'; import PublicTagsSubmitFieldDescription from './fields/PublicTagsSubmitFieldDescription';
import PublicTagsSubmitFieldRequesterEmail from './fields/PublicTagsSubmitFieldRequesterEmail'; import PublicTagsSubmitFieldRequesterEmail from './fields/PublicTagsSubmitFieldRequesterEmail';
import PublicTagsSubmitFieldRequesterName from './fields/PublicTagsSubmitFieldRequesterName'; import PublicTagsSubmitFieldRequesterName from './fields/PublicTagsSubmitFieldRequesterName';
...@@ -23,7 +25,7 @@ const PublicTagsSubmitForm = ({ config }: Props) => { ...@@ -23,7 +25,7 @@ const PublicTagsSubmitForm = ({ config }: Props) => {
mode: 'onBlur', mode: 'onBlur',
defaultValues: { defaultValues: {
addresses: [ { hash: '' } ], addresses: [ { hash: '' } ],
tags: [ { name: '', type: { label: 'name', value: 'name' }, url: undefined, bgColor: undefined, textColor: undefined } ], tags: [ { name: '', type: { label: 'name', value: 'name' } } ],
}, },
}); });
...@@ -47,10 +49,10 @@ const PublicTagsSubmitForm = ({ config }: Props) => { ...@@ -47,10 +49,10 @@ const PublicTagsSubmitForm = ({ config }: Props) => {
Company info Company info
</GridItem> </GridItem>
<PublicTagsSubmitFieldRequesterName/> <PublicTagsSubmitFieldRequesterName/>
<chakra.div bgColor="blue.100" h={ 20 }/> <PublicTagsSubmitFieldCompanyName/>
<div/> <div/>
<PublicTagsSubmitFieldRequesterEmail/> <PublicTagsSubmitFieldRequesterEmail/>
<chakra.div bgColor="blue.100" h={ 20 }/> <PublicTagsSubmitFieldCompanyWebsite/>
<div/> <div/>
<GridItem colSpan={{ base: 1, lg: 3 }} as="h2" textStyle="h4" mt={ 3 }> <GridItem colSpan={{ base: 1, lg: 3 }} as="h2" textStyle="h4" mt={ 3 }>
......
import { FormControl, Input } from '@chakra-ui/react';
import React from 'react';
import { useController, useFormContext } from 'react-hook-form';
import type { FormFields } from '../types';
import InputPlaceholder from 'ui/shared/InputPlaceholder';
const PublicTagsSubmitFieldCompanyName = () => {
const { control } = useFormContext<FormFields>();
const { field, fieldState, formState } = useController<FormFields, 'companyName'>({ control, name: 'companyName' });
const isDisabled = formState.isSubmitting;
return (
<FormControl variant="floating" isDisabled={ isDisabled } size={{ base: 'md', lg: 'lg' }}>
<Input
{ ...field }
isInvalid={ Boolean(fieldState.error) }
isDisabled={ isDisabled }
autoComplete="off"
/>
<InputPlaceholder text="Company name" error={ fieldState.error }/>
</FormControl>
);
};
export default React.memo(PublicTagsSubmitFieldCompanyName);
import { FormControl, Input } from '@chakra-ui/react';
import React from 'react';
import { useController, useFormContext } from 'react-hook-form';
import type { FormFields } from '../types';
import { validator as urlValidator } from 'lib/validations/url';
import InputPlaceholder from 'ui/shared/InputPlaceholder';
const PublicTagsSubmitFieldCompanyWebsite = () => {
const { control } = useFormContext<FormFields>();
const { field, fieldState, formState } = useController<FormFields, 'companyWebsite'>({ control, name: 'companyWebsite', rules: { validate: urlValidator } });
const isDisabled = formState.isSubmitting;
return (
<FormControl variant="floating" isDisabled={ isDisabled } size={{ base: 'md', lg: 'lg' }}>
<Input
{ ...field }
isInvalid={ Boolean(fieldState.error) }
isDisabled={ isDisabled }
autoComplete="off"
/>
<InputPlaceholder text="Company website" error={ fieldState.error }/>
</FormControl>
);
};
export default React.memo(PublicTagsSubmitFieldCompanyWebsite);
...@@ -3,9 +3,11 @@ import type { AddressMetadataTagType } from 'types/api/addressMetadata'; ...@@ -3,9 +3,11 @@ import type { AddressMetadataTagType } from 'types/api/addressMetadata';
export interface FormFields { export interface FormFields {
requesterName: string; requesterName: string;
requesterEmail: string; requesterEmail: string;
companyName: string | undefined;
companyWebsite: string | undefined;
addresses: Array<{ hash: string }>; addresses: Array<{ hash: string }>;
tags: Array<FormFieldTag>; tags: Array<FormFieldTag>;
description: string; description: string | undefined;
} }
export interface FormFieldTag { export interface FormFieldTag {
......
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