feat: verificationTokenComponent (#9476)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>pull/9868/head^2
parent
9b25f81b61
commit
4bea5a09c6
|
@ -0,0 +1,36 @@
|
||||||
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
import { Label, Input } from "@calcom/ui";
|
||||||
|
|
||||||
|
type Digit = {
|
||||||
|
value: number;
|
||||||
|
onChange: () => void;
|
||||||
|
};
|
||||||
|
type PropType = {
|
||||||
|
digits: Digit[];
|
||||||
|
digitClassName: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const TokenHandler = ({ digits, digitClassName }: PropType) => {
|
||||||
|
const { t } = useLocale();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Label htmlFor="code">{t("code")}</Label>
|
||||||
|
<div className="flex flex-row justify-between">
|
||||||
|
{digits.map((element, index) => (
|
||||||
|
<Input
|
||||||
|
key={index}
|
||||||
|
className={digitClassName}
|
||||||
|
name={`2fa${index + 1}`}
|
||||||
|
inputMode="decimal"
|
||||||
|
{...element}
|
||||||
|
autoFocus={index === 0}
|
||||||
|
autoComplete="one-time-code"
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default TokenHandler;
|
|
@ -0,0 +1,37 @@
|
||||||
|
import { Canvas, Meta, Story, ArgsTable } from '@storybook/addon-docs';
|
||||||
|
import { Examples, Example, Note, Title,CustomArgsTable } from '@calcom/storybook/components'
|
||||||
|
import TokenHandler from './TokenHandler'
|
||||||
|
|
||||||
|
<Meta title="UI/TokenHandler" component={TokenHandler} />
|
||||||
|
<Title title="TokenHandler" subtitle="Version 0.1"/>
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
<TokenHandler digits={[
|
||||||
|
{
|
||||||
|
value: "1",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "2",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "3",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "4",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "5",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "6",
|
||||||
|
onChange: (e) => {},
|
||||||
|
},
|
||||||
|
]} digitClassName="digit-input" />
|
||||||
|
|
||||||
|
#all the numbers should be visible while the first one is focused
|
Loading…
Reference in New Issue