Save last used tab of sidebar in global settings

This commit is contained in:
chrox
2024-11-10 19:06:13 +01:00
parent bd908f0929
commit a059396008
4 changed files with 15 additions and 5 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "Readest",
"version": "0.5.1",
"version": "0.5.5",
"identifier": "com.bilingify.digest",
"build": {
"frontendDist": "../out",
@@ -1,6 +1,7 @@
import clsx from 'clsx';
import React, { useState, useEffect } from 'react';
import { useEnv } from '@/context/EnvContext';
import { useReaderStore } from '@/store/readerStore';
import SidebarHeader from './Header';
import SidebarContent from './Content';
@@ -18,10 +19,11 @@ const SideBar: React.FC<{
onGoToLibrary: () => void;
onOpenSplitView: () => void;
}> = ({ width, isPinned, onGoToLibrary, onOpenSplitView }) => {
const { getBookData, getProgress } = useReaderStore();
const [activeTab, setActiveTab] = useState('toc');
const { envConfig } = useEnv();
const { sideBarBookKey, settings } = useReaderStore();
const { saveSettings, getBookData, getProgress } = useReaderStore();
const [activeTab, setActiveTab] = useState(settings.globalReadSettings.sideBarTab);
const [currentHref, setCurrentHref] = useState<string | null>(null);
const { sideBarBookKey } = useReaderStore();
const {
sideBarWidth,
isSideBarVisible,
@@ -47,6 +49,12 @@ const SideBar: React.FC<{
setSideBarVisible(false);
};
const handleTabChange = (tab: string) => {
setActiveTab(tab);
settings.globalReadSettings.sideBarTab = tab;
saveSettings(envConfig, settings);
};
if (!sideBarBookKey) return null;
const bookData = getBookData(sideBarBookKey);
@@ -84,7 +92,7 @@ const SideBar: React.FC<{
currentHref={currentHref}
sideBarBookKey={sideBarBookKey!}
/>
<TabNavigation activeTab={activeTab} onTabChange={setActiveTab} />
<TabNavigation activeTab={activeTab} onTabChange={handleTabChange} />
<div
className='drag-bar absolute right-0 top-0 h-full w-0.5 cursor-col-resize'
onMouseDown={handleMouseDown}
@@ -7,6 +7,7 @@ export const CLOUD_BOOKS_SUBDIR = 'Readest/Books';
export const DEFAULT_READSETTINGS: ReadSettings = {
sideBarWidth: '25%',
isSideBarPinned: true,
sideBarTab: 'toc',
notebookWidth: '25%',
isNotebookPinned: false,
autohideCursor: true,
+1
View File
@@ -5,6 +5,7 @@ export type ThemeType = 'light' | 'dark' | 'auto';
export interface ReadSettings {
sideBarWidth: string;
isSideBarPinned: boolean;
sideBarTab: string;
notebookWidth: string;
isNotebookPinned: boolean;
autohideCursor: boolean;