From 203dfe3f3e519219c68697aeaee7af3fe0322a35 Mon Sep 17 00:00:00 2001 From: Muhammad Fadhil Date: Thu, 28 May 2026 21:07:38 +0700 Subject: [PATCH 1/2] fix(web): duplicate toast containers --- apps/web/src/app.tsx | 13 +++++-------- apps/web/src/components/ui/sonner.tsx | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/apps/web/src/app.tsx b/apps/web/src/app.tsx index c2dda56..35d5c59 100644 --- a/apps/web/src/app.tsx +++ b/apps/web/src/app.tsx @@ -3,15 +3,14 @@ import { RouterProvider } from '@tanstack/react-router'; import { ThemeProvider, useTheme } from 'next-themes'; import { useEffect, useRef } from 'react'; -import { getUserQueryOptions, useGetUser } from './features/auth/api/get-user'; +import { TooltipProvider } from '@/components/ui/tooltip'; -import { useThemeConfig } from './hooks/use-theme-config'; +import { getUserQueryOptions, useGetUser } from '@/features/auth/api/get-user'; -import { queryClient } from './lib/react-query'; -import { type AuthContext, router } from './lib/router'; +import { useThemeConfig } from '@/hooks/use-theme-config'; -import { Toaster } from './components/ui/sonner'; -import { TooltipProvider } from './components/ui/tooltip'; +import { queryClient } from '@/lib/react-query'; +import { type AuthContext, router } from '@/lib/router'; export function App() { return ( @@ -26,8 +25,6 @@ export function App() { - - ); } diff --git a/apps/web/src/components/ui/sonner.tsx b/apps/web/src/components/ui/sonner.tsx index c3beb94..65b6740 100644 --- a/apps/web/src/components/ui/sonner.tsx +++ b/apps/web/src/components/ui/sonner.tsx @@ -1,15 +1,28 @@ import { CheckCircleIcon, InfoIcon, + SpinnerIcon, WarningIcon, - XCircleIcon, - SpinnerIcon + XCircleIcon } from '@phosphor-icons/react'; import { useTheme } from 'next-themes'; import { Toaster as Sonner, type ToasterProps } from 'sonner'; +const lightRichColorVariables = { + '--success-bg': 'var(--color-success-50)', + '--success-text': 'var(--color-success-900)', + '--success-border': 'var(--color-success-200)', + '--info-bg': 'var(--color-info-50)', + '--info-text': 'var(--color-info-900)', + '--info-border': 'var(--color-info-200)', + '--error-bg': 'var(--color-danger-50)', + '--error-text': 'var(--color-danger-900)', + '--error-border': 'var(--color-danger-200)' +} as const; + const Toaster = ({ ...props }: ToasterProps) => { const { theme = 'system' } = useTheme(); + const richColorVariables = theme === 'dark' ? {} : lightRichColorVariables; return ( { '--normal-bg': 'var(--popover)', '--normal-text': 'var(--popover-foreground)', '--normal-border': 'var(--border)', + ...richColorVariables, '--border-radius': 'var(--radius)' } as React.CSSProperties } From e02e0c4796f9e489cf7340b539a5f4993e9df4f3 Mon Sep 17 00:00:00 2001 From: Muhammad Fadhil Date: Thu, 28 May 2026 21:09:04 +0700 Subject: [PATCH 2/2] fix(web): types/api error, remove ThemeProvider from root route, remove unused code --- apps/server/src/index.ts | 4 ---- apps/web/src/routes/__root.tsx | 19 ++++++++----------- apps/web/src/types/api.ts | 4 +--- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index 216f3f9..65ef136 100644 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -5,7 +5,6 @@ import { showRoutes } from 'hono/dev'; import { env } from './lib/env-config.js'; import { logger } from './lib/logger.js'; -// import { browserService } from './services/browser.service.js'; import { browserService } from './services/browser.service.js'; @@ -13,9 +12,6 @@ import app from './app.js'; import { enqueueContentExtraction } from './queues/content-extraction.queue.js'; import contentExtractionWorker from './workers/content-extraction.worker.js'; import csvImportWorker from './workers/csv-import.worker.js'; -// import { enqueueContentExtraction } from './queues/content-extraction.queue.js'; -// import contentExtractionWorker from './workers/content-extraction.worker.js'; -// import csvImportWorker from './workers/csv-import.worker.js'; if (env.isDevelopment) { logger.info('Available routes:'); diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index 8f6f453..f5cc373 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -1,6 +1,5 @@ import { QueryClientProvider } from '@tanstack/react-query'; -import { HeadContent, Outlet, createRootRouteWithContext } from '@tanstack/react-router'; -import { ThemeProvider } from 'next-themes'; +import { createRootRouteWithContext, HeadContent, Outlet } from '@tanstack/react-router'; import { ErrorFallback } from '@/components/common/error'; import { NotFound } from '@/components/common/not-found'; @@ -29,14 +28,12 @@ function RootComponent() { const { queryClient: client } = Route.useRouteContext(); return ( - - - - - - - - - + + + + + + + ); } diff --git a/apps/web/src/types/api.ts b/apps/web/src/types/api.ts index cbed029..ac63636 100644 --- a/apps/web/src/types/api.ts +++ b/apps/web/src/types/api.ts @@ -1,9 +1,7 @@ -import type { HttpStatusCode } from '@/lib/response'; - export interface ApiResult { result: T; message: string; - status: HttpStatusCode; + status: number; } export type BaseEntity = {