From 55f6b35ed4743887e56e0818cfc74918e89699a5 Mon Sep 17 00:00:00 2001 From: Ahmed Khaleel Date: Tue, 1 Apr 2025 07:26:45 -0400 Subject: [PATCH 1/9] add minimal star reminder --- package.json | 2 ++ pnpm-lock.yaml | 28 ++++++++++++++++++++++++++++ src/app/[username]/[repo]/page.tsx | 5 +++++ src/app/layout.tsx | 2 ++ src/components/header.tsx | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 09d93ea..7a8e995 100644 --- a/package.json +++ b/package.json @@ -36,11 +36,13 @@ "lucide-react": "^0.468.0", "mermaid": "^11.4.1", "next": "^15.0.1", + "next-themes": "^0.4.6", "postgres": "^3.4.4", "posthog-js": "^1.203.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.4.0", + "sonner": "^2.0.3", "svg-pan-zoom": "^3.6.2", "tailwind-merge": "^2.5.5", "tailwindcss-animate": "^1.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00f0caa..1422df2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: next: specifier: ^15.0.1 version: 15.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) postgres: specifier: ^3.4.4 version: 3.4.5 @@ -71,6 +74,9 @@ importers: react-icons: specifier: ^5.4.0 version: 5.4.0(react@18.3.1) + sonner: + specifier: ^2.0.3 + version: 2.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) svg-pan-zoom: specifier: ^3.6.2 version: 3.6.2 @@ -2417,6 +2423,12 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + next@15.1.0: resolution: {integrity: sha512-QKhzt6Y8rgLNlj30izdMbxAwjHMFANnLwDwZ+WQh5sMhyt4lEBqDK9QpvWHtIM4rINKPoJ8aiRZKg5ULSybVHw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} @@ -2891,6 +2903,12 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sonner@2.0.3: + resolution: {integrity: sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -5487,6 +5505,11 @@ snapshots: natural-compare@1.4.0: {} + next-themes@0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + next@15.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 15.1.0 @@ -5945,6 +5968,11 @@ snapshots: is-arrayish: 0.3.2 optional: true + sonner@2.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + source-map-js@1.2.1: {} source-map-support@0.5.21: diff --git a/src/app/[username]/[repo]/page.tsx b/src/app/[username]/[repo]/page.tsx index 86c157a..064efa8 100644 --- a/src/app/[username]/[repo]/page.tsx +++ b/src/app/[username]/[repo]/page.tsx @@ -8,10 +8,15 @@ import { useDiagram } from "~/hooks/useDiagram"; import { ApiKeyDialog } from "~/components/api-key-dialog"; import { ApiKeyButton } from "~/components/api-key-button"; import { useState } from "react"; +import { useStarReminder } from "~/hooks/useStarReminder"; export default function Repo() { const [zoomingEnabled, setZoomingEnabled] = useState(false); const params = useParams<{ username: string; repo: string }>(); + + // Use the star reminder hook + useStarReminder(); + const { diagram, error, diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 33fee68..685e422 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,6 +5,7 @@ import { type Metadata } from "next"; import { Header } from "~/components/header"; import { Footer } from "~/components/footer"; import { CSPostHogProvider } from "./providers"; +import { Toaster } from "~/components/ui/sonner"; export const metadata: Metadata = { title: "GitDiagram", @@ -81,6 +82,7 @@ export default function RootLayout({
{children}