From 98a899bdeda31283a88cbf221d71b41e2cd042a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Romana=20=C4=8Eur=C3=A1=C4=8Diov=C3=A1?=
<98467853+romanaduraciova@users.noreply.github.com>
Date: Thu, 6 Aug 2026 15:09:42 +0200
Subject: [PATCH 01/11] feat: move theme state to url
---
bun.lock | 3 -
lib/components/primitives/sonner.tsx | 4 -
package.json | 1 -
src/app/layout.tsx | 330 +++++++++++++--------------
src/components/ThemeInitializer.tsx | 39 ----
src/components/ThemeProvider.tsx | 27 ---
src/components/ThemeSelector.tsx | 39 +---
src/hooks/use-theme-switcher.ts | 196 +++++++---------
vite.config.lib.ts | 1 -
9 files changed, 250 insertions(+), 390 deletions(-)
delete mode 100644 src/components/ThemeInitializer.tsx
delete mode 100644 src/components/ThemeProvider.tsx
diff --git a/bun.lock b/bun.lock
index 23e452b..3ad600c 100644
--- a/bun.lock
+++ b/bun.lock
@@ -77,7 +77,6 @@
"date-fns": "^4.0.0",
"embla-carousel-react": "^8.0.0",
"input-otp": "^1.0.0",
- "next-themes": "^0.3.0 || ^0.4.0",
"react": "^18.0.0 || ^19.0.0",
"react-day-picker": "^9.13.0",
"react-dom": "^18.0.0 || ^19.0.0",
@@ -1493,8 +1492,6 @@
"next-mdx-remote": ["next-mdx-remote@6.0.0", "", { "dependencies": { "@babel/code-frame": "^7.23.5", "@mdx-js/mdx": "^3.0.1", "@mdx-js/react": "^3.0.1", "unist-util-remove": "^4.0.0", "unist-util-visit": "^5.1.0", "vfile": "^6.0.1", "vfile-matter": "^5.0.0" }, "peerDependencies": { "react": ">=16" } }, "sha512-cJEpEZlgD6xGjB4jL8BnI8FaYdN9BzZM4NwadPe1YQr7pqoWjg9EBCMv3nXBkuHqMRfv2y33SzUsuyNh9LFAQQ=="],
- "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="],
-
"node-exports-info": ["node-exports-info@1.6.0", "", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw=="],
"node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="],
diff --git a/lib/components/primitives/sonner.tsx b/lib/components/primitives/sonner.tsx
index 30d08f7..fce13a5 100644
--- a/lib/components/primitives/sonner.tsx
+++ b/lib/components/primitives/sonner.tsx
@@ -7,15 +7,11 @@ import {
OctagonXIcon,
TriangleAlertIcon,
} from "lucide-react";
-import { useTheme } from "next-themes";
import { Toaster as Sonner, type ToasterProps } from "sonner";
const Toaster = ({ ...props }: ToasterProps) => {
- const { theme = "system" } = useTheme();
-
return (