Implement public audit pages
This commit is contained in:
57
lib/audits/public-audit-types.ts
Normal file
57
lib/audits/public-audit-types.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
export type PublicAuditLookupResult =
|
||||
| null
|
||||
| { publicationStatus: "draft" | "approved" | "deactivated" }
|
||||
| {
|
||||
publicationStatus: "published";
|
||||
companyName: string;
|
||||
domain: string;
|
||||
publishedAt: string;
|
||||
publicContent: {
|
||||
headline: string;
|
||||
intro: string;
|
||||
observations: PublicAuditObservation[];
|
||||
finalOffer: PublicAuditOffer;
|
||||
};
|
||||
screenshots: PublicAuditScreenshot[];
|
||||
};
|
||||
|
||||
export type PublicAuditObservation = {
|
||||
title: string;
|
||||
observation: string;
|
||||
impact: string;
|
||||
suggestion: string;
|
||||
screenshotIds?: string[];
|
||||
};
|
||||
|
||||
export type PublicAuditOffer = {
|
||||
body: string;
|
||||
ctaLabel?: string;
|
||||
ctaHref?: string;
|
||||
};
|
||||
|
||||
export type PublicAuditScreenshot = {
|
||||
id: string;
|
||||
url: string;
|
||||
alt: string;
|
||||
viewport: "desktop" | "mobile";
|
||||
sourceUrl: string;
|
||||
width: number;
|
||||
height: number;
|
||||
};
|
||||
|
||||
export type PublicAuditRenderState =
|
||||
| { kind: "pending" }
|
||||
| { kind: "unavailable" }
|
||||
| {
|
||||
kind: "published";
|
||||
audit: {
|
||||
companyName: string;
|
||||
domain: string;
|
||||
publishedAt: string;
|
||||
headline: string;
|
||||
intro: string;
|
||||
observations: PublicAuditObservation[];
|
||||
finalOffer: PublicAuditOffer;
|
||||
screenshots: PublicAuditScreenshot[];
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user