+ | {policy.title} |
+
+
+ {isDraft ? __("Draft") : __("Published")}
+
+ |
+
+
+
+ {policy.owner.fullName}
+
+ |
+
+ {dateFormat(policy.updatedAt, {
+ year: "numeric",
+ month: "short",
+ day: "numeric",
+ weekday: "short",
+ })}
+ |
+
+ {signedCount}/{signatures.length}
+ |
+
+
+ {__("Edit")}
+
+
+ {__("Delete")}
+
+
+
+ |
+
+ );
+}
diff --git a/apps/console2/src/pages/organizations/policies/PolicyPage.tsx b/apps/console2/src/pages/organizations/policies/PolicyPage.tsx
new file mode 100644
index 000000000..3c349bfe0
--- /dev/null
+++ b/apps/console2/src/pages/organizations/policies/PolicyPage.tsx
@@ -0,0 +1,177 @@
+import type { PreloadedQuery } from "react-relay";
+import type { PolicyGraphNodeQuery } from "/hooks/graph/__generated__/PolicyGraphNodeQuery.graphql";
+import {
+ graphql,
+ loadQuery,
+ useFragment,
+ usePreloadedQuery,
+} from "react-relay";
+import { policyNodeQuery } from "/hooks/graph/PolicyGraph";
+import { usePageTitle } from "@probo/hooks";
+import type { PolicyPagePolicyFragment$key } from "./__generated__/PolicyPagePolicyFragment.graphql";
+import { useTranslate } from "@probo/i18n";
+import {
+ PageHeader,
+ Breadcrumb,
+ IconCheckmark1,
+ Markdown,
+ PropertyRow,
+ Drawer,
+ Badge,
+ Avatar,
+} from "@probo/ui";
+import { useOrganizationId } from "/hooks/useOrganizationId";
+import { Button } from "@probo/ui";
+import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
+
+type Props = {
+ queryRef: PreloadedQuery