mirror of
https://github.com/truewhile/MeBox.git
synced 2026-11-15 20:34:23 +08:00
d0b4255aa8
- 首页顶部「影视/阅读」分段切换(zustand 持久化,阅读模式直渲染书架) - /reader/* 独立全屏路由(不套影视 Layout): 书架(响应式网格 3→8 列)、搜索页(结果流+失败书源明细)、 书源管理(导入/启停/删除/快速调试日志)、详情页(目录+加书架) - 阅读器仿 legado ReadMenu:6 套内置主题(日/夜色值对齐 readConfig.json)、 CSS 多栏分页 + 平移翻页/滚动双模式、三区点击 + 键盘翻页(桌面)、 上下章、目录抽屉(Virtuoso 虚拟滚动)、字号/行距/段距调节、 进度记忆(服务端同步 + 下一章预取) - 桌面兼容:内容列 900px 限宽居中、鼠标悬停态、键盘快捷键 - 后端:详情/目录/正文接口支持 source_url 定位书源(书架链路)
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { BookOpen, Clapperboard } from 'lucide-react'
|
|
|
|
import { useReaderSettingsStore } from '../../stores/readerSettings'
|
|
|
|
// 首页「影视 / 阅读」分段切换(样式对齐 LibraryTagBar 页签)。
|
|
export function ReaderModeSwitch() {
|
|
const homeMode = useReaderSettingsStore((s) => s.homeMode)
|
|
const setHomeMode = useReaderSettingsStore((s) => s.setHomeMode)
|
|
|
|
const itemClass = (active: boolean) =>
|
|
`flex items-center gap-1.5 rounded-xl border px-4 py-1.5 text-xs font-bold transition ${
|
|
active
|
|
? 'border-brand-500/60 bg-brand-500/10 text-brand-600'
|
|
: 'border-[var(--app-border)] text-[var(--app-muted)] hover:text-[var(--app-text)]'
|
|
}`
|
|
|
|
return (
|
|
<div className="flex items-center gap-2 border-b border-[var(--app-border)] pb-3">
|
|
<button
|
|
type="button"
|
|
className={itemClass(homeMode === 'media')}
|
|
onClick={() => setHomeMode('media')}
|
|
>
|
|
<Clapperboard size={13} /> 影视
|
|
</button>
|
|
<button
|
|
type="button"
|
|
className={itemClass(homeMode === 'reading')}
|
|
onClick={() => setHomeMode('reading')}
|
|
>
|
|
<BookOpen size={13} /> 阅读
|
|
</button>
|
|
</div>
|
|
)
|
|
}
|