From b12e954f4f32260f1a28fa924760bc1b92eaf0ec Mon Sep 17 00:00:00 2001 From: ameer2468 <33054370+ameer2468@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:25:46 +0300 Subject: [PATCH] [ENG-640, ENG-695, ENG-705, ENG-693] Categories arrow buttons + others (#851) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Overview categories arrow buttons * Hide indexer rules in location + category arrow buttons * Added masking on left and right of categories * Expose lock_app_theme function to frontend * Allow lockAppTheme to reset back to auto theme * Fixes, progress bar color, useTheme update, shrink-0 for arrow button * Only show fadeout if scrolled, onboarding css tweaks * Framer hook unstable, motion divs to handle last category entry is much better * Fix color picker closing * Remove ref that is no longer needed * Fix swift theme updating * cleanup * Overview categories arrow buttons and fixes Added masking on left and right of categories [HOTFIX] Remove placeholder nodes (#913) Update LibrarySection.tsx [ENG-694] Remove Spacedrop (#914) * goodbye Spacedrop * fix startup error escaping * fix error fallback being cringe with long error * backwards compatibility for early adopters [ENG-697] Fix rename library (#916) * random stuff * How have we had a deadlock for 2 months lol [ENG-701] Add explorer top bar options to tags (#918) Add top bar options [ENG-679] Reserve ids for built in indexer rules (#909) * indexer rules pub ids * should work? * better migrator * errors * debugging * maybe? * double migrate * please * maybe fix? * update lockfile * SD_ACCEPT_DATA_LOSS message * put tracing back * dumb * fix system indexer rule ui fix(interface): quick preview not closing with SPACE (#921) Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com> [ENG-700] Add empty notice to tags (#922) Add empty notice to tags [ENG-707] Fix list item bg color (#924) Fix list item bg color [ENG-706] Add deselect explorer view items (#923) Add deselect Expose lock_app_theme function to frontend Allow lockAppTheme to reset back to auto theme Fixes, progress bar color, useTheme update, shrink-0 for arrow button Only show fadeout if scrolled, onboarding css tweaks Framer hook unstable, motion divs to handle last category entry is much better Fix color picker closing Remove ref that is no longer needed Fix swift theme updating * cleanup * Update pnpm-lock.yaml * fix types & upgrade typescript version to 5.0.4 * fix folder icon * remove rust comment * remove mask * masking tweak --------- Co-authored-by: VĂ­tor Vasconcellos Co-authored-by: nikec Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com> --- .editorconfig | 6 + .../crates/macos/src-swift/window.swift | 98 +++++++++-------- apps/desktop/package.json | 2 +- apps/desktop/src-tauri/src/main.rs | 5 +- apps/desktop/src-tauri/src/theme.rs | 19 ++++ apps/desktop/src/App.tsx | 4 +- apps/desktop/src/commands.ts | 5 + apps/landing/src/env.ts | 2 +- apps/storybook/package.json | 2 +- apps/web/package.json | 2 +- .../app/$libraryId/overview/Categories.tsx | 103 +++++++++++++++--- interface/app/$libraryId/settings/Setting.tsx | 12 +- .../$libraryId/settings/client/appearance.tsx | 76 +++++++------ .../library/locations/AddLocationDialog.tsx | 45 ++++++-- .../settings/library/locations/ListItem.tsx | 2 +- interface/app/onboarding/Layout.tsx | 2 +- interface/app/onboarding/alpha.tsx | 74 +++++++------ interface/hooks/useTheme.ts | 10 +- interface/util/Platform.tsx | 1 + package.json | 16 +-- packages/client/package.json | 2 +- packages/ui/package.json | 4 +- packages/ui/src/ProgressBar.tsx | 2 +- packages/ui/src/Tooltip.tsx | 4 +- packages/ui/src/forms/Form.tsx | 15 +-- pnpm-lock.yaml | Bin 903670 -> 899095 bytes 26 files changed, 343 insertions(+), 170 deletions(-) create mode 100644 apps/desktop/src-tauri/src/theme.rs diff --git a/.editorconfig b/.editorconfig index 6c6e1ddc2..8549c42f9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -82,3 +82,9 @@ indent_style = space [*.{ps1,psd1,psm1}] indent_size = 4 indent_style = space + +# Swift +# https://github.com/apple/swift-format/blob/main/Documentation/Configuration.md#example +[*.swift] +indent_size = 2 +indent_style = space diff --git a/apps/desktop/crates/macos/src-swift/window.swift b/apps/desktop/crates/macos/src-swift/window.swift index 9fcd4fe25..bfcb4a406 100644 --- a/apps/desktop/crates/macos/src-swift/window.swift +++ b/apps/desktop/crates/macos/src-swift/window.swift @@ -2,66 +2,76 @@ import AppKit @objc public enum AppThemeType: Int { - case light = 0; - case dark = 1; + case auto = -1 + case light = 0 + case dark = 1 } @_cdecl("lock_app_theme") public func lockAppTheme(themeType: AppThemeType) { - var theme: NSAppearance; - - switch themeType { - case .dark: - theme = NSAppearance(named: .darkAqua)!; - case .light: - theme = NSAppearance(named: .aqua)!; + var theme: NSAppearance? + switch themeType { + case .auto: + theme = nil + case .dark: + theme = NSAppearance(named: .darkAqua)! + case .light: + theme = NSAppearance(named: .aqua)! + } + + DispatchQueue.main.async { + NSApp.appearance = theme + + // Trigger a repaint of the window + if let window = NSApplication.shared.mainWindow { + window.invalidateShadow() + window.displayIfNeeded() } - - NSApp.appearance = theme; + } } @_cdecl("blur_window_background") public func blurWindowBackground(window: NSWindow) { - let windowContent = window.contentView!; - let blurryView = NSVisualEffectView(); + let windowContent = window.contentView! + let blurryView = NSVisualEffectView() - blurryView.material = .sidebar; - blurryView.state = .followsWindowActiveState; - blurryView.blendingMode = .behindWindow; - blurryView.wantsLayer = true; + blurryView.material = .sidebar + blurryView.state = .followsWindowActiveState + blurryView.blendingMode = .behindWindow + blurryView.wantsLayer = true - window.contentView = blurryView; - blurryView.addSubview(windowContent); + window.contentView = blurryView + blurryView.addSubview(windowContent) } func setInvisibleToolbar(windowPtr: NSWindow, hasToolbar: Bool) { - let window = windowPtr; - - if !hasToolbar { - window.toolbar = nil; - return; - } - - let toolbar = NSToolbar(identifier: "window_invisible_toolbar"); - - toolbar.showsBaselineSeparator = false; - window.toolbar = toolbar; + let window = windowPtr + + if !hasToolbar { + window.toolbar = nil + return + } + + let toolbar = NSToolbar(identifier: "window_invisible_toolbar") + + toolbar.showsBaselineSeparator = false + window.toolbar = toolbar } @_cdecl("set_titlebar_style") public func setTitlebarStyle(window: NSWindow, transparent: Bool, large: Bool) { - var styleMask = window.styleMask; - - if transparent && large { - styleMask.insert(.unifiedTitleAndToolbar); - } - - window.styleMask = styleMask; - - if large { - setInvisibleToolbar(windowPtr: window, hasToolbar: true); - } - - window.titleVisibility = transparent ? .hidden : .visible; - window.titlebarAppearsTransparent = transparent; + var styleMask = window.styleMask + + if transparent && large { + styleMask.insert(.unifiedTitleAndToolbar) + } + + window.styleMask = styleMask + + if large { + setInvisibleToolbar(windowPtr: window, hasToolbar: true) + } + + window.titleVisibility = transparent ? .hidden : .visible + window.titlebarAppearsTransparent = transparent } diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 80070a9a4..4902e288e 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -37,7 +37,7 @@ "react-devtools": "^4.27.2", "sass": "^1.55.0", "semver": "^7.5.0", - "typescript": "^4.8.4", + "typescript": "^5.0.4", "vite": "^4.0.4", "vite-plugin-svgr": "^2.2.1", "vite-tsconfig-paths": "^4.0.3" diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index fb1b2f754..6b4e44b7f 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -17,6 +17,8 @@ use tracing::{debug, error}; #[cfg(target_os = "linux")] mod app_linux; +mod theme; + mod file; mod menu; @@ -161,7 +163,8 @@ async fn main() -> tauri::Result<()> { open_logs_dir, file::open_file_path, file::get_file_path_open_with_apps, - file::open_file_path_with + file::open_file_path_with, + theme::lock_app_theme ]) .build(tauri::generate_context!())?; diff --git a/apps/desktop/src-tauri/src/theme.rs b/apps/desktop/src-tauri/src/theme.rs new file mode 100644 index 000000000..d79ef31e3 --- /dev/null +++ b/apps/desktop/src-tauri/src/theme.rs @@ -0,0 +1,19 @@ +use serde::Deserialize; +use specta::Type; + +#[derive(Type, Deserialize, Clone, Copy, Debug)] +pub enum AppThemeType { + Auto = -1, + Light = 0, + Dark = 1, +} + +#[tauri::command(async)] +#[specta::specta] +pub async fn lock_app_theme(theme_type: AppThemeType) { + #[cfg(target_os = "macos")] + unsafe { + sd_desktop_macos::lock_app_theme(theme_type as isize); + } + // println!("Lock theme, type: {theme_type:?}") +} diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index bee433395..86ac1c2ad 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -20,6 +20,7 @@ import '@sd/ui/style'; import { appReady, getFilePathOpenWithApps, + lockAppTheme, openFilePath, openFilePathWith, openLogsDir @@ -80,7 +81,8 @@ const platform: Platform = { openLogsDir, openFilePath, getFilePathOpenWithApps, - openFilePathWith + openFilePathWith, + lockAppTheme }; const queryClient = new QueryClient(); diff --git a/apps/desktop/src/commands.ts b/apps/desktop/src/commands.ts index 5a7ad16f2..9184d74cf 100644 --- a/apps/desktop/src/commands.ts +++ b/apps/desktop/src/commands.ts @@ -34,5 +34,10 @@ export function openFilePathWith(library: string, id: number, withUrl: string) { return invoke()("open_file_path_with", { library,id,withUrl }) } +export function lockAppTheme(themeType: AppThemeType) { + return invoke()("lock_app_theme", { themeType }) +} + export type OpenWithApplication = { name: string; url: string } export type OpenFilePathResult = { t: "NoLibrary" } | { t: "NoFile" } | { t: "OpenError"; c: string } | { t: "AllGood" } +export type AppThemeType = "Auto" | "Light" | "Dark" diff --git a/apps/landing/src/env.ts b/apps/landing/src/env.ts index fc00ef86c..305b7adce 100644 --- a/apps/landing/src/env.ts +++ b/apps/landing/src/env.ts @@ -28,4 +28,4 @@ export const env = createEnv({ // In dev or in eslint disable checking. // Kinda sucks for in dev but you don't need the whole setup to change the docs. skipValidation: process.env.VERCEL !== '1' -}); \ No newline at end of file +}); diff --git a/apps/storybook/package.json b/apps/storybook/package.json index c25f36db3..6e1551fd8 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -28,7 +28,7 @@ "prop-types": "^15.8.1", "storybook": "^7.0.5", "tailwindcss": "^3.3.2", - "typescript": "^4.9.3", + "typescript": "^5.0.4", "vite": "^4.2.0" } } diff --git a/apps/web/package.json b/apps/web/package.json index 5f099d02a..30fa52d00 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -29,7 +29,7 @@ "autoprefixer": "^10.4.12", "postcss": "^8.4.17", "rollup-plugin-visualizer": "^5.9.0", - "typescript": "^4.8.4", + "typescript": "^5.0.4", "vite": "^4.0.4", "vite-plugin-html": "^3.2.0", "vite-plugin-svgr": "^2.2.1", diff --git a/interface/app/$libraryId/overview/Categories.tsx b/interface/app/$libraryId/overview/Categories.tsx index 3605988c9..0abae4b11 100644 --- a/interface/app/$libraryId/overview/Categories.tsx +++ b/interface/app/$libraryId/overview/Categories.tsx @@ -1,4 +1,8 @@ import { getIcon } from '@sd/assets/util'; +import clsx from 'clsx'; +import { motion } from 'framer-motion'; +import { ArrowLeft, ArrowRight } from 'phosphor-react'; +import { useEffect, useRef, useState } from 'react'; import { Category, useLibraryQuery } from '@sd/client'; import { useIsDark } from '~/hooks'; import CategoryButton from './CategoryButton'; @@ -27,24 +31,91 @@ const CategoryList = [ export const Categories = (props: { selected: Category; onSelectedChanged(c: Category): void }) => { const categories = useLibraryQuery(['categories.list']); const isDark = useIsDark(); + const [scroll, setScroll] = useState(0); + const ref = useRef(null); + const [lastCategoryVisible, setLastCategoryVisible] = useState(false); + + useEffect(() => { + const element = ref.current; + if (!element) return; + const handler = () => { + setScroll(element.scrollLeft); + }; + element.addEventListener('scroll', handler); + return () => { + element.removeEventListener('scroll', handler); + }; + }, []); + + const handleArrowOnClick = (direction: 'right' | 'left') => { + const element = ref.current; + if (!element) return; + + element.scrollTo({ + left: direction === 'left' ? element.scrollLeft + 200 : element.scrollLeft - 200, + behavior: 'smooth' + }); + }; + + const lastCategoryVisibleHandler = (index: number) => { + index === CategoryList.length - 1 && setLastCategoryVisible((prev) => !prev); + }; return ( -
- {categories.data && - CategoryList.map((category) => { - const iconString = IconForCategory[category] || 'Document'; - - return ( - props.onSelectedChanged(category)} - /> - ); - })} +
+
handleArrowOnClick('right')} + className={clsx( + scroll > 0 + ? 'cursor-pointer bg-app/50 opacity-100 hover:opacity-95' + : 'pointer-events-none', + 'sticky left-[43px] z-40 mt-4 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-app-line bg-app p-2 opacity-0 backdrop-blur-md transition-all duration-200' + )} + > + +
+
0 ? '10%' : '0%' + }, rgba(0, 0, 0, 1) ${lastCategoryVisible ? '95%' : '90%'}, transparent 95%)` + }} + > + {categories.data && + CategoryList.map((category, index) => { + const iconString = IconForCategory[category] || 'Document'; + return ( + lastCategoryVisibleHandler(index)} + onViewportLeave={() => lastCategoryVisibleHandler(index)} + viewport={{ root: ref, margin: '0 -120px 0 0' }} + className="min-w-fit" + key={category} + > + props.onSelectedChanged(category)} + /> + + ); + })} +
+
handleArrowOnClick('left')} + className={clsx( + lastCategoryVisible + ? 'pointer-events-none opacity-0 hover:opacity-0' + : 'hover:opacity-95', + 'sticky right-[45px] z-40 mt-4 flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full border border-app-line bg-app/50 p-2 backdrop-blur-md transition-all duration-200' + )} + > + +
); }; diff --git a/interface/app/$libraryId/settings/Setting.tsx b/interface/app/$libraryId/settings/Setting.tsx index fd2f81c8c..7f8a9fd0d 100644 --- a/interface/app/$libraryId/settings/Setting.tsx +++ b/interface/app/$libraryId/settings/Setting.tsx @@ -1,18 +1,28 @@ import clsx from 'clsx'; +import { Info } from 'phosphor-react'; import { PropsWithChildren } from 'react'; +import { Tooltip } from '@sd/ui'; interface Props { title: string; description?: string; mini?: boolean; className?: string; + toolTipLabel?: string | boolean; } export default ({ mini, ...props }: PropsWithChildren) => { return (
-

{props.title}

+
+

{props.title}

+ {props.toolTipLabel && ( + + + + )} +
{!!props.description && (

{props.description}

)} diff --git a/interface/app/$libraryId/settings/client/appearance.tsx b/interface/app/$libraryId/settings/client/appearance.tsx index 791e5b796..34ddc2488 100644 --- a/interface/app/$libraryId/settings/client/appearance.tsx +++ b/interface/app/$libraryId/settings/client/appearance.tsx @@ -1,11 +1,12 @@ import clsx from 'clsx'; -import { ArrowClockwise, CheckCircle } from 'phosphor-react'; -import { useEffect } from 'react'; +import { useMotionValueEvent, useScroll } from 'framer-motion'; +import { CheckCircle } from 'phosphor-react'; +import { useEffect, useRef } from 'react'; import { useState } from 'react'; import { getThemeStore, useThemeStore } from '@sd/client'; import { Themes } from '@sd/client'; -import { Button, Divider, Slider, forms } from '@sd/ui'; -import { InfoText } from '@sd/ui/src/forms'; +import { Button, Slider, forms } from '@sd/ui'; +import { usePlatform } from '~/util/Platform'; import { Heading } from '../Layout'; import Setting from '../Setting'; @@ -56,10 +57,20 @@ const themes: Theme[] = [ ]; export const Component = () => { + const { lockAppTheme } = usePlatform(); const themeStore = useThemeStore(); const [selectedTheme, setSelectedTheme] = useState( themeStore.syncThemeWithSystem === true ? 'system' : themeStore.theme ); + const themesRef = useRef(null); + const [themeScroll, setThemeScroll] = useState(0); + const { scrollX } = useScroll({ + container: themesRef + }); + useMotionValueEvent(scrollX, 'change', (latest) => { + setThemeScroll(latest); + }); + const form = useZodForm({ schema }); @@ -70,12 +81,15 @@ export const Component = () => { useEffect(() => { const subscription = form.watch(() => onSubmit()); - return () => subscription.unsubscribe(); + return () => { + subscription.unsubscribe(); + }; }, [form, onSubmit]); const themeSelectHandler = (theme: Theme['themeValue']) => { setSelectedTheme(theme); if (theme === 'system') { + lockAppTheme?.('Auto'); getThemeStore().syncThemeWithSystem = true; } else if (theme === 'vanilla') { getThemeStore().syncThemeWithSystem = false; @@ -96,7 +110,6 @@ export const Component = () => { document.documentElement.style.setProperty('--dark-hue', hue.toString()); } }; - return ( <>
@@ -106,19 +119,12 @@ export const Component = () => { rightArea={
} /> -
+
0 ? '2%' : '200' //Only show fade if scrolled + }) 0%, rgba(0, 0, 0, 1) 85%, transparent 100%)` + }} + ref={themesRef} + className="explorer-scroll relative mb-5 mt-8 flex h-[150px] gap-5 overflow-x-scroll pr-[20px] md:w-[300px] lg:w-full" + > {themes.map((theme, i) => { return (
themeSelectHandler(theme.themeValue)} className={clsx( selectedTheme !== theme.themeValue && 'opacity-70', - 'transition-all duration-200 hover:translate-y-[-3.5px]' + 'h-[100px] transition-all duration-200 hover:translate-y-[3.5px] lg:first:ml-0 ' )} key={i} > @@ -152,7 +166,15 @@ export const Component = () => { ); })}
- +
{
- {themeStore.theme === 'vanilla' && ( -

- Hue color changes visible in dark mode only -

- )} +
)}
-

{props.themeName}

+

{props.themeName}

); } @@ -232,15 +250,11 @@ function Theme(props: ThemeProps) { function SystemTheme(props: ThemeProps) { return (
-
+
-
+
{props.isSelected && ( diff --git a/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx b/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx index 949ba22e6..e132c8cef 100644 --- a/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx +++ b/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; -import { useCallback, useEffect, useMemo } from 'react'; +import { CaretDown } from 'phosphor-react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { Controller, get } from 'react-hook-form'; import { useDebouncedCallback } from 'use-debounce'; import { @@ -65,6 +66,7 @@ export const AddLocationDialog = ({ const relinkLocation = useLibraryMutation('locations.relink'); const listIndexerRules = useLibraryQuery(['locations.indexer_rules.list']); const addLocationToLibrary = useLibraryMutation('locations.addLibrary'); + const [toggleSettings, setToggleSettings] = useState(false); // This is required because indexRules is undefined on first render const indexerRulesIds = useMemo( @@ -147,6 +149,7 @@ export const AddLocationDialog = ({ [form] ); + // eslint-disable-next-line react-hooks/exhaustive-deps useCallbackToWatchForm( useDebouncedCallback(async (values, { name }) => { if (name === 'path') { @@ -222,19 +225,37 @@ export const AddLocationDialog = ({ - ( - +
setToggleSettings((t) => !t)} + className="flex items-center justify-between px-3 py-2" + > +

Advanced settings

+ +
+ {toggleSettings && ( +
+ ( + + )} + control={form.control} + /> +
)} - control={form.control} - /> +
); }; diff --git a/interface/app/$libraryId/settings/library/locations/ListItem.tsx b/interface/app/$libraryId/settings/library/locations/ListItem.tsx index 8c13cfca1..15fd00973 100644 --- a/interface/app/$libraryId/settings/library/locations/ListItem.tsx +++ b/interface/app/$libraryId/settings/library/locations/ListItem.tsx @@ -29,7 +29,7 @@ export default ({ location }: Props) => { navigate(`${location.id}`); }} > - +

{location.name}

diff --git a/interface/app/onboarding/Layout.tsx b/interface/app/onboarding/Layout.tsx index ebcc71f2e..fbbb4b371 100644 --- a/interface/app/onboarding/Layout.tsx +++ b/interface/app/onboarding/Layout.tsx @@ -53,7 +53,7 @@ export const Component = () => { )} > -

+
diff --git a/interface/app/onboarding/alpha.tsx b/interface/app/onboarding/alpha.tsx index a2a977cc5..313a9a1e1 100644 --- a/interface/app/onboarding/alpha.tsx +++ b/interface/app/onboarding/alpha.tsx @@ -10,40 +10,46 @@ export default function OnboardingAlpha() { const platform = usePlatform(); return ( - Alpha Background -
-
- Spacedrive -

Spacedrive

-
-

Alpha Release

-

- We are delighted to announce the release of Spacedrive's alpha version, - showcasing exciting new features. As with any initial release, this version may - contain some bugs. We cannot guarantee that your data will stay intact. We - kindly request your assistance in reporting any issues you encounter on our - Discord channel. Your valuable feedback will greatly contribute to enhancing the - user experience. -

-
- - +
+ Alpha Background +
+
+ Spacedrive +

Spacedrive

+
+

Alpha Release

+

+ We are delighted to announce the release of Spacedrive's alpha version, + showcasing exciting new features. As with any initial release, this version + may contain some bugs. We cannot guarantee that your data will stay intact. + We kindly request your assistance in reporting any issues you encounter on + our Discord channel. Your valuable feedback will greatly contribute to + enhancing the user experience. +

+
+ + +
diff --git a/interface/hooks/useTheme.ts b/interface/hooks/useTheme.ts index 29604806a..3026f15f3 100644 --- a/interface/hooks/useTheme.ts +++ b/interface/hooks/useTheme.ts @@ -1,13 +1,16 @@ import { useThemeStore, getThemeStore } from '@sd/client'; import { useEffect } from 'react'; +import { usePlatform } from '..'; export function useTheme() { const themeStore = useThemeStore(); + const { lockAppTheme } = usePlatform(); const systemTheme = window.matchMedia('(prefers-color-scheme: dark)'); useEffect(() => { const handleThemeChange = () => { if (themeStore.syncThemeWithSystem) { + lockAppTheme?.('Auto'); if (systemTheme.matches) { document.documentElement.classList.remove('vanilla-theme'); document.documentElement.style.setProperty('--dark-hue', getThemeStore().hueValue.toString()); @@ -21,20 +24,21 @@ export function useTheme() { if (themeStore.theme === 'dark') { document.documentElement.classList.remove('vanilla-theme'); document.documentElement.style.setProperty('--dark-hue', getThemeStore().hueValue.toString()); + lockAppTheme?.('Dark'); } else if (themeStore.theme === 'vanilla') { document.documentElement.classList.add('vanilla-theme'); document.documentElement.style.setProperty('--light-hue', getThemeStore().hueValue.toString()); - + lockAppTheme?.('Light'); } } }; - handleThemeChange(); + handleThemeChange(); systemTheme.addEventListener('change', handleThemeChange); return () => { systemTheme.removeEventListener('change', handleThemeChange); }; - }, [themeStore, systemTheme]); + }, [themeStore, lockAppTheme, systemTheme]); } diff --git a/interface/util/Platform.tsx b/interface/util/Platform.tsx index 430d85c59..13cfc444e 100644 --- a/interface/util/Platform.tsx +++ b/interface/util/Platform.tsx @@ -26,6 +26,7 @@ export type Platform = { openFilePath?(library: string, id: number): any; getFilePathOpenWithApps?(library: string, id: number): any; openFilePathWith?(library: string, id: number, appUrl: string): any; + lockAppTheme?(themeType: 'Auto' | 'Light' | 'Dark'): any; }; // Keep this private and use through helpers below diff --git a/package.json b/package.json index a2532dfd5..6e7a2ced4 100644 --- a/package.json +++ b/package.json @@ -31,19 +31,19 @@ } }, "devDependencies": { - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", "@cspell/dict-rust": "^2.0.1", "@cspell/dict-typescript": "^2.0.2", - "@storybook/react-vite": "^7.0.5", + "@storybook/react-vite": "^7.0.20", "@trivago/prettier-plugin-sort-imports": "^4.1.1", - "cspell": "^6.12.0", - "prettier": "^2.8.7", - "prettier-plugin-tailwindcss": "^0.2.6", + "cspell": "^6.31.1", + "prettier": "^2.8.8", + "prettier-plugin-tailwindcss": "^0.2.8", "rimraf": "^4.4.1", - "turbo": "^1.9.9", + "turbo": "^1.10.2", "turbo-ignore": "^0.3.0", - "typescript": "^4.9.4", - "vite": "^4.3.8" + "typescript": "^5.0.4", + "vite": "^4.3.9" }, "overrides": { "vite-plugin-svgr": "https://github.com/spacedriveapp/vite-plugin-svgr#cb4195b69849429cdb18d1f12381676bf9196a84", diff --git a/packages/client/package.json b/packages/client/package.json index c6d4a5b01..3b2fecb52 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -29,7 +29,7 @@ "@types/react": "^18.0.21", "scripts": "*", "tsconfig": "*", - "typescript": "^4.8.4" + "typescript": "^5.0.4" }, "peerDependencies": { "react": "^18.2.0" diff --git a/packages/ui/package.json b/packages/ui/package.json index ed1cd8d9f..5a029ef86 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -24,9 +24,9 @@ "@hookform/resolvers": "^3.1.0", "@radix-ui/react-checkbox": "^1.0.3", "@radix-ui/react-context-menu": "^1.0.0", - "@radix-ui/react-dialog": "^1.0.0", + "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-dropdown-menu": "^1.0.0", - "@radix-ui/react-popover": "^1.0.3", + "@radix-ui/react-popover": "^1.0.6", "@radix-ui/react-radio-group": "^1.1.0", "@radix-ui/react-select": "^1.1.2", "@radix-ui/react-switch": "^1.0.1", diff --git a/packages/ui/src/ProgressBar.tsx b/packages/ui/src/ProgressBar.tsx index e488d6906..373e48a7d 100644 --- a/packages/ui/src/ProgressBar.tsx +++ b/packages/ui/src/ProgressBar.tsx @@ -12,7 +12,7 @@ export const ProgressBar = memo((props: ProgressBarProps) => { return ( - + {label} diff --git a/packages/ui/src/forms/Form.tsx b/packages/ui/src/forms/Form.tsx index db81833b2..7702b17f6 100644 --- a/packages/ui/src/forms/Form.tsx +++ b/packages/ui/src/forms/Form.tsx @@ -1,7 +1,7 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { animated, useTransition } from '@react-spring/web'; import { VariantProps, cva } from 'class-variance-authority'; -import clsx from 'clsx'; +import { Warning } from 'phosphor-react'; import { ComponentProps } from 'react'; import { FieldErrors, @@ -69,13 +69,13 @@ export const useZodForm = {transitions((styles, error) => { const message = error?.message; return typeof message === 'string' ? ( - - {message} - + + +

{message}

+
) : null; })} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 80ebcb9cac24c19272d8a2ef398660425451d09c..d21b199c4f72a25fcdae9922e40f62eb1ca459e2 100644 GIT binary patch delta 69292 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ⅇ!|PGIjZ8eLR&u6Ec6`(rz;5-w&4S z-~H_Pt2aM7k$NYj$~_9?lC@zA{PsYh*Fs<%OCw?4?To?>pzbnU&JF?$p|exdA^|Nk zF16beh+Sa>RmG8RPa|iZY|$>{`Hei7OlhnsO)+U<4CCRSBu{OwyE^sx!_W)p?;Qc0 z(mJh(a(^Al@@UC8Jc0KnSp{eTU2wFGyL=c(`P|&y!rhuqGdr9U^@5q7Rntljww^j2 zus%;#1OP>M=ia(s<7Kfp*b*vV7ytUTscYg7ML^s!e4x~(`Ee+i{41$1K-~O^kEE`PKk=(6AiVmO z)a{oXgyEkqr*`Op#S@8}_ax$XS5jZ!0ugpm`rqPHfPugF>p*Syy=Lmf=DUs5YtDx7 znHF4xJ0U#ZJ_{+>d`n1u@a!$0@9ZCcyOb*KAOFv!)Gu8HP+TaaHcS0+{Fip>M7((p zIM|&jENeUJ_RTc)>OGYk-112X0VA9DS*d@2Xm>Ss=Ba15=VBmaKf?xnmz%mWnSEXU zb=WPdEzc`ZM}76;+ctmeq>k)41s|567|z4*J#@!DS03(v&G{vr;-|-{bo@y-_4GA+ zuKP2yWc#=~fNuY+ym$X!NVb_>4Wvk?ywq<3q9gv$A;{YQlT}LIz0^+9p&JjqR-#5w zi+#Ngd~V+Mc(z@yG(rdC zyY|!fq|o^1o#V$Lry+IO324GCGZiX+=He%=IC|SZ>igZD`b#KJ|CZFPzv#vA|)d3CKb!Oh&w`2b9Z;`s>8zm+nnHayowaK_J?riyQ;m zkGFF;GoR