From 0f4844abb8387dba69b573f2eee16c11257e5a57 Mon Sep 17 00:00:00 2001 From: seaznCode Date: Wed, 28 Jan 2026 20:15:17 +0100 Subject: [PATCH] feat: add member removal functionality with confirmation and error handling --- src/app/admin/pool-management/manage/page.tsx | 35 ++++++++++++++++++- src/app/admin/pool-management/page.tsx | 4 +++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/app/admin/pool-management/manage/page.tsx b/src/app/admin/pool-management/manage/page.tsx index ac479c8..ebf7159 100644 --- a/src/app/admin/pool-management/manage/page.tsx +++ b/src/app/admin/pool-management/manage/page.tsx @@ -73,6 +73,8 @@ function PoolManagePageInner() { const [hasSearched, setHasSearched] = React.useState(false) const [selectedCandidates, setSelectedCandidates] = React.useState>(new Set()) const [savingMembers, setSavingMembers] = React.useState(false) + const [removingMemberId, setRemovingMemberId] = React.useState(null) + const [removeError, setRemoveError] = React.useState('') async function fetchMembers() { if (!token || !poolId || poolId === 'pool-unknown') return @@ -211,6 +213,23 @@ function PoolManagePageInner() { } } + async function removeMember(userId: string) { + if (!token || !poolId || poolId === 'pool-unknown') return + const user = users.find(u => u.id === userId) + const label = user?.name || user?.email || 'this user' + if (!window.confirm(`Remove ${label} from this pool?`)) return + setRemoveError('') + setRemovingMemberId(userId) + try { + await AdminAPI.removePoolMembers(token, poolId, [userId]) + await fetchMembers() + } catch (e: any) { + setRemoveError(e?.message || 'Failed to remove user from pool.') + } finally { + setRemovingMemberId(null) + } + } + return (
@@ -302,6 +321,11 @@ function PoolManagePageInner() { Add User
+ {removeError && ( +
+ {removeError} +
+ )}
{users.map(u => (
@@ -325,6 +349,15 @@ function PoolManagePageInner() { {new Date(u.joinedAt).toLocaleDateString('de-DE', { year: 'numeric', month: 'short', day: '2-digit' })}
+
+ +
))} {membersLoading && ( @@ -392,7 +425,7 @@ function PoolManagePageInner() {