Skip to content

Commit 83eee34

Browse files
committed
feat(dashboard/contract/shell): minimal React app skeleton
1 parent 5b9ec20 commit 83eee34

8 files changed

Lines changed: 64 additions & 1 deletion

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ METRICS_DEADLOCK_FIX.md
123123
**/*.md
124124
!**/README.md
125125
!extensions/dashboard/contract/*.md
126+
!extensions/dashboard/contract/shell/test/
127+
!extensions/dashboard/contract/shell/test/**
126128
/**/*.disabled
127129
extensions/dashboard/forgeui
128130
*.blob

extensions/dashboard/contract/shell/.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,17 @@ dist/
55
.env
66
.env.local
77
coverage/
8+
9+
# tsc -b build artifacts (we use Vite for actual bundling; these are leftover)
10+
src/**/*.js
11+
src/**/*.d.ts
12+
test/**/*.js
13+
test/**/*.d.ts
14+
*.tsbuildinfo
15+
# tsc -b also emits .js/.d.ts next to .ts config files at root; ignore those too
16+
tailwind.config.js
17+
tailwind.config.d.ts
18+
vite.config.js
19+
vite.config.d.ts
20+
vitest.config.js
21+
vitest.config.d.ts
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>Forge Dashboard</title>
7+
</head>
8+
<body class="bg-gray-50 text-gray-900">
9+
<div id="root"></div>
10+
<script type="module" src="/src/main.tsx"></script>
11+
</body>
12+
</html>

extensions/dashboard/contract/shell/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"dev": "vite",
88
"build": "tsc -b && vite build",
99
"preview": "vite preview",
10-
"test": "vitest run",
10+
"test": "vitest run --passWithNoTests",
1111
"test:watch": "vitest",
1212
"lint": "tsc --noEmit",
1313
"format": "prettier --write src test"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export function App() {
2+
return (
3+
<div className="p-8">
4+
<h1 className="text-2xl font-semibold">Forge Dashboard Shell</h1>
5+
<p className="mt-2 text-gray-600">Runtime scaffolded; routes will be wired in Phase 6.</p>
6+
</div>
7+
);
8+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
4+
5+
html, body, #root {
6+
height: 100%;
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from "react";
2+
import ReactDOM from "react-dom/client";
3+
import "./index.css";
4+
import { App } from "./App";
5+
6+
const root = document.getElementById("root");
7+
if (!root) throw new Error("#root not found");
8+
9+
ReactDOM.createRoot(root).render(
10+
<React.StrictMode>
11+
<App />
12+
</React.StrictMode>,
13+
);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import "@testing-library/jest-dom/vitest";
2+
import { afterEach } from "vitest";
3+
import { cleanup } from "@testing-library/react";
4+
5+
afterEach(() => {
6+
cleanup();
7+
});

0 commit comments

Comments
 (0)