Files
explore/ui/tokenInfo/fields/TokenInfoFieldSupport.tsx
tom goriunovandGitHub f6725649da UI toolkit package (#2691)
* first version of the pack

* single entry point

* add custom components to the package

* move form components to toolkit

* add more utils and hooks to the package

* minor fixes

* add CI workflow

* update readme and package.json

* fix ts

* fix build of env-validator

* fix docker build

* fix icons size

* test fixes

* more test fixes
2025-04-21 19:44:22 +02:00

42 lines
1.1 KiB
TypeScript

import React from 'react';
import type { Fields } from '../types';
import type { FieldProps } from 'toolkit/chakra/field';
import { FormFieldText } from 'toolkit/components/forms/fields/FormFieldText';
import { emailValidator } from 'toolkit/components/forms/validators/email';
import { urlValidator } from 'toolkit/components/forms/validators/url';
interface Props {
readOnly?: boolean;
size?: FieldProps['size'];
}
const TokenInfoFieldSupport = (props: Props) => {
const validate = React.useCallback((newValue: string | undefined) => {
if (typeof newValue !== 'string') {
return true;
}
const urlValidationResult = urlValidator(newValue);
const emailValidationResult = emailValidator(newValue);
if (urlValidationResult === true || emailValidationResult === true) {
return true;
}
return 'Invalid format';
}, []);
return (
<FormFieldText<Fields, 'support'>
name="support"
placeholder="Support URL or email"
rules={{ validate }}
{ ...props }
/>
);
};
export default React.memo(TokenInfoFieldSupport);