From d331e418d4447545350731b0e0748c23deafe3b5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 3 Mar 2026 18:42:26 +0200 Subject: [PATCH] feat(spreadsheet): support dark mode --- .../src/widgets/type_widgets/Spreadsheet.tsx | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/client/src/widgets/type_widgets/Spreadsheet.tsx b/apps/client/src/widgets/type_widgets/Spreadsheet.tsx index 2237e079ec..c81f5a81d4 100644 --- a/apps/client/src/widgets/type_widgets/Spreadsheet.tsx +++ b/apps/client/src/widgets/type_widgets/Spreadsheet.tsx @@ -3,17 +3,22 @@ import "./Spreadsheet.css"; import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'; import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'; -import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'; +import { createUniver, FUniver, LocaleType, mergeLocales } from '@univerjs/presets'; import { useEffect, useRef } from "preact/hooks"; +import { useColorScheme } from "../react/hooks"; + export default function Spreadsheet() { + const colorScheme = useColorScheme(); + return ( - + ); } -function UniverSpreadsheet() { +function UniverSpreadsheet({ darkMode }: { darkMode: boolean }) { const containerRef = useRef(null); + const apiRef = useRef(); useEffect(() => { if (!containerRef.current) return; @@ -27,13 +32,21 @@ function UniverSpreadsheet() { }, presets: [ UniverSheetsCorePreset({ - container: containerRef.current + container: containerRef.current, }) ] }); + apiRef.current = univerAPI; univerAPI.createWorkbook({}); return () => univerAPI.dispose(); }, []); + // React to dark mode. + useEffect(() => { + const univerAPI = apiRef.current; + if (!univerAPI) return; + univerAPI.toggleDarkMode(darkMode); + }, [ darkMode ]); + return
; }