2024-03-28 14:05:58 +08:00
|
|
|
import React from 'react';
|
2024-04-09 14:47:58 +08:00
|
|
|
import { Flex, Input, Typography } from 'antd';
|
2024-04-08 14:04:08 +08:00
|
|
|
import type { GetProp } from 'antd';
|
2024-04-09 14:47:58 +08:00
|
|
|
import type { OTPProps } from 'antd/es/input/OTP';
|
2024-03-28 14:05:58 +08:00
|
|
|
|
|
|
|
const { Title } = Typography;
|
|
|
|
|
|
|
|
const App: React.FC = () => {
|
|
|
|
const onChange: GetProp<typeof Input.OTP, 'onChange'> = (text) => {
|
|
|
|
console.log('onChange:', text);
|
|
|
|
};
|
|
|
|
|
2024-04-09 14:47:58 +08:00
|
|
|
const sharedProps: OTPProps = {
|
2024-03-28 14:05:58 +08:00
|
|
|
onChange,
|
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
2024-04-09 14:47:58 +08:00
|
|
|
<Flex gap="middle" align="flex-start" vertical>
|
2024-03-28 14:05:58 +08:00
|
|
|
<Title level={5}>With formatter (Upcase)</Title>
|
|
|
|
<Input.OTP formatter={(str) => str.toUpperCase()} {...sharedProps} />
|
|
|
|
<Title level={5}>With Disabled</Title>
|
|
|
|
<Input.OTP disabled {...sharedProps} />
|
|
|
|
<Title level={5}>With Length (8)</Title>
|
|
|
|
<Input.OTP length={8} {...sharedProps} />
|
|
|
|
<Title level={5}>With variant</Title>
|
|
|
|
<Input.OTP variant="filled" {...sharedProps} />
|
2024-04-09 14:47:58 +08:00
|
|
|
<Title level={5}>With custom display character</Title>
|
|
|
|
<Input.OTP mask="🔒" {...sharedProps} />
|
|
|
|
</Flex>
|
2024-03-28 14:05:58 +08:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default App;
|