diff --git a/package.json b/package.json index 985c979..1f838fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "gerbil", "productName": "Gerbil", - "version": "1.4.0-beta.5", + "version": "1.4.0", "description": "Run Large Language Models locally", "main": "out/main/index.js", "homepage": "./", diff --git a/src/components/App/StatusBar.tsx b/src/components/App/StatusBar.tsx index 574a04b..dd05dd0 100644 --- a/src/components/App/StatusBar.tsx +++ b/src/components/App/StatusBar.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; import { Group, AppShell } from '@mantine/core'; -import { useAppColorScheme } from '@/hooks/useAppColorScheme'; +import { usePreferencesStore } from '@/stores/preferences'; import type { CpuMetrics, MemoryMetrics, @@ -18,7 +18,7 @@ export const StatusBar = ({ maxDataPoints = 60 }: StatusBarProps) => { null ); const [gpuMetrics, setGpuMetrics] = useState(null); - const colorScheme = useAppColorScheme(); + const { resolvedColorScheme: colorScheme } = usePreferencesStore(); useEffect(() => { let isMounted = true; diff --git a/src/components/App/TitleBar.tsx b/src/components/App/TitleBar.tsx index 5152902..c0586f1 100644 --- a/src/components/App/TitleBar.tsx +++ b/src/components/App/TitleBar.tsx @@ -10,12 +10,11 @@ import { import { Minus, Square, X, Copy, Settings } from 'lucide-react'; import { useState, useEffect } from 'react'; import { useLaunchConfigStore } from '@/stores/launchConfig'; -import { useFrontendPreferenceStore } from '@/stores/frontendPreference'; +import { usePreferencesStore } from '@/stores/preferences'; import { getAvailableInterfaceOptions } from '@/utils/interface'; import { useLogoClickSounds } from '@/hooks/useLogoClickSounds'; import { SettingsModal } from '@/components/settings/SettingsModal'; import { UpdateButton } from '@/components/App/UpdateButton'; -import { useAppColorScheme } from '@/hooks/useAppColorScheme'; import icon from '/icon.png'; import { PRODUCT_NAME, TITLEBAR_HEIGHT } from '@/constants'; import type { InterfaceTab, Screen } from '@/types'; @@ -33,14 +32,14 @@ export const TitleBar = ({ onEject, onTabChange, }: TitleBarProps) => { - const colorScheme = useAppColorScheme(); + const { resolvedColorScheme: colorScheme, frontendPreference } = + usePreferencesStore(); const { handleLogoClick, getLogoStyles } = useLogoClickSounds(); const [isMaximized, setIsMaximized] = useState(false); const [isSelectOpen, setIsSelectOpen] = useState(false); const [settingsModalOpen, setSettingsModalOpen] = useState(false); const { isTextMode, isImageGenerationMode } = useLaunchConfigStore(); - const { frontendPreference } = useFrontendPreferenceStore(); const interfaceOptions = getAvailableInterfaceOptions({ frontendPreference, isTextMode, @@ -79,6 +78,7 @@ export const TitleBar = ({ return cleanup; }, []); + return ( diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx index 637a175..9fe7d9b 100644 --- a/src/components/App/index.tsx +++ b/src/components/App/index.tsx @@ -15,7 +15,7 @@ import { ErrorBoundary } from '@/components/App/ErrorBoundary'; import { AppRouter } from '@/components/App/Router'; import { useUpdateChecker } from '@/hooks/useUpdateChecker'; import { useKoboldVersions } from '@/hooks/useKoboldVersions'; -import { useAppColorScheme } from '@/hooks/useAppColorScheme'; +import { usePreferencesStore } from '@/stores/preferences'; import { STATUSBAR_HEIGHT, TITLEBAR_HEIGHT } from '@/constants'; import type { DownloadItem } from '@/types/electron'; import type { InterfaceTab, Screen } from '@/types'; @@ -28,7 +28,7 @@ export const App = () => { const [ejectConfirmModalOpen, setEjectConfirmModalOpen] = useState(false); const isInterfaceScreen = currentScreen === 'interface'; - const appColorScheme = useAppColorScheme(); + const { resolvedColorScheme: appColorScheme } = usePreferencesStore(); const { setColorScheme } = useMantineColorScheme(); useEffect(() => { diff --git a/src/components/DownloadCard.tsx b/src/components/DownloadCard.tsx index f30c49e..45e3230 100644 --- a/src/components/DownloadCard.tsx +++ b/src/components/DownloadCard.tsx @@ -12,7 +12,7 @@ import { import { Download } from 'lucide-react'; import { MouseEvent } from 'react'; import { pretifyBinName, isWindowsROCmBuild } from '@/utils/assets'; -import { useAppColorScheme } from '@/hooks/useAppColorScheme'; +import { usePreferencesStore } from '@/stores/preferences'; interface DownloadCardProps { name: string; @@ -47,7 +47,7 @@ export const DownloadCard = ({ onMakeCurrent, onUpdate, }: DownloadCardProps) => { - const colorScheme = useAppColorScheme(); + const { resolvedColorScheme: colorScheme } = usePreferencesStore(); const renderActionButtons = () => { const buttons = []; diff --git a/src/components/screens/Interface/ServerTab.tsx b/src/components/screens/Interface/ServerTab.tsx index a700540..c0ecfe4 100644 --- a/src/components/screens/Interface/ServerTab.tsx +++ b/src/components/screens/Interface/ServerTab.tsx @@ -1,7 +1,7 @@ import { Box, Text, Stack } from '@mantine/core'; import { useMemo } from 'react'; import { useLaunchConfigStore } from '@/stores/launchConfig'; -import { useFrontendPreferenceStore } from '@/stores/frontendPreference'; +import { usePreferencesStore } from '@/stores/preferences'; import { getServerInterfaceInfo } from '@/utils/interface'; import { TITLEBAR_HEIGHT, STATUSBAR_HEIGHT } from '@/constants'; @@ -17,7 +17,7 @@ export const ServerTab = ({ activeTab, }: ServerTabProps) => { const { isImageGenerationMode } = useLaunchConfigStore(); - const { frontendPreference } = useFrontendPreferenceStore(); + const { frontendPreference } = usePreferencesStore(); const effectiveImageMode = activeTab === 'chat-image' diff --git a/src/components/screens/Interface/TerminalTab.tsx b/src/components/screens/Interface/TerminalTab.tsx index 0f64869..ab850c6 100644 --- a/src/components/screens/Interface/TerminalTab.tsx +++ b/src/components/screens/Interface/TerminalTab.tsx @@ -14,8 +14,7 @@ import { } from '@/constants'; import { handleTerminalOutput, processTerminalContent } from '@/utils/terminal'; import { useLaunchConfigStore } from '@/stores/launchConfig'; -import { useFrontendPreferenceStore } from '@/stores/frontendPreference'; -import { useAppColorScheme } from '@/hooks/useAppColorScheme'; +import { usePreferencesStore } from '@/stores/preferences'; interface TerminalTabProps { onServerReady: (url: string) => void; @@ -28,8 +27,8 @@ export interface TerminalTabRef { export const TerminalTab = forwardRef( ({ onServerReady }, ref) => { const { host, port, isImageGenerationMode } = useLaunchConfigStore(); - const { frontendPreference } = useFrontendPreferenceStore(); - const colorScheme = useAppColorScheme(); + const { frontendPreference, resolvedColorScheme: colorScheme } = + usePreferencesStore(); const [terminalContent, setTerminalContent] = useState(''); const [isUserScrolling, setIsUserScrolling] = useState(false); const [shouldAutoScroll, setShouldAutoScroll] = useState(true); diff --git a/src/components/screens/Interface/index.tsx b/src/components/screens/Interface/index.tsx index 985f935..ed53a16 100644 --- a/src/components/screens/Interface/index.tsx +++ b/src/components/screens/Interface/index.tsx @@ -5,7 +5,7 @@ import { type TerminalTabRef, } from '@/components/screens/Interface/TerminalTab'; import { useLaunchConfigStore } from '@/stores/launchConfig'; -import { useFrontendPreferenceStore } from '@/stores/frontendPreference'; +import { usePreferencesStore } from '@/stores/preferences'; import { getDefaultInterfaceTab } from '@/utils/interface'; import type { InterfaceTab } from '@/types'; @@ -23,7 +23,7 @@ export const InterfaceScreen = ({ const terminalTabRef = useRef(null); const { isTextMode, isImageGenerationMode } = useLaunchConfigStore(); - const { frontendPreference } = useFrontendPreferenceStore(); + const { frontendPreference } = usePreferencesStore(); const defaultInterfaceTab = useMemo( () => diff --git a/src/components/screens/Launch/AdvancedTab.tsx b/src/components/screens/Launch/AdvancedTab.tsx index 915542a..4dc45c4 100644 --- a/src/components/screens/Launch/AdvancedTab.tsx +++ b/src/components/screens/Launch/AdvancedTab.tsx @@ -207,7 +207,7 @@ export const AdvancedTab = () => {
- + Additional arguments diff --git a/src/components/screens/Launch/index.tsx b/src/components/screens/Launch/index.tsx index 50ebda7..85e7ef9 100644 --- a/src/components/screens/Launch/index.tsx +++ b/src/components/screens/Launch/index.tsx @@ -298,14 +298,14 @@ export const LaunchScreen = ({ onLaunch }: LaunchScreenProps) => { onChange={setActiveTab} styles={{ root: { - maxHeight: '59vh', + maxHeight: '54vh', display: 'flex', flexDirection: 'column', }, panel: { flex: 1, overflow: 'auto', - paddingTop: '1rem', + paddingTop: '0.75rem', paddingRight: '0.5rem', }, }} diff --git a/src/components/settings/AboutTab.tsx b/src/components/settings/AboutTab.tsx index 95a0d11..accf995 100644 --- a/src/components/settings/AboutTab.tsx +++ b/src/components/settings/AboutTab.tsx @@ -111,7 +111,7 @@ export const AboutTab = () => {