feat: update ViewDetailDialog; conditionally display target roles based on user permissions

This commit is contained in:
Yoga Pangestu 2026-09-04 10:16:12 +07:00
parent ceeb1e325d
commit 6ec257a1cc

View File

@ -135,6 +135,7 @@ export default function AnnouncementIndex({
<ViewDetailDialog
open={viewing !== null}
showTargetRoles={canCreate || canUpdate}
onOpenChange={(open) => {
if (!open) {
setViewing(null);
@ -176,10 +177,12 @@ function ViewDetailDialog({
open,
onOpenChange,
announcement,
showTargetRoles,
}: {
open: boolean;
onOpenChange: (open: boolean) => void;
announcement: Announcement | null;
showTargetRoles: boolean;
}) {
return (
<Dialog open={open} onOpenChange={onOpenChange}>
@ -200,18 +203,20 @@ function ViewDetailDialog({
)}
</span>
<div className="grid gap-1">
<Label className="text-muted-foreground">
Ditujukan Untuk
</Label>
<div className="flex flex-wrap gap-1">
{announcement.target_roles.map((role) => (
<Badge key={role} variant="secondary">
{AnnouncementTargetRoleLabels[role]}
</Badge>
))}
{showTargetRoles && (
<div className="grid gap-1">
<Label className="text-muted-foreground">
Ditujukan Untuk
</Label>
<div className="flex flex-wrap gap-1">
{announcement.target_roles.map((role) => (
<Badge key={role} variant="secondary">
{AnnouncementTargetRoleLabels[role]}
</Badge>
))}
</div>
</div>
</div>
)}
<div className="grid gap-1">
<Label className="text-muted-foreground">