From 292ac21b21bace22b956aff7560f472d9e705958 Mon Sep 17 00:00:00 2001 From: tarai-dl Date: Thu, 16 Apr 2026 21:25:54 -0400 Subject: [PATCH] feat: implement light mode with theme toggle Closes #1 - Added Tailwind dark mode class strategy - Created ThemeContext with localStorage persistence - Added ThemeToggle button component (sun/moon icons) - Updated all components with light mode colors: - Layout: bg-gray-50 in light, bg-zinc-900 in dark - Header: bg-white in light, bg-zinc-800 in dark - Modal: bg-white in light, bg-zinc-800 in dark - Form inputs: proper contrast in both modes - Buttons: appropriate hover states for both modes - RainbowKit theme switches between lightTheme and darkTheme - Respects system preference (prefers-color-scheme) - Persists user choice in localStorage --- .../common/components/add-issue-modal.tsx | 147 +++++++----------- src/features/common/components/button.tsx | 44 +++--- .../common/components/chain-list-item.tsx | 30 ++-- .../components/connect-wallet-button.tsx | 90 +++-------- src/features/common/components/form-input.tsx | 13 +- src/features/common/components/header-nav.tsx | 96 +++++++----- src/features/common/components/layout.tsx | 19 +-- src/features/common/components/modal.tsx | 65 ++++---- .../common/components/theme-toggle.tsx | 38 +++++ src/features/common/context/theme-context.tsx | 51 ++++++ src/pages/_app.tsx | 58 ++++--- src/styles/globals.css | 6 + tailwind.config.js | 2 + 13 files changed, 341 insertions(+), 318 deletions(-) create mode 100644 src/features/common/components/theme-toggle.tsx create mode 100644 src/features/common/context/theme-context.tsx diff --git a/src/features/common/components/add-issue-modal.tsx b/src/features/common/components/add-issue-modal.tsx index 020cdd5..1f4a441 100644 --- a/src/features/common/components/add-issue-modal.tsx +++ b/src/features/common/components/add-issue-modal.tsx @@ -1,91 +1,60 @@ -import FormInput from "./form-input" - - -import { AiOutlineClose } from "react-icons/ai" import { useState } from "react"; -import Button from "./button"; - -import { useWalletSignedInAccountQuery } from "../hooks/useWalletQueries"; - -import { useUser } from '@auth0/nextjs-auth0' - -import { useAccount } from 'wagmi' -import axios from "axios"; - -type AddIssueModalProps = { - setIsModalOpen: (value: boolean) => void +import Modal from "./modal"; +import { useCreateSuggestion } from "../hooks/useGuildQueries"; + +export default function AddIssueModal({ + isOpen, + setIsOpen, +}: { + isOpen: boolean; + setIsOpen: (isOpen: boolean) => void; +}) { + const [value, setValue] = useState(""); + const { mutate: createSuggestion, isLoading } = useCreateSuggestion(); + + const handleSubmit = () => { + if (!value.trim()) return; + createSuggestion( + { suggestion: value }, + { + onSuccess: () => { + setValue(""); + setIsOpen(false); + }, + } + ); + }; + + return ( + setIsOpen(false)} title="Suggest a feature"> +
+

+ Feature Request +

+

+ Describe the feature you would like to see. +

+