SiteFrontend/src/components/form/formInterfaces.tsx

29 lines
679 B
TypeScript
Raw Normal View History

import * as Yup from "yup";
type InputNames = "username" | "email" | "question" | "discord" | "age" | "pronoun" | "join-date" | "avg-time" |
"available-days" | "available-time" | "experience" | "why-staff" | "expectations-mod" | "other";
export interface Step {
label: string;
name: InputNames;
type: "text" | "email" | "textarea";
min_length: number;
max_length: number;
required: boolean;
}
export interface UserInput {
[key: string]: string;
}
export type FormData = {
steps: Step[];
backend: string;
userInput: UserInput;
spec: Yup.Schema<any>
}
export interface FormProperties {
path: string
formData: FormData;
}