Fixed #194 issues
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m43s

This commit is contained in:
2026-03-01 21:11:32 -05:00
parent a239b7e204
commit c34f8beea9
4 changed files with 33 additions and 6 deletions

View File

@@ -26,7 +26,10 @@ const props = defineProps<{
member: Member | null
}>()
const emit = defineEmits(['update:open', 'discharged'])
const emit = defineEmits<{
'update:open': [value: boolean]
'discharged': [value: { data: Discharge }]
}>()
const formSchema = toTypedSchema(dischargeSchema);

View File

@@ -32,6 +32,8 @@
import Spinner from "@/components/ui/spinner/Spinner.vue";
import DischargeMember from "@/components/members/DischargeMember.vue";
import MemberCard from "@/components/members/MemberCard.vue";
import { useMemberDirectory } from "@/stores/memberDirectory";
import { Discharge } from "@shared/schemas/dischargeSchema";
// --- State ---
const router = useRouter();
@@ -149,15 +151,20 @@
async function onSuspend(member: Member) {
await suspendMember(member.member_id);
await fetchMembers();
memberCache.invalidateMember(member.member_id);
}
async function onUnsuspend(member: Member) {
await unsuspendMember(member.member_id);
await fetchMembers();
memberCache.invalidateMember(member.member_id);
}
function handleDischargeSuccess(data) {
const memberCache = useMemberDirectory();
function handleDischargeSuccess(value: { data: Discharge }) {
fetchMembers();
memberCache.invalidateMember(value.data.userID);
}
</script>
@@ -245,7 +252,8 @@
<TableCell>{{ member.rank }}</TableCell>
<TableCell>{{ member.unit }}</TableCell>
<TableCell>
<Badge variant="outline" class="capitalize font-normal">{{ MemberState[member.member_state] }}</Badge>
<Badge variant="outline" class="capitalize font-normal">{{
MemberState[member.member_state] }}</Badge>
</TableCell>
<TableCell>
<Badge v-if="member.loa_until" variant="secondary"
@@ -262,11 +270,13 @@
<!-- <DropdownMenuItem @click="navigateToMember(member.member_id)">
View Profile
</DropdownMenuItem> -->
<DropdownMenuItem @click="openDischargeModal(member)"
<DropdownMenuItem v-if="member.member_state !== MemberState.Discharged"
@click="openDischargeModal(member)"
class="text-destructive focus:bg-destructive focus:text-destructive-foreground font-medium">
Discharge Member
</DropdownMenuItem>
<DropdownMenuItem v-if="member.member_state !== MemberState.Suspended" @click="onSuspend(member)"
<DropdownMenuItem v-if="member.member_state !== MemberState.Suspended"
@click="onSuspend(member)"
class="text-destructive focus:bg-destructive focus:text-destructive-foreground font-medium">
Suspend Member
</DropdownMenuItem>