mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import React from 'react';
|
|
|
|
import type { Fields } from '../types';
|
|
|
|
import type { FieldProps } from '@luxfi/ui/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);
|