From baf400ab66eb9b4f688da6b3402067c3a1380efe Mon Sep 17 00:00:00 2001 From: Raymond Htet Date: Thu, 19 Sep 2024 00:06:58 +0800 Subject: [PATCH] finished class edit and added detail dummy page --- app/(main)/classes/details/page.tsx | 11 ++++ app/(main)/classes/page.tsx | 40 +++++++----- app/(main)/profile/edit/page.tsx | 91 +++++++++++++++++----------- app/(main)/questions/create/page.tsx | 8 +-- components/AppMessages.tsx | 70 +++++++++++++++------ layout/AppTopbar.tsx | 2 +- package.json | 2 +- service/UserService.tsx | 16 +---- types/user.ts | 1 - 9 files changed, 152 insertions(+), 89 deletions(-) create mode 100644 app/(main)/classes/details/page.tsx diff --git a/app/(main)/classes/details/page.tsx b/app/(main)/classes/details/page.tsx new file mode 100644 index 0000000..a246b84 --- /dev/null +++ b/app/(main)/classes/details/page.tsx @@ -0,0 +1,11 @@ +'use client'; + +import { useSearchParams } from 'next/navigation'; + +const ClassDetails = () => { + const classId = useSearchParams().get('id'); + + return
{classId}
; +}; + +export default ClassDetails; diff --git a/app/(main)/classes/page.tsx b/app/(main)/classes/page.tsx index a829504..dff39a1 100644 --- a/app/(main)/classes/page.tsx +++ b/app/(main)/classes/page.tsx @@ -7,9 +7,9 @@ import { Dialog } from 'primereact/dialog'; import { InputText } from 'primereact/inputtext'; import React, { Fragment, useEffect, useRef, useState } from 'react'; import { UserService } from '@/service/UserService'; -import AppMessages, {AppMessage} from '../../../components/AppMessages' +import AppMessages, { AppMessage } from '../../../components/AppMessages'; import Link from 'next/link'; - +import { useRouter } from 'next/navigation'; interface ClassMap { descriptionName: string; @@ -23,6 +23,7 @@ const Classes = () => { const [addClass, setAddClass] = useState(false); const [classId, setClassId] = useState(0); const [classes, setClasses] = useState([]); + const router = useRouter(); const appMsg = useRef(null); @@ -30,7 +31,6 @@ const Classes = () => { fetchClasses(); }, []); - const useGenerateClassMap = (descriptionName: string, apiName: string, defaultValue = ''): ClassMap => { const [value, setValue] = useState(defaultValue); return { descriptionName, apiName, defaultValue, value, setValue }; @@ -54,11 +54,8 @@ const Classes = () => { const selectedClass = classMapList.reduce((classFields, { apiName, value }) => ({ ...classFields, [apiName]: value }), {}) as Class; console.log(selectedClass); - if (addClass) await UserService.addClass(selectedClass); - - if (classId > 0) { - await UserService.updateClass(selectedClass); - } + if (classId > 0) await UserService.updateClass(selectedClass, classId); + else await UserService.addClass(selectedClass); clearNewClass(); await fetchClasses(); @@ -69,8 +66,14 @@ const Classes = () => { if (data !== null) { setAddClass(true); return; - }else{ - appMsg.current?.showCustomWarning(
Please update your profile before adding a class. Click here to update profile.
); + } else { + appMsg.current?.showCustomWarning( +
+ Please update your profile before adding a class. Click here to update profile. +
, + true, + 10 + ); } }); //setAddClass(true) @@ -100,13 +103,22 @@ const Classes = () => { classMapList.forEach((classMap, index) => classMapList[index].setValue((selectedClass as any)[classMap.apiName])); }; - const EditButtonTemplate = (selectedClass: ClassResponse) => { - return