implemented
This commit is contained in:
parent
a31bd8246c
commit
d3638e2e69
18 changed files with 1643 additions and 120 deletions
|
|
@ -5,19 +5,15 @@ import { api } from "../api";
|
|||
import { sharedStyles } from "../styles/shared";
|
||||
import { Header } from "../components/Header";
|
||||
import { useRequireAuth } from "../hooks/useRequireAuth";
|
||||
import { components } from "../generated/api";
|
||||
import constants from "../../../shared/constants.json";
|
||||
|
||||
interface Invite {
|
||||
id: number;
|
||||
identifier: string;
|
||||
status: string;
|
||||
used_by_email: string | null;
|
||||
created_at: string;
|
||||
spent_at: string | null;
|
||||
}
|
||||
// Use generated type from OpenAPI schema
|
||||
type Invite = components["schemas"]["UserInviteResponse"];
|
||||
|
||||
export default function InvitesPage() {
|
||||
const { user, isLoading, isAuthorized } = useRequireAuth({
|
||||
requiredRole: "regular",
|
||||
requiredRole: constants.roles.REGULAR,
|
||||
fallbackRedirect: "/audit",
|
||||
});
|
||||
const [invites, setInvites] = useState<Invite[]>([]);
|
||||
|
|
@ -71,9 +67,10 @@ export default function InvitesPage() {
|
|||
return null;
|
||||
}
|
||||
|
||||
const readyInvites = invites.filter((i) => i.status === "ready");
|
||||
const spentInvites = invites.filter((i) => i.status === "spent");
|
||||
const revokedInvites = invites.filter((i) => i.status === "revoked");
|
||||
const { READY, SPENT, REVOKED } = constants.inviteStatuses;
|
||||
const readyInvites = invites.filter((i) => i.status === READY);
|
||||
const spentInvites = invites.filter((i) => i.status === SPENT);
|
||||
const revokedInvites = invites.filter((i) => i.status === REVOKED);
|
||||
|
||||
return (
|
||||
<main style={styles.main}>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue