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() {