From f60df15c2b60ab2bcaac9dab8dc24db195c409a8 Mon Sep 17 00:00:00 2001
From: adilallo <39313955+adilallo@users.noreply.github.com>
Date: Tue, 10 Feb 2026 22:13:08 -0700
Subject: [PATCH] Review template
---
app/create/final-review/page.tsx | 26 +++++++++++++++
app/create/review/page.tsx | 34 +++++++++++++++++++
stories/pages/ReviewPage.stories.js | 39 ++++++++++++++++++++++
tests/components/ReviewPage.test.tsx | 49 ++++++++++++++++++++++++++++
4 files changed, 148 insertions(+)
create mode 100644 app/create/final-review/page.tsx
create mode 100644 app/create/review/page.tsx
create mode 100644 stories/pages/ReviewPage.stories.js
create mode 100644 tests/components/ReviewPage.test.tsx
diff --git a/app/create/final-review/page.tsx b/app/create/final-review/page.tsx
new file mode 100644
index 0000000..bd12c20
--- /dev/null
+++ b/app/create/final-review/page.tsx
@@ -0,0 +1,26 @@
+"use client";
+
+import { useMediaQuery } from "../../hooks/useMediaQuery";
+import HeaderLockup from "../../components/type/HeaderLockup";
+
+/**
+ * Final review step (right before completed).
+ * Figma: 20907-212767
+ */
+export default function FinalReviewPage() {
+ const isMdOrLarger = useMediaQuery("(min-width: 640px)");
+
+ return (
+
+
+
+ {/* Content area: summary or checklist can be added per Figma */}
+
+
+ );
+}
diff --git a/app/create/review/page.tsx b/app/create/review/page.tsx
new file mode 100644
index 0000000..13c7d21
--- /dev/null
+++ b/app/create/review/page.tsx
@@ -0,0 +1,34 @@
+"use client";
+
+import HeaderLockup from "../../components/type/HeaderLockup";
+import RuleCard from "../../components/cards/RuleCard";
+
+/** Mid-flow review step (after upload, before compact-cards). */
+export default function ReviewPage() {
+ return (
+
+ );
+}
diff --git a/stories/pages/ReviewPage.stories.js b/stories/pages/ReviewPage.stories.js
new file mode 100644
index 0000000..e86d37c
--- /dev/null
+++ b/stories/pages/ReviewPage.stories.js
@@ -0,0 +1,39 @@
+import ReviewPage from "../../app/create/review/page";
+
+export default {
+ title: "Pages/Create Flow/Review",
+ component: ReviewPage,
+ parameters: {
+ layout: "fullscreen",
+ docs: {
+ description: {
+ component:
+ "Mid-flow review step (after upload). 640px+: HeaderLockup left (L), RuleCard right (L, collapsed). Below 640px: single column with HeaderLockup M and RuleCard M. Figma: 19688-13891, 19706-12120.",
+ },
+ },
+ },
+ decorators: [
+ (Story) => (
+
+
+
+ ),
+ ],
+ tags: ["autodocs"],
+};
+
+export const Desktop = {
+ parameters: {
+ viewport: {
+ defaultViewport: "desktop",
+ },
+ },
+};
+
+export const Mobile = {
+ parameters: {
+ viewport: {
+ defaultViewport: "mobile1",
+ },
+ },
+};
diff --git a/tests/components/ReviewPage.test.tsx b/tests/components/ReviewPage.test.tsx
new file mode 100644
index 0000000..f902024
--- /dev/null
+++ b/tests/components/ReviewPage.test.tsx
@@ -0,0 +1,49 @@
+import React from "react";
+import { describe, it, expect } from "vitest";
+import { renderWithProviders as render, screen } from "../utils/test-utils";
+import "@testing-library/jest-dom/vitest";
+import ReviewPage from "../../app/create/review/page";
+
+describe("ReviewPage", () => {
+ it("renders without crashing", () => {
+ render();
+ expect(screen.getByRole("heading", { level: 1 })).toBeInTheDocument();
+ });
+
+ it("renders HeaderLockup with expected title", () => {
+ render();
+ expect(
+ screen.getByRole("heading", { name: "Your community is added - congrats!" }),
+ ).toBeInTheDocument();
+ });
+
+ it("renders HeaderLockup with expected description", () => {
+ render();
+ expect(
+ screen.getByText(
+ /In the next section, we'll go through membership, decision-making, conflict resolution, and community values and create a custom operating manual for your organization based on the specifics you just shared./i,
+ ),
+ ).toBeInTheDocument();
+ });
+
+ it("renders RuleCard with title", () => {
+ render();
+ expect(screen.getByText("Mutual Aid Mondays")).toBeInTheDocument();
+ });
+
+ it("renders RuleCard with description", () => {
+ render();
+ expect(
+ screen.getByText(
+ /Mutual Aid Monday is a grassroots community in Denver, founded in November 2020 by Kelsang Virya, dedicated to supporting neighbors experiencing homelessness./i,
+ ),
+ ).toBeInTheDocument();
+ });
+
+ it("renders RuleCard as a button (card is interactive)", () => {
+ render();
+ const buttons = screen.getAllByRole("button");
+ expect(buttons.length).toBeGreaterThanOrEqual(1);
+ expect(buttons.some((el) => el.textContent?.includes("Mutual Aid Mondays"))).toBe(true);
+ });
+});