Added several files to the AutoForm component for better form functionality including a file for each type of input field (checkbox, date, enum, file, number, radio-group, switch, etc). Managed the configurations in a separate file and handled dependencies to control form behaviours. This commit enhances form handling capabilities and simplifies the process for creating versatile forms.
35 lines
836 B
TypeScript
35 lines
836 B
TypeScript
import { FormControl, FormItem } from "@/components/ui/form";
|
|
import { Switch } from "@/components/ui/switch";
|
|
import AutoFormLabel from "../common/label";
|
|
import AutoFormTooltip from "../common/tooltip";
|
|
import type { AutoFormInputComponentProps } from "../types";
|
|
|
|
export default function AutoFormSwitch({
|
|
label,
|
|
isRequired,
|
|
field,
|
|
fieldConfigItem,
|
|
fieldProps,
|
|
}: AutoFormInputComponentProps) {
|
|
return (
|
|
<div>
|
|
<FormItem>
|
|
<div className="flex items-center gap-3">
|
|
<FormControl>
|
|
<Switch
|
|
checked={field.value}
|
|
onCheckedChange={field.onChange}
|
|
{...fieldProps}
|
|
/>
|
|
</FormControl>
|
|
<AutoFormLabel
|
|
label={fieldConfigItem?.label || label}
|
|
isRequired={isRequired}
|
|
/>
|
|
</div>
|
|
</FormItem>
|
|
<AutoFormTooltip fieldConfigItem={fieldConfigItem} />
|
|
</div>
|
|
);
|
|
}
|