diff --git a/eslint.config.mjs b/eslint.config.mjs
index c85fb67..d8ee553 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -6,11 +6,16 @@ const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
- baseDirectory: __dirname,
+ baseDirectory: __dirname,
});
const eslintConfig = [
- ...compat.extends("next/core-web-vitals", "next/typescript"),
+ ...compat.extends("next/core-web-vitals", "next/typescript"),
+ {
+ rules: {
+ 'react-hooks/exhaustive-deps': 'off'
+ }
+ }
];
export default eslintConfig;
diff --git a/package-lock.json b/package-lock.json
index 64ad011..7e9bd5a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
- "name": "clipfusion-community",
+ "name": "clipfusion-editor",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "clipfusion-community",
+ "name": "clipfusion-editor",
"version": "1.0.0",
"dependencies": {
"@hookform/resolvers": "^5.1.1",
diff --git a/package.json b/package.json
index 5154f33..12e39a6 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "clipfusion-community",
+ "name": "clipfusion-editor",
"version": "1.0.0",
"private": true,
"scripts": {
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 223ff74..f4d9af5 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,11 +1,10 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import { ReactNode } from "react";
-import { ThemeProvider } from "next-themes";
import { SidebarProvider } from "@/components/ui/sidebar";
import Dashboard from "@/components/dashboard";
import "./globals.css";
-import Providers from "./providers";
+import ThemeProvider from "./theme-provider";
const geist = Geist({
variable: "--font-geist",
@@ -32,14 +31,14 @@ export default function RootLayout({
-
+
{children}
-
+
);
diff --git a/src/app/providers.tsx b/src/app/providers.tsx
deleted file mode 100644
index 43d017e..0000000
--- a/src/app/providers.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-"use client";
-import { ThemeProvider } from "next-themes";
-import { ReactNode } from "react";
-
-const Providers = ({
- children
-}: {
- children: ReactNode
-}): ReactNode => {
- return (
-
- {children}
-
- )
-};
-
-export default Providers;
\ No newline at end of file
diff --git a/src/app/theme-provider.tsx b/src/app/theme-provider.tsx
new file mode 100644
index 0000000..4af23e7
--- /dev/null
+++ b/src/app/theme-provider.tsx
@@ -0,0 +1,13 @@
+"use client";
+import { ThemeProvider as NextThemeProvider } from "next-themes";
+import { ComponentProps, ReactNode } from "react";
+
+const ThemeProvider = (props: ComponentProps): ReactNode => {
+ return (
+
+ {props.children}
+
+ )
+};
+
+export default ThemeProvider;
\ No newline at end of file
diff --git a/src/components/dashboard/Dashboard.tsx b/src/components/dashboard/Dashboard.tsx
index 4bd7bdc..7566d7a 100644
--- a/src/components/dashboard/Dashboard.tsx
+++ b/src/components/dashboard/Dashboard.tsx
@@ -1,19 +1,12 @@
"use client";
-import { FolderOpenIcon, HomeIcon, LucideIcon, PlusIcon, SettingsIcon } from "lucide-react";
-import { useTheme } from "next-themes";
-import { ReactNode, useState, useCallback, useEffect } from "react";
-import { SidebarMenuItem, SidebarMenuButton, SidebarContent, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarHeader, SidebarSeparator, SidebarFooter, Sidebar, SidebarGroupLabel, SidebarGroupAction } from "../ui/sidebar";
+import { FolderOpenIcon, LucideIcon, PlusIcon, SettingsIcon } from "lucide-react";
+import { ReactNode } from "react";
+import { SidebarMenuItem, SidebarMenuButton, SidebarContent, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarHeader, SidebarFooter, Sidebar, SidebarGroupLabel, SidebarGroupAction } from "../ui/sidebar";
import Link from "next/link";
-import Image from "next/image";
-import { Switch } from "../ui/switch";
import { Label } from "../ui/label";
import ClipFusionLogo from "../clipfusion-logo";
-import { Input } from "../ui/input";
-import Search from "../search";
import ThemeSwitcher from "../theme-switcher";
-const WHITESPACE_REGEX = /\s+/g;
-
interface DashboardItem {
title: string;
icon: LucideIcon;
@@ -35,18 +28,6 @@ const items: DashboardItem[] = [
export const Dashboard = (): ReactNode => {
- const { theme, setTheme } = useTheme();
- const [darkModeChecked, setDarkModeChecked] = useState(false);
-
- const darkModeCallback = useCallback((checked: boolean) => {
- setTheme(checked ? "dark" : "light");
- setDarkModeChecked(checked);
- }, []);
-
- useEffect(() => {
- setDarkModeChecked(theme == "dark");
- }, []);
-
return (
diff --git a/src/components/theme-switcher/ThemeSwitcher.tsx b/src/components/theme-switcher/ThemeSwitcher.tsx
index f08f8f3..1e38286 100644
--- a/src/components/theme-switcher/ThemeSwitcher.tsx
+++ b/src/components/theme-switcher/ThemeSwitcher.tsx
@@ -15,11 +15,11 @@ export const ThemeSwitcher = ({
const onThemeChange = useCallback(() => {
setTheme(theme == "dark" ? "light" : "dark");
setDark(!dark);
- }, [theme, dark]);
+ }, [theme, dark, setTheme]);
useEffect(() => {
setDark(theme == "dark");
- }, []);
+ });
return (
diff --git a/src/components/ui/sidebar.tsx b/src/components/ui/sidebar.tsx
index 61805aa..9024b66 100644
--- a/src/components/ui/sidebar.tsx
+++ b/src/components/ui/sidebar.tsx
@@ -3,7 +3,7 @@
import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { cva, VariantProps } from "class-variance-authority"
-import { PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon } from "lucide-react"
+import { PanelLeftCloseIcon, PanelLeftOpenIcon } from "lucide-react"
import { useIsMobile } from "@/hooks/use-mobile"
import { cn } from "@/lib/utils"