feat(ee): page verification workflow (#2102)

* feat: page verification workflow

* feat: refactor page-verification

* sync

* fix type

* fix

* fix

* notification icon

* use full word

* accept .license file

* - update templates
- update migration and notification

* fix copy

* update audit labels

* sync

* add space name
This commit is contained in:
Philip Okugbe
2026-04-13 20:20:34 +01:00
committed by GitHub
parent d6068310b4
commit bd68e47e03
50 changed files with 3828 additions and 58 deletions
@@ -6,10 +6,12 @@ import {
UnstyledButton,
} from "@mantine/core";
import {
IconBell,
IconCheck,
IconFileDescription,
IconPointFilled,
} from "@tabler/icons-react";
import { Avatar } from "@mantine/core";
import { CustomAvatar } from "@/components/ui/custom-avatar";
import { INotification } from "../types/notification.types";
import { Trans, useTranslation } from "react-i18next";
@@ -51,6 +53,16 @@ export function NotificationItem({
: "<bold>{{name}}</bold> gave you view access to a page";
case "page.updated":
return "<bold>{{name}}</bold> updated a page";
case "page.verified":
return "<bold>{{name}}</bold> verified a page";
case "page.approval_requested":
return "<bold>{{name}}</bold> submitted a page for your approval";
case "page.approval_rejected":
return "<bold>{{name}}</bold> returned a page for revision";
case "page.verification_expiring":
return "Page verification expires soon";
case "page.verification_expired":
return "Page verification has expired";
default:
return "";
}
@@ -96,11 +108,17 @@ export function NotificationItem({
className={classes.notificationItem}
>
<Group wrap="nowrap" align="flex-start" gap="sm">
<CustomAvatar
avatarUrl={notification.actor?.avatarUrl}
name={notification.actor?.name || "?"}
size="sm"
/>
{notification.actor ? (
<CustomAvatar
avatarUrl={notification.actor.avatarUrl}
name={notification.actor.name}
size="sm"
/>
) : (
<Avatar size="sm" color="gray" radius="xl">
<IconBell size={14} />
</Avatar>
)}
<div style={{ flex: 1, minWidth: 0 }}>
<Text size="sm" lineClamp={2}>