From 6b19adf03e89d514e378f6e8a7d1a7153d785636 Mon Sep 17 00:00:00 2001 From: asif Date: Fri, 27 Dec 2024 16:32:57 +0530 Subject: [PATCH] Refactored LockerMaintenance.jsx to use Form Components --- src/pages/LockerMaintenance.jsx | 80 ++++++++++++++++----------------- 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/src/pages/LockerMaintenance.jsx b/src/pages/LockerMaintenance.jsx index 8cf0eb1..7fff175 100644 --- a/src/pages/LockerMaintenance.jsx +++ b/src/pages/LockerMaintenance.jsx @@ -3,8 +3,10 @@ import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; import FormBox from "../components/FormBox"; import Button from "../components/Button"; -import { motion, AnimatePresence } from "motion/react"; -import clsx from "clsx"; +import FormField from "../components/FormField"; +import FormInput from "../components/FormInput"; +import FormSelect from "../components/FormSelect"; +import FieldsWrapper from "../components/FieldsWrapper"; function LockerMaintenance() { const navigate = useNavigate(); @@ -19,48 +21,44 @@ function LockerMaintenance() { navigate(operation.value); }; + const formFields = [ + { + name: "value", + label: t("operation"), + options: [ + { label: t("status"), value: "status" }, + { label: t("keySwap"), value: "key-swap" }, + ], + type: "select", + }, + ]; + + const renderField = (field) => { + const commonProps = { + value: operation[field.name], + onChange: (e) => { + const newValues = { ...operation }; + newValues[field.name] = e.target.value; + newValues[`${field.name}Valid`] = true; + setOperation(newValues); + }, + }; + const options = field.options; + return ( + + {field.type === "input" ? ( + + ) : ( + + )} + + ); + }; + return (
-
-
- -
- - - {!operation.valid && ( - - Invalid Operation - - )} - -
-
-
+ {formFields.map(renderField)}