forked from akai/readest
Save last used tab of sidebar in global settings
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user