diff --git a/app/[locale]/(public)/profile/page.tsx b/app/[locale]/(public)/profile/page.tsx index 627ba1d8..a6c0640a 100644 --- a/app/[locale]/(public)/profile/page.tsx +++ b/app/[locale]/(public)/profile/page.tsx @@ -10,7 +10,7 @@ import * as z from "zod"; import Swal from "sweetalert2"; import { getBlog, postBlog } from "@/service/blog/blog"; import { id } from "date-fns/locale"; -import router from "next/router"; +import { useRouter } from "next/navigation"; import { getInfoProfile, saveUser } from "@/service/auth"; import withReactContent from "sweetalert2-react-content"; import { Textarea } from "@/components/ui/textarea"; @@ -27,7 +27,6 @@ const profileSchema = z.object({ phoneNumber: z.string().optional(), }); - type Detail = { id: number; userId: any; @@ -39,6 +38,7 @@ type Detail = { address: string; phoneNumber: any; message: string; + userKeycloakId: string; }; const UbahProfile: React.FC = () => { @@ -46,46 +46,75 @@ const UbahProfile: React.FC = () => { const [detail, setDetail] = useState(); const [refresh, setRefresh] = useState(false); const t = useTranslations("LandingPage"); + const router = useRouter(); type ProfileSchema = z.infer; const { control, handleSubmit, setValue, + reset, formState: { errors }, } = useForm({ resolver: zodResolver(profileSchema), }); + // useEffect(() => { + // async function initState() { + // const response = await getInfoProfile(); + // const details = response?.data?.data; + + // setDetail(details); + // // console.log("data", details); + // } + + // initState(); + // }, []); useEffect(() => { async function initState() { const response = await getInfoProfile(); const details = response?.data?.data; setDetail(details); - // console.log("data", details); + + reset({ + username: details?.username, + fullname: details?.fullname, + memberIdentity: details?.memberIdentity, + email: details?.email, + address: details?.address, + phoneNumber: details?.phoneNumber, + }); } initState(); }, []); const save = async (data: ProfileSchema) => { + // const requestData = { + // ...data, + // // userId: detail?.userKeycloakId, + // firstName: detail?.fullname, + // username: detail?.username, + // memberIdentity: detail?.memberIdentity, + // email: detail?.email, + // address: detail?.address, + // phoneNumber: detail?.phoneNumber, + // // message: data.title, + // }; const requestData = { - ...data, - // userId: detail?.userKeycloakId, - firstName: detail?.fullname, - username: detail?.username, - memberIdentity: detail?.memberIdentity, - email: detail?.email, - address: detail?.address, - phoneNumber: detail?.phoneNumber, - // message: data.title, + id: detail?.id, + userKeycloakId: detail?.userKeycloakId, // 🔥 tambahin ini + username: data.username, + fullname: data.fullname, + email: data.email, + memberIdentity: data.memberIdentity, + address: data.address, + phoneNumber: data.phoneNumber, }; - + console.log("FORM DATA:", data); + console.log("REQUEST DATA:", requestData); const response = await saveUser(requestData); - // console.log("Form Data Submitted:", requestData); - // console.log("response", response); - MySwal.fire({ title: "Sukses", text: "Data berhasil disimpan.", @@ -93,7 +122,7 @@ const UbahProfile: React.FC = () => { confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then(() => { - router.push("/en/auth"); + router.refresh(); }); }; @@ -118,22 +147,32 @@ const UbahProfile: React.FC = () => {
👤
-

{t("changeProfile", { defaultValue: "Change Profile" })}

+

+ {t("changeProfile", { defaultValue: "Change Profile" })} +

- + - + - +
-

{t("pleaseChange", { defaultValue: "Please Change" })}

+

+ {t("pleaseChange", { defaultValue: "Please Change" })} +

{detail !== undefined ? (
@@ -141,51 +180,176 @@ const UbahProfile: React.FC = () => { - } /> - {errors.username?.message &&

{errors.username.message}

} + {/* ( + + )} + /> */} + } + /> + {errors.username?.message && ( +

+ {errors.username.message} +

+ )}
-
+ {/*
- } /> - {errors.fullname?.message &&

{errors.fullname.message}

} -
+ */} + {/* ( + + )} + /> */} + {/* } + /> + {errors.fullname?.message && ( +

+ {errors.fullname.message} +

+ )} +
*/}
- } /> - {errors.memberIdentity?.message &&

{errors.memberIdentity.message}

} + {/* ( + + )} + /> */} + } + /> + {errors.memberIdentity?.message && ( +

+ {errors.memberIdentity.message} +

+ )}
- } /> - {errors.email?.message &&

{errors.email.message}

} + {/* ( + + )} + /> */} + } + /> + {errors.email?.message && ( +

{errors.email.message}

+ )}
- } /> - {errors.phoneNumber?.message &&

{errors.phoneNumber.message}

} + {/* ( + + )} + /> */} + } + /> + {errors.phoneNumber?.message && ( +

+ {errors.phoneNumber.message} +

+ )}
-