From 06a94b248a0ccd98be36f39c2104f5a76d8744e4 Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Sat, 9 Dec 2023 06:38:06 +0700 Subject: [PATCH 01/16] Enable Light/Dark Mode and remove unnecessary import thing --- app/_app.tsx | 11 ++++++ app/globals.css | 68 ++++++++++++++++++-------------------- app/layout.tsx | 4 +-- app/page.tsx | 48 +++++++++++++++++---------- app/providers.tsx | 7 ++++ components/availchain.tsx | 2 +- components/blockdata.tsx | 10 +++--- components/header.tsx | 5 ++- package-lock.json | 11 ++++++ package.json | 1 + public/images/avail.png | Bin 0 -> 66094 bytes tailwind.config.ts | 20 ----------- 12 files changed, 103 insertions(+), 84 deletions(-) create mode 100644 app/_app.tsx create mode 100644 public/images/avail.png delete mode 100644 tailwind.config.ts diff --git a/app/_app.tsx b/app/_app.tsx new file mode 100644 index 0000000..5e47de4 --- /dev/null +++ b/app/_app.tsx @@ -0,0 +1,11 @@ +import './globals.css' +import type { AppProps } from 'next/app' +import { ThemeProvider } from "next-themes" + +export default function App({ Component, pageProps }: AppProps) { + return ( + + + + ) +} \ No newline at end of file diff --git a/app/globals.css b/app/globals.css index 631f07f..a90a013 100644 --- a/app/globals.css +++ b/app/globals.css @@ -44,7 +44,6 @@ html { } line-height: 100%; letter-spacing: -0.03em; - color: #FFFFFF; text-align: center; } @@ -57,36 +56,35 @@ html { font-size: 20px; } letter-spacing: -0.03em; - color: #FFFFFF; text-align: left; justify-content: flex-start; } @layer base { :root { - --background:223.6,15.5%,13.9%; - --foreground:229, 15%, 15%; + --background: white; + --foreground: black; - --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; + --card: white; + --card-foreground: black; - --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; + --popover: white; + --popover-foreground: black; - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; + --primary: white; + --primary-foreground: black; - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; + --secondary: white; + --secondary-foreground: black; - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; + --muted: white; + --muted-foreground: black; - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; + --accent: white; + --accent-foreground: black; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 210 40% 98%; + --destructive:white; + --destructive-foreground: black; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; @@ -95,30 +93,30 @@ html { --radius: 0.5rem; } - .dark { - --background: 229, 15%, 15%; - --foreground:229, 15%, 15%; + [data-theme='dark'] { + --background: black; + --foreground: white; - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; + --card: black; + --card-foreground: white; - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; + --popover: black; + --popover-foreground: white; - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; + --primary: black; + --primary-foreground: white; - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; + --secondary: black; + --secondary-foreground: white; - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; + --muted: black; + --muted-foreground: white; - --accent: 217.2 32.6% 17.5%; - --accent-foreground: 210 40% 98%; + --accent: black; + --accent-foreground: white; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; + --destructive: black; + --destructive-foreground: white; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; diff --git a/app/layout.tsx b/app/layout.tsx index b18e4b3..59ddd68 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,7 +1,7 @@ import './globals.css' import type { Metadata } from 'next' import { Inter } from 'next/font/google' -import { PHProvider, PostHogPageview } from './providers' +import { PHProvider, PostHogPageview, Providers } from './providers' import { Suspense } from 'react' const inter = Inter({ subsets: ['latin'] }) @@ -23,7 +23,7 @@ export default function RootLayout({ - {children} + {children} diff --git a/app/page.tsx b/app/page.tsx index 4bc10de..77bd692 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -12,8 +12,11 @@ import { sleep } from "@/utils/helper"; import { Block, Matrix, Cell } from "@/types/light-client"; import { runLC } from "@/repository/avail-light.repository"; import Link from "next/link"; +import { useTheme } from "next-themes"; export default function Home() { + const { systemTheme, theme, setTheme } = useTheme(); + const currentTheme = theme === 'system' ? systemTheme : theme; const [latestBlock, setLatestBlock] = useState(null); const [blockList, setBlockList] = useState>([]); const [matrix, setMatrix] = useState({ @@ -133,23 +136,32 @@ export default function Home() { return ( <> - { - running ? (stop?.(), setRunning(false)) : run(); - }} - variant={"outline"} - className="text-white rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold" - > - {running ? "Stop Running the LC" : "Start Running the LC"} - - } - /> +
+ + +
+ } />
- +
{running || (latestBlock != null) ? (
@@ -173,16 +185,16 @@ export default function Home() {
) : (
-

+

Avail Light Client (Web)

-

+

This is an experimental light client for Avail. It runs entirely in your browser to verify that block data is available, by verifying Avail's KZG commitment proofs locally. Click the button above to see it in action!

-

+

Check out the{" "}

-

+

P.S. Do you want to share the awesomeness?{" "} {children} } + +export function Providers({ children }: { + children: React.ReactNode +}) { + return {children} +} \ No newline at end of file diff --git a/components/availchain.tsx b/components/availchain.tsx index f59fb18..3e3faed 100644 --- a/components/availchain.tsx +++ b/components/availchain.tsx @@ -35,7 +35,7 @@ export default function AvailChain(props: Props) {

{ blockList.map((block: BlockType, index: number) => (
-

index + 1 ? 'text-white' : 'text-[#3CBBF9] animate-pulse'} text-opacity-70`}>#{block.number}

+

index + 1 ? '' : 'text-[#3CBBF9] animate-pulse'} text-opacity-70`}>#{block.number}

index + 1 ? 100 : 0} /> index + 1 ? 100 : progress} className="lg:h-2 lg:w-14 h-1 w-6 absolute right-0 top-1/2 transform -translate-y-1/2 !rounded-md"> diff --git a/components/blockdata.tsx b/components/blockdata.tsx index 4ff7674..9bc6d09 100644 --- a/components/blockdata.tsx +++ b/components/blockdata.tsx @@ -17,13 +17,13 @@ export default function BlockData(props: Props) {
{ running && -

Block data Block data (Latest Block)

}
-

Confidence Factor

+

Confidence Factor

{ latestBlock && latestBlock.confidence && latestBlock.confidence > 90 ? @@ -36,15 +36,15 @@ export default function BlockData(props: Props) {
-

Block Hash

+

Block Hash

{latestBlock?.hash?.toString().slice(0, 6) || ''}...

-

Block Number

+

Block Number

#{latestBlock?.number || '0000'}

-

Total Cell Count

+

Total Cell Count

{latestBlock?.totalCellCount || '000'}

diff --git a/components/header.tsx b/components/header.tsx index fedfeff..9abdf51 100644 --- a/components/header.tsx +++ b/components/header.tsx @@ -1,6 +1,5 @@ /* eslint-disable @next/next/no-img-element */ import Link from "next/link"; -import Image from "next/image"; import { ReactNode } from "react"; export default function Navbar({ @@ -18,8 +17,8 @@ export default function Navbar({ className="text-mono btn-ghost btn text-xl normal-case md:text-3xl" > diff --git a/package-lock.json b/package-lock.json index d686f87..bf06d25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "framer-motion": "^10.16.4", "lucide-react": "^0.292.0", "next": "14.0.1", + "next-themes": "^0.2.1", "postcss": "8.4.31", "posthog-js": "^1.88.4", "react": "18.2.0", @@ -6593,6 +6594,16 @@ } } }, + "node_modules/next-themes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", + "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "peerDependencies": { + "next": "*", + "react": "*", + "react-dom": "*" + } + }, "node_modules/nock": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", diff --git a/package.json b/package.json index 787820c..4d9d1e3 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "framer-motion": "^10.16.4", "lucide-react": "^0.292.0", "next": "14.0.1", + "next-themes": "^0.2.1", "postcss": "8.4.31", "posthog-js": "^1.88.4", "react": "18.2.0", diff --git a/public/images/avail.png b/public/images/avail.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca27356029ccbd6cd6a6da2022bf81e094366c3 GIT binary patch literal 66094 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 }M%)&Q>`^dtL1Je&&*G~Y2+J3BjC4;-(F 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 literal 0 HcmV?d00001 diff --git a/tailwind.config.ts b/tailwind.config.ts deleted file mode 100644 index 914b73f..0000000 --- a/tailwind.config.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { Config } from 'tailwindcss'; - -const config: Config = { - content: [ - './pages/**/*.{js,ts,jsx,tsx,mdx}', - './components/**/*.{js,ts,jsx,tsx,mdx}', - './app/**/*.{js,ts,jsx,tsx,mdx}', - ], - theme: { - extend: { - backgroundImage: { - 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', - 'gradient-conic': - 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', - }, - }, - }, - plugins: [], -} -export default config From aa8987eca40ad78df9a1ad32bec61ac6ca3d3078 Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Sat, 9 Dec 2023 07:15:58 +0700 Subject: [PATCH 02/16] Update font color --- app/page.tsx | 2 +- components/availchain.tsx | 2 +- components/blockdata.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 77bd692..1726887 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -155,7 +155,7 @@ export default function Home() { variant={"outline"} className=" rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold" > - {currentTheme ? "Switch to Light Mode" : "Switch to Dark Mode"} + Switch Theme Mode
} /> diff --git a/components/availchain.tsx b/components/availchain.tsx index 3e3faed..1c68aab 100644 --- a/components/availchain.tsx +++ b/components/availchain.tsx @@ -35,7 +35,7 @@ export default function AvailChain(props: Props) {
{ blockList.map((block: BlockType, index: number) => (
-

index + 1 ? '' : 'text-[#3CBBF9] animate-pulse'} text-opacity-70`}>#{block.number}

+

index + 1 ? '' : 'text-blue-600 animate-pulse'} text-opacity-70`}>#{block.number}

index + 1 ? 100 : 0} /> index + 1 ? 100 : progress} className="lg:h-2 lg:w-14 h-1 w-6 absolute right-0 top-1/2 transform -translate-y-1/2 !rounded-md"> diff --git a/components/blockdata.tsx b/components/blockdata.tsx index 9bc6d09..1b3cc2b 100644 --- a/components/blockdata.tsx +++ b/components/blockdata.tsx @@ -48,7 +48,7 @@ export default function BlockData(props: Props) {

{latestBlock?.totalCellCount || '000'}

-

Sample Cell Count

+

Sample Cell Count

{latestBlock?.sampleCount?.toString() || '0'}

From e12fb88b672348356d9022bdd3036bc31a2a201a Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Sat, 9 Dec 2023 15:17:41 +0700 Subject: [PATCH 03/16] edit css --- app/globals.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/globals.css b/app/globals.css index a90a013..5d6f63c 100644 --- a/app/globals.css +++ b/app/globals.css @@ -93,7 +93,7 @@ html { --radius: 0.5rem; } - [data-theme='dark'] { + .dark { --background: black; --foreground: white; From 9b6163dabf607d01bdec82d274a7f95a4ed4cbbe Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Tue, 12 Dec 2023 05:04:34 +0700 Subject: [PATCH 04/16] Update theme button on mobile view --- app/page.tsx | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 1726887..dea93f5 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -144,24 +144,43 @@ export default function Home() { running ? (stop?.(), setRunning(false)) : run(); }} variant={"outline"} - className=" rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold" + className="rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold" > {running ? "Stop Running the LC" : "Start Running the LC"}
} />
-
- +
+ +
{running || (latestBlock != null) ? (
From a3299ab0845bf442f20e629caa3bb8e1798e587b Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Tue, 19 Dec 2023 21:39:41 +0700 Subject: [PATCH 05/16] edit desctiption --- app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/layout.tsx b/app/layout.tsx index 59ddd68..33f01b1 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -8,7 +8,7 @@ const inter = Inter({ subsets: ['latin'] }) export const metadata: Metadata = { title: 'Avail Light Client', - description: 'Generated by create next app', + description: 'Run Avail Light Client on Your Browser', } export default function RootLayout({ From 4f2dad6c8dba0494bea8ab5a6a4847c5ff0f5c17 Mon Sep 17 00:00:00 2001 From: Abheek Tripathy Date: Tue, 19 Dec 2023 22:02:00 +0530 Subject: [PATCH 06/16] add pnpm-lock.yaml --- pnpm-lock.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f6f3bc..d81dc62 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ dependencies: next: specifier: 14.0.1 version: 14.0.1(react-dom@18.2.0)(react@18.2.0) + next-themes: + specifier: ^0.2.1 + version: 0.2.1(next@14.0.1)(react-dom@18.2.0)(react@18.2.0) postcss: specifier: 8.4.31 version: 8.4.31 @@ -5222,6 +5225,18 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: false + /next-themes@0.2.1(next@14.0.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} + peerDependencies: + next: '*' + react: '*' + react-dom: '*' + dependencies: + next: 14.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /next@14.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA==} engines: {node: '>=18.17.0'} From dc54ff843d9072ac816bbee5db3965fbff641c9c Mon Sep 17 00:00:00 2001 From: Megumiiiiii Date: Wed, 20 Dec 2023 00:17:55 +0700 Subject: [PATCH 07/16] Edit Block and Cell color --- components/block.tsx | 14 ++++- components/ui/progress.tsx | 56 ++++++++++++-------- public/images/{block.png => block-dark.png} | Bin public/images/block-light.png | Bin 0 -> 8585 bytes 4 files changed, 46 insertions(+), 24 deletions(-) rename public/images/{block.png => block-dark.png} (100%) create mode 100644 public/images/block-light.png diff --git a/components/block.tsx b/components/block.tsx index eba70e8..50fa4ec 100644 --- a/components/block.tsx +++ b/components/block.tsx @@ -1,8 +1,10 @@ /* eslint-disable @next/next/no-img-element */ +"use client" import { useState, useEffect } from "react"; import { Progress } from "./ui/progress"; import { Block } from "@/types/light-client"; +import { useTheme } from "next-themes"; type Props = { progress: number @@ -10,8 +12,18 @@ type Props = { export default function Block(props: Props) { + const { theme } = useTheme(); + const [blockImage, setBlockImage] = useState("/images/block.png"); const [value, setValue] = useState(0); + useEffect(() => { + if (theme === "dark") { + setBlockImage("/images/block-dark.png"); + } else { + setBlockImage("/images/block-light.png"); + } + }, [theme]); + useEffect(() => { setValue(props.progress) }, [props.progress]) @@ -26,7 +38,7 @@ export default function Block(props: Props) {
block diff --git a/components/ui/progress.tsx b/components/ui/progress.tsx index 3cc325e..3192c37 100644 --- a/components/ui/progress.tsx +++ b/components/ui/progress.tsx @@ -1,28 +1,38 @@ -"use client" - -import * as React from "react" -import * as ProgressPrimitive from "@radix-ui/react-progress" - -import { cn } from "@/lib/utils" +import * as React from 'react'; +import * as ProgressPrimitive from '@radix-ui/react-progress'; +import { useTheme } from 'next-themes'; +import { cn } from '@/lib/utils'; const Progress = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef ->(({ className, value, ...props }, ref) => ( - - - -)) -Progress.displayName = ProgressPrimitive.Root.displayName +>(({ className, value, ...props }, ref) => { + const { resolvedTheme } = useTheme(); + const [backgroundColor, setBackgroundColor] = React.useState('#949596'); + + React.useEffect(() => { + if (resolvedTheme === 'dark') { + setBackgroundColor('#949596'); + } else { + setBackgroundColor('#000000'); + } + }, [resolvedTheme]); + + return ( + + + + ); +}); + +Progress.displayName = ProgressPrimitive.Root.displayName; -export { Progress } +export { Progress }; diff --git a/public/images/block.png b/public/images/block-dark.png similarity index 100% rename from public/images/block.png rename to public/images/block-dark.png diff --git a/public/images/block-light.png b/public/images/block-light.png new file mode 100644 index 0000000000000000000000000000000000000000..19ebf1036a8f6b47249917c6f506ee388775c2ab GIT binary patch literal 8585 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 Date: Wed, 20 Dec 2023 00:49:15 +0700 Subject: [PATCH 08/16] Update pnpm-lock.yaml, sun/moon logo --- app/globals.css | 32 +- app/page.tsx | 20 +- pnpm-lock.yaml | 1351 ++++++++++++++++++++-------------------- public/static/moon.png | Bin 0 -> 21625 bytes public/static/sun.png | Bin 0 -> 21258 bytes 5 files changed, 709 insertions(+), 694 deletions(-) create mode 100644 public/static/moon.png create mode 100644 public/static/sun.png diff --git a/app/globals.css b/app/globals.css index 5d6f63c..e53739e 100644 --- a/app/globals.css +++ b/app/globals.css @@ -62,28 +62,28 @@ html { @layer base { :root { - --background: white; + --background: #efeded; --foreground: black; - --card: white; + --card: #efeded; --card-foreground: black; - --popover: white; + --popover: #efeded; --popover-foreground: black; - --primary: white; + --primary: #efeded; --primary-foreground: black; - --secondary: white; + --secondary: #efeded; --secondary-foreground: black; - --muted: white; + --muted: #efeded; --muted-foreground: black; - --accent: white; + --accent: #efeded; --accent-foreground: black; - --destructive:white; + --destructive:#efeded; --destructive-foreground: black; --border: 214.3 31.8% 91.4%; @@ -94,28 +94,28 @@ html { } .dark { - --background: black; + --background: #1E2129; --foreground: white; - --card: black; + --card: #1E2129; --card-foreground: white; - --popover: black; + --popover: #1E2129; --popover-foreground: white; - --primary: black; + --primary: #1E2129; --primary-foreground: white; - --secondary: black; + --secondary: #1E2129; --secondary-foreground: white; - --muted: black; + --muted: #1E2129; --muted-foreground: white; - --accent: black; + --accent: #1E2129; --accent-foreground: white; - --destructive: black; + --destructive: #1E2129; --destructive-foreground: white; --border: 217.2 32.6% 17.5%; diff --git a/app/page.tsx b/app/page.tsx index dea93f5..290b141 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -152,10 +152,12 @@ export default function Home() { onClick={() => theme == "dark" ? setTheme('light') : setTheme("dark") } - variant={"default"} - className="rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold" - > - Switch Theme Mode + className="rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold"> + {theme === 'dark' ? ( + Sun icon + ) : ( + Moon icon + )}
} /> @@ -165,10 +167,12 @@ export default function Home() { onClick={() => theme == "dark" ? setTheme('light') : setTheme("dark") } - variant={"default"} - className="rounded-full border-opacity-70 bg-opacity-50 lg:px-5 lg:py-6 px-6 py-4 font-thicccboibold" - > - Switch Theme + className="rounded-full border-opacity-70 bg-opacity-50 lg:px-8 lg:py-6 px-6 py-4 font-thicccboibold"> + {theme === 'dark' ? ( + Sun icon + ) : ( + Moon icon + )} + +
} />
+ - - -
} />
- - +