feat: dark mode support, markdown descriptions, inline editing on TaskPage
- Full dark mode across TaskPage (header, cards, sidebar, forms) - Task descriptions rendered as markdown (ReactMarkdown + remark-gfm) - Inline description editing with markdown preview - Inline title editing (click to edit) - Theme system (useTheme hook with light/dark/system toggle) - Dark mode classes across remaining components
This commit is contained in:
@@ -3,6 +3,7 @@ import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
|
||||
import { DashboardLayout } from "./components/DashboardLayout";
|
||||
import { LoginPage } from "./components/LoginPage";
|
||||
import { ToastProvider } from "./components/Toast";
|
||||
import { ThemeProvider } from "./hooks/useTheme";
|
||||
import { useSession } from "./lib/auth-client";
|
||||
|
||||
// Lazy-loaded pages for code splitting
|
||||
@@ -50,20 +51,26 @@ function App() {
|
||||
|
||||
if (session.isPending) {
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50 flex items-center justify-center">
|
||||
<div className="min-h-screen bg-gray-50 dark:bg-gray-950 flex items-center justify-center">
|
||||
<div className="text-gray-400">Loading...</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!session.data) {
|
||||
return <LoginPage onSuccess={() => window.location.reload()} />;
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<LoginPage onSuccess={() => window.location.reload()} />
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<ToastProvider>
|
||||
<AuthenticatedApp />
|
||||
</ToastProvider>
|
||||
<ThemeProvider>
|
||||
<ToastProvider>
|
||||
<AuthenticatedApp />
|
||||
</ToastProvider>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user