Skip to content

Commit cd2fd27

Browse files
committed
feat:优化移动端体验
1 parent 4bbcdf7 commit cd2fd27

12 files changed

Lines changed: 559 additions & 284 deletions

File tree

packages/app-mobile/src/App.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { TTSSettingsPage } from "@/components/settings/TTSSettingsPage";
1313
import { TranslationSettingsPage } from "@/components/settings/TranslationSettingsPage";
1414
import { AboutPage } from "@/components/settings/AboutPage";
1515
import { VectorModelSettingsPage } from "@/components/settings/VectorModelSettingsPage";
16+
import { MobileStatsPage } from "@/components/stats/MobileStatsPage";
1617

1718
export default function App() {
1819
return (
@@ -37,6 +38,7 @@ export default function App() {
3738
<Route path="/settings/about" element={<AboutPage />} />
3839
<Route path="/settings/vector-model" element={<VectorModelSettingsPage />} />
3940
<Route path="/skills" element={<SkillsPage />} />
41+
<Route path="/stats" element={<MobileStatsPage />} />
4042

4143
{/* Default redirect */}
4244
<Route path="*" element={<Navigate to="/library" replace />} />

packages/app-mobile/src/components/layout/NavHeader.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ export function NavHeader({
3333
return (
3434
<header
3535
className={cn(
36-
"relative flex h-11 shrink-0 items-center px-4",
36+
"relative flex shrink-0 items-center px-4",
3737
!transparent && "border-b border-border bg-background",
3838
className,
3939
)}
40-
style={{ paddingTop: "var(--safe-area-top)" }}
40+
style={{
41+
paddingTop: "var(--safe-area-top, 0px)",
42+
height: "calc(2.75rem + var(--safe-area-top, 0px))",
43+
}}
4144
>
4245
{/* Left: back button */}
4346
{showBack && (
@@ -52,7 +55,10 @@ export function NavHeader({
5255

5356
{/* Center: title */}
5457
{title && (
55-
<h1 className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-base font-semibold truncate max-w-[60%]">
58+
<h1
59+
className="absolute left-1/2 -translate-x-1/2 text-base font-semibold truncate max-w-[60%]"
60+
style={{ top: "calc(var(--safe-area-top, 0px) + 1.375rem)", transform: "translate(-50%, -50%)" }}
61+
>
5662
{title}
5763
</h1>
5864
)}

packages/app-mobile/src/components/notes/NotesPage.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import { useEffect, useMemo, useState, useCallback } from "react";
66
import { useTranslation } from "react-i18next";
77
import { useNavigate } from "react-router";
8+
import { useCoverUrl } from "@/lib/use-cover-url";
89
import {
910
NotebookPen,
1011
Highlighter,
@@ -101,6 +102,8 @@ export function NotesPage() {
101102
return bookNotebooks.find((b) => b.bookId === selectedBookId) || null;
102103
}, [selectedBookId, bookNotebooks]);
103104

105+
const selectedBookCover = useCoverUrl(selectedBook?.coverUrl);
106+
104107
const { notes, highlightsOnly } = useMemo(() => {
105108
if (!selectedBook) return { notes: [], highlightsOnly: [] };
106109
let all = selectedBook.highlights;
@@ -230,9 +233,9 @@ export function NotesPage() {
230233
<ChevronLeft className="h-5 w-5" />
231234
</button>
232235

233-
{selectedBook?.coverUrl ? (
236+
{selectedBookCover ? (
234237
<img
235-
src={selectedBook.coverUrl}
238+
src={selectedBookCover}
236239
alt=""
237240
className="h-10 w-7 shrink-0 rounded object-cover shadow-sm"
238241
/>
@@ -423,15 +426,16 @@ interface NotebookCardProps {
423426
}
424427

425428
function NotebookCard({ book, onClick }: NotebookCardProps) {
429+
const resolvedCover = useCoverUrl(book.coverUrl);
426430
return (
427431
<button
428432
type="button"
429433
className="flex w-full items-start gap-3 rounded-xl border border-border bg-card p-3 text-left active:bg-muted/50 transition-colors"
430434
onClick={onClick}
431435
>
432-
{book.coverUrl ? (
436+
{resolvedCover ? (
433437
<img
434-
src={book.coverUrl}
438+
src={resolvedCover}
435439
alt=""
436440
className="h-16 w-11 shrink-0 rounded object-cover shadow-sm"
437441
/>

0 commit comments

Comments
 (0)