From 3b8ce365b60afa12b49019510e58601cb3f9ac41 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Wed, 22 May 2024 14:24:43 +0800 Subject: [PATCH] update --- .../(main)/settings/changepassword/page.tsx | 61 ++++++++----------- src/app/(main)/settings/staff/user/page.tsx | 10 +-- src/app/(main)/settings/user/edit/page.tsx | 4 +- .../ChangePassword/ChangePasswordForm.tsx | 9 +-- .../ChangePassword/ChangePasswordWrapper.tsx | 4 -- src/components/EditUser/EditUser.tsx | 43 +++++-------- src/components/EditUser/EditUserWrapper.tsx | 15 +++-- 7 files changed, 58 insertions(+), 88 deletions(-) diff --git a/src/app/(main)/settings/changepassword/page.tsx b/src/app/(main)/settings/changepassword/page.tsx index b6b9a41..e470ca7 100644 --- a/src/app/(main)/settings/changepassword/page.tsx +++ b/src/app/(main)/settings/changepassword/page.tsx @@ -14,40 +14,33 @@ import { Metadata } from "next"; import Link from "next/link"; import { Suspense } from "react"; - export const metadata: Metadata = { - title: "Change Password", - }; + title: "Change Password", +}; +const ChangePasswordPage: React.FC = async () => { + const { t } = await getServerI18n("User Group"); + // preloadTeamLeads(); + // preloadStaff(); + return ( + <> + + + {t("Change Password")} + + + + }> + + + + + ); +}; - const ChangePasswordPage: React.FC = async () => { - const { t } = await getServerI18n("User Group"); - // preloadTeamLeads(); - // preloadStaff(); - return ( - <> - - - {t("Change Password")} - - - {/* - }> - - - */} - - }> - - - - - ); - }; - - export default ChangePasswordPage; \ No newline at end of file +export default ChangePasswordPage; diff --git a/src/app/(main)/settings/staff/user/page.tsx b/src/app/(main)/settings/staff/user/page.tsx index 86373bb..b45dc04 100644 --- a/src/app/(main)/settings/staff/user/page.tsx +++ b/src/app/(main)/settings/staff/user/page.tsx @@ -7,19 +7,15 @@ import { Suspense } from "react"; import { preloadUser } from "@/app/api/user"; import { searchParamsProps } from "@/app/utils/fetchUtil"; -const User: React.FC = async ({ - searchParams -}) => { +const User: React.FC = async ({ searchParams }) => { const { t } = await getServerI18n("user"); - preloadUser() + preloadUser(); return ( <> {t("Edit User")} }> - + diff --git a/src/app/(main)/settings/user/edit/page.tsx b/src/app/(main)/settings/user/edit/page.tsx index fc36425..f820520 100644 --- a/src/app/(main)/settings/user/edit/page.tsx +++ b/src/app/(main)/settings/user/edit/page.tsx @@ -20,10 +20,10 @@ const EditUserPage: React.FC = async ({ return ( <> - + }> diff --git a/src/components/ChangePassword/ChangePasswordForm.tsx b/src/components/ChangePassword/ChangePasswordForm.tsx index 19e2a29..9801ec7 100644 --- a/src/components/ChangePassword/ChangePasswordForm.tsx +++ b/src/components/ChangePassword/ChangePasswordForm.tsx @@ -33,19 +33,12 @@ const ChagnePasswordForm: React.FC = () => { setValue, } = useFormContext(); - // const resetGroup = useCallback(() => { - // console.log(defaultValues); - // if (defaultValues !== undefined) { - // resetField("description"); - // } - // }, [defaultValues]); - return ( - {t("Group Info")} + {t("Please Fill in all the Fields")} diff --git a/src/components/ChangePassword/ChangePasswordWrapper.tsx b/src/components/ChangePassword/ChangePasswordWrapper.tsx index 30acb9d..2de12db 100644 --- a/src/components/ChangePassword/ChangePasswordWrapper.tsx +++ b/src/components/ChangePassword/ChangePasswordWrapper.tsx @@ -7,10 +7,6 @@ interface SubComponents { } const ChangePasswordWrapper: React.FC & SubComponents = async () => { - // const records = await fetchAuth() - // const users = await fetchUser() - // console.log(users) - // const auth = records.records as auth[] return ; }; diff --git a/src/components/EditUser/EditUser.tsx b/src/components/EditUser/EditUser.tsx index 58067b9..bbbd174 100644 --- a/src/components/EditUser/EditUser.tsx +++ b/src/components/EditUser/EditUser.tsx @@ -33,11 +33,15 @@ import { auth, fetchAuth } from "@/app/api/group/actions"; import AuthAllocation from "./AuthAllocation"; interface Props { - rules: passwordRule + user: UserResult, + rules: passwordRule, + auths: auth[] } const EditUser: React.FC = async ({ - rules + user, + rules, + auths }) => { const { t } = useTranslation(); const formProps = useForm(); @@ -46,8 +50,6 @@ const EditUser: React.FC = async ({ const [tabIndex, setTabIndex] = useState(0); const router = useRouter(); const [serverError, setServerError] = useState(""); - const [data, setData] = useState(); - const [auths, setAuths] = useState(); const handleTabChange = useCallback>( (_e, newValue) => { @@ -57,34 +59,23 @@ const EditUser: React.FC = async ({ ); const errors = formProps.formState.errors; -console.log("asdasd") - const fetchUserDetail = async () => { + + useEffect(() => { try { - // fetch user info - const userDetail = await fetchUserDetails(id); - console.log(userDetail); - const _data = userDetail.data as UserResult; - console.log(_data); - setData(_data); - //fetch user auths - const authDetail = await fetchAuth("user", id); - setAuths(authDetail.records) - const addAuthIds = authDetail.records.filter((item) => item.v === 1).map((item) => item.id).sort((a, b) => a - b); + const addAuthIds = auths && auths.length > 0 + ? auths.filter((item) => item.v === 1).map((item) => item.id).sort((a, b) => a - b) + : [] formProps.reset({ - name: _data.username, - email: _data.email, - addAuthIds: addAuthIds || [] + name: user.username, + email: user.email, + addAuthIds: addAuthIds }); } catch (error) { console.log(error); setServerError(t("An error has occurred. Please try again later.")); } - } - - useEffect(() => { - fetchUserDetail(); - }, []); + }, [user, auths]); const hasErrorsInTab = ( tabIndex: number, @@ -92,10 +83,8 @@ console.log("asdasd") ) => { switch (tabIndex) { case 0: - console.log("yolo") return Object.keys(errors).length > 0; default: - console.log("yolo") false; } }; @@ -123,7 +112,7 @@ console.log("asdasd") if (!regex_pw.test(pw)) { haveError = true formProps.setError("password", { message: "A combination of uppercase letters, lowercase letters, numbers, and symbols is required.", type: "required" }) - } + } } const userData = { name: data.name, diff --git a/src/components/EditUser/EditUserWrapper.tsx b/src/components/EditUser/EditUserWrapper.tsx index 9273d4a..f7d77eb 100644 --- a/src/components/EditUser/EditUserWrapper.tsx +++ b/src/components/EditUser/EditUserWrapper.tsx @@ -6,20 +6,23 @@ import { useSearchParams } from "next/navigation"; import { fetchTeam, fetchTeamDetail } from "@/app/api/team"; import { fetchStaff } from "@/app/api/staff"; import { fetchPwRules, fetchUser, fetchUserDetail } from "@/app/api/user"; +import { searchParamsProps } from "@/app/utils/fetchUtil"; +import { fetchUserDetails } from "@/app/api/user/actions"; +import { fetchAuth } from "@/app/api/group/actions"; interface SubComponents { Loading: typeof EditUserLoading; } -interface Props { - // id: number -} -const EditUserWrapper: React.FC & SubComponents = async ({ - // id +const EditUserWrapper: React.FC & SubComponents = async ({ + searchParams }) => { + const id = parseInt(searchParams.id as string) const pwRule = await fetchPwRules() + const user = await fetchUserDetails(id); + const auths = await fetchAuth("user", id); - return + return }; EditUserWrapper.Loading = EditUserLoading;