Implemented admin assign unit UI
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m55s

This commit is contained in:
2026-03-02 20:16:28 -05:00
parent 54dcb9d389
commit a988545dda
7 changed files with 278 additions and 5 deletions

View File

@@ -34,6 +34,7 @@
import MemberCard from "@/components/members/MemberCard.vue";
import { useMemberDirectory } from "@/stores/memberDirectory";
import { Discharge } from "@shared/schemas/dischargeSchema";
import TransferMember from "@/components/members/TransferMember.vue";
// --- State ---
const router = useRouter();
@@ -141,13 +142,19 @@
//discharge form logic
const isDischargeOpen = ref(false)
const targetMember = ref(null)
const isTransferOpen = ref(false)
const targetMember = ref<Member | null>(null)
function openDischargeModal(member: Member) {
targetMember.value = member
isDischargeOpen.value = true
}
function openTransferModal(member: Member) {
targetMember.value = member
isTransferOpen.value = true
}
async function onSuspend(member: Member) {
await suspendMember(member.member_id);
await fetchMembers();
@@ -166,12 +173,19 @@
fetchMembers();
memberCache.invalidateMember(value.data.userID);
}
function handleTransferSuccess(value: { memberId: number; unitId: number; reason: string }) {
fetchMembers();
memberCache.invalidateMember(value.memberId);
}
</script>
<template>
<div>
<DischargeMember v-model:open="isDischargeOpen" :member="targetMember" @discharged="handleDischargeSuccess">
</DischargeMember>
<TransferMember v-model:open="isTransferOpen" :member="targetMember" @transferred="handleTransferSuccess">
</TransferMember>
<div class="mx-auto max-w-7xl w-full py-10 px-4">
<div class="flex flex-col gap-2">
<div class="flex flex-col md:flex-row md:items-center justify-between gap-4">
@@ -270,6 +284,10 @@
<!-- <DropdownMenuItem @click="navigateToMember(member.member_id)">
View Profile
</DropdownMenuItem> -->
<DropdownMenuItem v-if="member.member_state !== MemberState.Discharged"
@click="openTransferModal(member)">
Transfer Member
</DropdownMenuItem>
<DropdownMenuItem v-if="member.member_state !== MemberState.Discharged"
@click="openDischargeModal(member)"
class="text-destructive focus:bg-destructive focus:text-destructive-foreground font-medium">