From c836ee5e59daf335e2571f30e0376ea13339b696 Mon Sep 17 00:00:00 2001
From: Sem <931684+sembrestels@users.noreply.github.com>
Date: Sun, 3 Nov 2024 23:56:47 +0700
Subject: [PATCH] Migrate to Remix
---
.gitignore | 2 -
README.md | 22 +++++
apps/web/.gitignore | 5 --
apps/web/next.config.mjs | 12 ---
apps/web/package.json | 17 ++--
apps/web/src/app/entry.client.tsx | 18 ++++
apps/web/src/app/layout.tsx | 46 ----------
apps/web/src/app/root.tsx | 74 ++++++++++++++++
apps/web/src/app/routes/_index.tsx | 13 +++
.../c.$chain.$council.tsx} | 79 ++++++++++++------
apps/web/src/components/AddressAvatar.tsx | 3 +-
apps/web/src/components/Footer.tsx | 13 +--
apps/web/src/components/Layout.tsx | 15 ++++
apps/web/src/components/VotingCard/index.tsx | 2 +-
apps/web/src/utils/wallet.ts | 6 +-
apps/web/tsconfig.json | 40 ++++-----
apps/web/vite.config.ts | 21 +++++
bun.lockb | Bin 60792 -> 670936 bytes
constants.ts | 4 +
package.json | 6 +-
packages/ui/package.json | 2 +
packages/ui/src/components/ui/tooltip.tsx | 30 +++++++
packages/ui/src/globals.css | 9 +-
packages/ui/tailwind.config.ts | 6 +-
24 files changed, 310 insertions(+), 135 deletions(-)
delete mode 100644 apps/web/next.config.mjs
create mode 100644 apps/web/src/app/entry.client.tsx
delete mode 100644 apps/web/src/app/layout.tsx
create mode 100644 apps/web/src/app/root.tsx
create mode 100644 apps/web/src/app/routes/_index.tsx
rename apps/web/src/app/{page.tsx => routes/c.$chain.$council.tsx} (68%)
create mode 100644 apps/web/src/components/Layout.tsx
create mode 100644 apps/web/vite.config.ts
create mode 100644 packages/ui/src/components/ui/tooltip.tsx
diff --git a/.gitignore b/.gitignore
index d74f21a..a5b92d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,8 +23,6 @@ coverage.json
.vercel
# Build Outputs
-.next/
-out/
build
dist
diff --git a/README.md b/README.md
index 9c92a3f..ed4682b 100644
--- a/README.md
+++ b/README.md
@@ -47,3 +47,25 @@ bun run dev
The development server will be available at http://localhost:3000/.
The smart contracts are in the `contracts` directory, and the frontend is in the `apps` directory.
+
+## How to deploy
+
+### Build Settings
+
+- **Docker Image:**
+ `node:lts`
+
+- **Repository:**
+ [https://github.com/BlossomLabs/councilhaus](https://github.com/BlossomLabs/councilhaus)
+
+- **Build Command:**
+ ```bash
+ npm install -g bun && HUSKY=0 bun i && bun run --cwd apps/web/ build
+ ```
+
+- **Publish Directory:**
+ `apps/web/build`
+
+### Environment Variables
+
+- Use `VITE_WALLETCONNECT_PROJECT_ID` for your wallet connect project ID.
diff --git a/apps/web/.gitignore b/apps/web/.gitignore
index f886745..6cb74a4 100644
--- a/apps/web/.gitignore
+++ b/apps/web/.gitignore
@@ -9,10 +9,6 @@
# testing
/coverage
-# next.js
-/.next/
-/out/
-
# production
/build
@@ -33,4 +29,3 @@ yarn-error.log*
# typescript
*.tsbuildinfo
-next-env.d.ts
diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs
deleted file mode 100644
index ed677c3..0000000
--- a/apps/web/next.config.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- transpilePackages: ["@repo/ui"],
- distDir: "build",
- output: "export",
- trailingSlash: true,
- images: {
- unoptimized: true,
- },
-};
-
-export default nextConfig;
diff --git a/apps/web/package.json b/apps/web/package.json
index 3c2acd7..bdf58e6 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -1,25 +1,28 @@
{
"name": "web",
- "version": "1.0.0",
+ "version": "1.1.0",
"private": true,
+ "sideEffects": false,
+ "type": "module",
"scripts": {
- "dev": "next dev --port 3000",
- "build": "next build",
- "start": "next start"
+ "build": "remix vite:build",
+ "dev": "remix vite:dev -l info"
},
"dependencies": {
"@rainbow-me/rainbowkit": "^2.1.5",
+ "@remix-run/node": "^2.12.1",
+ "@remix-run/react": "^2.12.1",
"@repo/ui": "*",
"@tanstack/react-query": "^5.55.4",
"ethereum-blockies-base64": "^1.0.2",
"graphql-request": "^7.1.0",
- "next": "^14.2.8",
"react": "^18",
"react-dom": "^18",
"viem": "2.x",
"wagmi": "^2.12.8"
},
"devDependencies": {
+ "@remix-run/dev": "^2.12.1",
"@repo/typescript-config": "*",
"@types/node": "^20",
"@types/react": "^18",
@@ -27,6 +30,8 @@
"autoprefixer": "^10",
"postcss": "^8",
"tailwindcss": "^3.4.10",
- "typescript": "^5"
+ "typescript": "^5",
+ "vite": "^5.1.0",
+ "vite-tsconfig-paths": "^5.0.0"
}
}
diff --git a/apps/web/src/app/entry.client.tsx b/apps/web/src/app/entry.client.tsx
new file mode 100644
index 0000000..f91c526
--- /dev/null
+++ b/apps/web/src/app/entry.client.tsx
@@ -0,0 +1,18 @@
+/**
+ * By default, Remix will handle hydrating your app on the client for you.
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
+ * For more information, see https://remix.run/file-conventions/entry.client
+ */
+
+import { RemixBrowser } from "@remix-run/react";
+import { StrictMode, startTransition } from "react";
+import { hydrateRoot } from "react-dom/client";
+
+startTransition(() => {
+ hydrateRoot(
+ document,
+
+
+ ,
+ );
+});
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx
deleted file mode 100644
index 58b4b0b..0000000
--- a/apps/web/src/app/layout.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import "@repo/ui/globals.css";
-import { ToastProvider } from "@repo/ui/components/ui/toast";
-import { Toaster } from "@repo/ui/components/ui/toaster";
-import type { Metadata } from "next";
-import { Newsreader } from "next/font/google";
-import { SITE_DESCRIPTION, SITE_NAME } from "../../../../constants";
-import Footer from "../components/Footer";
-import Header from "../components/Header";
-import { WalletProvider } from "../context/WalletProvider";
-
-const newsreader = Newsreader({
- subsets: ["latin"],
- weight: ["400", "500", "600"],
- display: "swap",
- variable: "--font-newsreader",
-});
-
-export const metadata: Metadata = {
- title: SITE_NAME,
- description: SITE_DESCRIPTION,
-};
-
-export default function RootLayout({
- children,
-}: {
- children: React.ReactNode;
-}): JSX.Element {
- return (
-
-
-
-
-
-
-
- {children}
-
-
-
-
-
-
-
-
- );
-}
diff --git a/apps/web/src/app/root.tsx b/apps/web/src/app/root.tsx
new file mode 100644
index 0000000..00659aa
--- /dev/null
+++ b/apps/web/src/app/root.tsx
@@ -0,0 +1,74 @@
+import type { MetaFunction } from "@remix-run/node";
+import {
+ Links,
+ LiveReload,
+ Meta,
+ Outlet,
+ Scripts,
+ ScrollRestoration,
+} from "@remix-run/react";
+
+import { ToastProvider } from "@repo/ui/components/ui/toast";
+import { Toaster } from "@repo/ui/components/ui/toaster";
+import { TooltipProvider } from "@repo/ui/components/ui/tooltip";
+import { Layout } from "../components/Layout";
+import { WalletProvider } from "../context/WalletProvider";
+
+import {
+ SITE_DESCRIPTION,
+ SITE_EMOJI,
+ SITE_NAME,
+ SITE_URL,
+ SOCIAL_TWITTER,
+} from "../../../../constants";
+
+import "@repo/ui/globals.css";
+import "@rainbow-me/rainbowkit/styles.css";
+
+export const meta: MetaFunction = () => [
+ {
+ charset: "utf-8",
+ title: SITE_NAME,
+ viewport: "width=device-width,initial-scale=1",
+ },
+ { name: "description", content: SITE_DESCRIPTION },
+ { name: "image", content: SITE_EMOJI },
+ { name: "og:image", content: "/opengraph-image" },
+ { name: "og:title", content: SITE_NAME },
+ { name: "og:description", content: SITE_DESCRIPTION },
+ { name: "og:url", content: SITE_URL },
+ { name: "og:type", content: "website" },
+ { name: "og:site_name", content: SITE_NAME },
+ { name: "og:locale", content: "en_US" },
+ { name: "twitter:card", content: "summary_large_image" },
+ { name: "twitter:image", content: "/opengraph-image" },
+ { name: "twitter:title", content: SITE_NAME },
+ { name: "twitter:description", content: SITE_DESCRIPTION },
+ { name: "twitter:site", content: SOCIAL_TWITTER },
+ { name: "twitter:creator", content: SOCIAL_TWITTER },
+];
+
+export default function App() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/web/src/app/routes/_index.tsx b/apps/web/src/app/routes/_index.tsx
new file mode 100644
index 0000000..ab1361d
--- /dev/null
+++ b/apps/web/src/app/routes/_index.tsx
@@ -0,0 +1,13 @@
+import { useEffect } from "react";
+import { useNavigate } from "react-router-dom";
+import { DEFAULT_COUNCIL_ADDRESS, NETWORK } from "../../../../../constants";
+
+export default function IndexPage() {
+ const navigate = useNavigate();
+
+ useEffect(() => {
+ navigate(`/c/${NETWORK}/${DEFAULT_COUNCIL_ADDRESS}`);
+ }, [navigate]);
+
+ return null;
+}
diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/routes/c.$chain.$council.tsx
similarity index 68%
rename from apps/web/src/app/page.tsx
rename to apps/web/src/app/routes/c.$chain.$council.tsx
index 95ce524..cb6f352 100644
--- a/apps/web/src/app/page.tsx
+++ b/apps/web/src/app/routes/c.$chain.$council.tsx
@@ -1,37 +1,53 @@
"use client";
+import { useParams } from "@remix-run/react";
import { Badge } from "@repo/ui/components/ui/badge";
import { Label } from "@repo/ui/components/ui/label";
import { Skeleton } from "@repo/ui/components/ui/skeleton";
import { cn } from "@repo/ui/lib/utils";
-import Link from "next/link";
-import { useRouter } from "next/navigation";
-import { useEffect, useState } from "react";
+import { useEffect } from "react";
+import { useNavigate } from "react-router-dom";
import { getAddress } from "viem";
import { useAccount, useChains } from "wagmi";
-import { DEFAULT_COUNCIL_ADDRESS, NETWORK } from "../../../../constants";
-import { CouncilImage } from "../components/CouncilImage";
-import { CouncilName } from "../components/CouncilName";
-import VotingCard from "../components/VotingCard";
-import { useAllocation } from "../hooks/useAllocation";
-import { useCouncil } from "../hooks/useCouncil";
+import { NETWORK } from "../../../../../constants";
+import { CouncilImage } from "../../components/CouncilImage";
+import { CouncilName } from "../../components/CouncilName";
+import VotingCard from "../../components/VotingCard";
+import { useAllocation } from "../../hooks/useAllocation";
+import { useCouncil } from "../../hooks/useCouncil";
-export default function Page() {
- const router = useRouter();
- const [council, setCouncil] = useState<`0x${string}` | undefined>(undefined);
+export default function CouncilPage() {
+ const { chain, council } = useParams();
+ const navigate = useNavigate();
+ const normalizedAddress = council ? getAddress(council) : null;
useEffect(() => {
- // Ensure the code runs only on the client side
- if (!window.location.hash) {
- router.push(`#${DEFAULT_COUNCIL_ADDRESS}`);
+ // Redirect if the chain is unsupported
+ if (chain !== NETWORK) {
+ navigate("/404");
+ return;
}
- // Set the council value once the hash is present
- const address = getAddress(
- window.location.hash?.slice(1) || DEFAULT_COUNCIL_ADDRESS,
- );
- setCouncil(address);
- }, [router]);
+ // Redirect if council address is invalid
+ if (!normalizedAddress) {
+ navigate("/404");
+ return;
+ }
+
+ // Redirect if the normalized address doesn't match the URL
+ if (normalizedAddress !== council) {
+ navigate(`/c/${chain}/${normalizedAddress}`, { replace: true });
+ }
+ }, [chain, council, normalizedAddress, navigate]);
+
+ if (!normalizedAddress) {
+ return null;
+ }
+
+ return ;
+}
+
+function CouncilPageContent({ council }: { council: `0x${string}` }) {
// Fetch data when the council is available
const { address } = useAccount();
const {
@@ -52,16 +68,17 @@ export default function Page() {
return (
-
-
+
{totalVotingPower ? (
!address ? (
@@ -129,14 +146,22 @@ function ContractLinks({
);
diff --git a/apps/web/src/components/AddressAvatar.tsx b/apps/web/src/components/AddressAvatar.tsx
index ea4f334..083abeb 100644
--- a/apps/web/src/components/AddressAvatar.tsx
+++ b/apps/web/src/components/AddressAvatar.tsx
@@ -1,6 +1,5 @@
import { cn } from "@repo/ui/lib/utils";
import makeBlockie from "ethereum-blockies-base64";
-import Image from "next/image";
import { useMemo } from "react";
import { isAddress } from "viem";
import { normalize } from "viem/ens";
@@ -56,7 +55,7 @@ function AddressAvatar({
}, [ensAvatar, address, isLoading]);
return (
-
Built with ❤️ by{" "}
⚡️ Powered by{" "}
diff --git a/apps/web/src/components/Layout.tsx b/apps/web/src/components/Layout.tsx
new file mode 100644
index 0000000..4675b9b
--- /dev/null
+++ b/apps/web/src/components/Layout.tsx
@@ -0,0 +1,15 @@
+import type { PropsWithChildren } from "react";
+import Footer from "./Footer";
+import Header from "./Header";
+
+export function Layout(props: PropsWithChildren) {
+ return (
+
+
+
+ {props.children}
+
+
+
+ );
+}
diff --git a/apps/web/src/components/VotingCard/index.tsx b/apps/web/src/components/VotingCard/index.tsx
index 6f595b3..87c53e1 100644
--- a/apps/web/src/components/VotingCard/index.tsx
+++ b/apps/web/src/components/VotingCard/index.tsx
@@ -101,7 +101,7 @@ const VotingCard = ({
return (
-
+
Which project is doing better?
diff --git a/apps/web/src/utils/wallet.ts b/apps/web/src/utils/wallet.ts
index e745a8f..3f558c0 100644
--- a/apps/web/src/utils/wallet.ts
+++ b/apps/web/src/utils/wallet.ts
@@ -11,10 +11,10 @@ import { NETWORK } from "../../../../constants";
const chain = NETWORK === "optimism" ? optimism : base;
export const WALLETCONNECT_PROJECT_ID =
- process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID ?? "";
+ import.meta.env.VITE_WALLETCONNECT_PROJECT_ID ?? "";
if (!WALLETCONNECT_PROJECT_ID) {
console.warn(
- "You need to provide a NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID env variable",
+ "You need to provide a VITE_WALLETCONNECT_PROJECT_ID env variable",
);
}
@@ -24,7 +24,7 @@ export const WALLETCONNECT_CONFIG: RainbowKitConfig = getDefaultConfig({
appName: SITE_NAME,
projectId: WALLETCONNECT_PROJECT_ID || "dummy",
chains: [chain],
- ssr: true,
+ ssr: false,
});
export const mainnetConfig = createConfig({
diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json
index 0f919a9..e559d65 100644
--- a/apps/web/tsconfig.json
+++ b/apps/web/tsconfig.json
@@ -1,23 +1,25 @@
{
- "extends": "@repo/typescript-config/nextjs.json",
+ "include": ["env.d.ts", "**/*.ts", "**/*.tsx"],
"compilerOptions": {
- "plugins": [
- {
- "name": "next"
- }
- ],
+ "lib": ["DOM", "DOM.Iterable", "ES2023"],
+ "types": ["@remix-run/node", "vite/client"],
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "jsx": "react-jsx",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "target": "ES2022",
+ "strict": true,
+ "allowJs": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "baseUrl": ".",
"paths": {
- "~/*": ["./*"]
- }
- },
- "include": [
- "next-env.d.ts",
- "next.config.mjs",
- "postcss.config.mjs",
- "**/*.ts",
- "**/*.tsx",
- ".next/types/**/*.ts",
- "build/types/**/*.ts"
- ],
- "exclude": ["node_modules"]
+ "@/*": ["./app/*"]
+ },
+
+ // Remix takes care of building everything in `remix build`.
+ "noEmit": true
+ }
}
diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts
new file mode 100644
index 0000000..e8be755
--- /dev/null
+++ b/apps/web/vite.config.ts
@@ -0,0 +1,21 @@
+import { vitePlugin as remix } from "@remix-run/dev";
+import { defineConfig } from "vite";
+import tsconfigPaths from "vite-tsconfig-paths";
+
+export default defineConfig({
+ plugins: [
+ remix({
+ appDirectory: "src/app",
+ ssr: false,
+ future: {
+ v3_fetcherPersist: true,
+ v3_relativeSplatPath: true,
+ v3_throwAbortReason: true,
+ },
+ }),
+ tsconfigPaths(),
+ ],
+ server: {
+ port: 3000,
+ },
+});
diff --git a/bun.lockb b/bun.lockb
index 1a5084d1499ae4fb78cf226c202e3331e82d68ce..e85ad3f91502c4d87621a25771fb553eb29b2404 100755
GIT binary patch
literal 670936
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