From 2d80ed05db67c415bbfdeabd3ad65590c6ea2b03 Mon Sep 17 00:00:00 2001 From: Hafid Nur <73023445+hafidnrzs@users.noreply.github.com> Date: Tue, 2 Dec 2025 18:11:34 +0700 Subject: [PATCH] feat(backoffice): little adjustment in hackathon users management UI and API contract --- .../_components/modal-user-detail.tsx | 24 +++--- .../app/(protected)/hackathon-users/page.tsx | 86 ++++++++++--------- docs/api/hackathon_backoffice_api_contract.md | 17 ++-- libs/ui/src/organisms/datatable/datatable.tsx | 4 +- 4 files changed, 65 insertions(+), 66 deletions(-) diff --git a/apps/backoffice/src/app/(protected)/hackathon-users/_components/modal-user-detail.tsx b/apps/backoffice/src/app/(protected)/hackathon-users/_components/modal-user-detail.tsx index a678d51..8182c5f 100644 --- a/apps/backoffice/src/app/(protected)/hackathon-users/_components/modal-user-detail.tsx +++ b/apps/backoffice/src/app/(protected)/hackathon-users/_components/modal-user-detail.tsx @@ -195,7 +195,7 @@ const ModalUserDetail: FC = ({ isOpen, onClose, user }) => {
{/* Interactive User Avatar */} -
+
{formData.avatar ? ( = ({ isOpen, onClose, user }) => { {/* Avatar Hover Overlay */} @@ -221,7 +221,7 @@ const ModalUserDetail: FC = ({ isOpen, onClose, user }) => {
@@ -397,7 +397,7 @@ const ModalUserDetail: FC = ({ isOpen, onClose, user }) => { )) @@ -558,7 +558,7 @@ const ModalUserDetail: FC = ({ isOpen, onClose, user }) => { {user && ( diff --git a/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx b/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx index ca86f91..500f9eb 100644 --- a/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx +++ b/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx @@ -178,13 +178,13 @@ export const HackathonUsersPage: FC = (): ReactElement => { {row.original.skills.slice(0, 2).map((skill, index) => ( {skill.replace(' Developer', '').replace(' Engineer', '')} ))} {row.original.skills.length > 2 && ( - + +{row.original.skills.length - 2} )} @@ -287,14 +287,14 @@ export const HackathonUsersPage: FC = (): ReactElement => { {/* Filters and actions */}
- {/* Left side - Filters */} + {/* Left side - Search & filters */}
- {/* Global Search with Icon */} + {/* Search bar */}
setGlobalFilter(e.target.value)} @@ -302,35 +302,41 @@ export const HackathonUsersPage: FC = (): ReactElement => {
{/* Status Filter */} - +
+ + +
{/* Location Filter */} - +
+ + +
{/* Skills Filter with Icon */}