import { h, VNode } from "preact";
import { AuthMethodSetupProps } from "../AuthenticationEditorScreen";
import { AuthMethodEmailSetup as EmailScreen } from "./AuthMethodEmailSetup";
import { AuthMethodIbanSetup as IbanScreen } from "./AuthMethodIbanSetup";
import { AuthMethodPostSetup as PostalScreen } from "./AuthMethodPostSetup";
import { AuthMethodQuestionSetup as QuestionScreen } from "./AuthMethodQuestionSetup";
import { AuthMethodSmsSetup as SmsScreen } from "./AuthMethodSmsSetup";
import { AuthMethodTotpSetup as TotpScreen } from "./AuthMethodTotpSetup";
import { AuthMethodVideoSetup as VideScreen } from "./AuthMethodVideoSetup";
import postalIcon from '../../../assets/icons/auth_method/postal.svg';
import questionIcon from '../../../assets/icons/auth_method/question.svg';
import smsIcon from '../../../assets/icons/auth_method/sms.svg';
import videoIcon from '../../../assets/icons/auth_method/video.svg';
interface AuthMethodConfiguration {
icon: VNode;
label: string;
screen: (props: AuthMethodSetupProps) => VNode;
}
export type KnownAuthMethods = "sms" | "email" | "post" | "question" | "video" | "totp" | "iban";
type KnowMethodConfig = {
[name in KnownAuthMethods]: AuthMethodConfiguration;
};
export const authMethods: KnowMethodConfig = {
question: {
icon: ,
label: "Question",
screen: QuestionScreen
},
sms: {
icon: ,
label: "SMS",
screen: SmsScreen
},
email: {
icon: ,
label: "Email",
screen: EmailScreen
},
iban: {
icon: ,
label: "IBAN",
screen: IbanScreen
},
post: {
icon: ,
label: "Physical mail",
screen: PostalScreen
},
totp: {
icon: ,
label: "TOTP",
screen: TotpScreen
},
video: {
icon: ,
label: "Video",
screen: VideScreen
}
}