feat: vault-aligned server v1 + UX polish
All checks were successful
CI / Windows build (push) Successful in 7m47s
All checks were successful
CI / Windows build (push) Successful in 7m47s
Redesign the optional FastAPI companion around vault files (manifest / PUT/GET/DELETE + OCR jobs) instead of legacy strokes_json notes. Wire a client Server settings panel for health/login. Polish shell UX: l10n for settings/home/board, sticky-board empty state, and a narrow-screen diagnostics FAB. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -134,6 +134,7 @@ class _BoardScreenState extends ConsumerState<BoardScreen> {
|
||||
final selected = _selectedId != null ? _board.cardById(_selectedId!) : null;
|
||||
final backlinks =
|
||||
selected != null ? _board.backlinksOf(selected.id) : <String>{};
|
||||
final isEmpty = _board.length == 0;
|
||||
|
||||
return Scaffold(
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
@@ -153,7 +154,43 @@ class _BoardScreenState extends ConsumerState<BoardScreen> {
|
||||
),
|
||||
],
|
||||
),
|
||||
body: Row(
|
||||
body: isEmpty
|
||||
? Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(32),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.sticky_note_2_outlined,
|
||||
size: 72,
|
||||
color: AppTokens.copper.withValues(alpha: 0.85),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
l.boardEmptyTitle,
|
||||
style: Theme.of(context).textTheme.headlineSmall,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
l.boardEmptyBody,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: AppTokens.inkMuted,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
FilledButton.icon(
|
||||
onPressed: _addCard,
|
||||
icon: const Icon(Icons.add),
|
||||
label: Text(l.boardAddCard),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: InteractiveViewer(
|
||||
@@ -242,7 +279,7 @@ class _BoardScreenState extends ConsumerState<BoardScreen> {
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
'在便利贴正文里写 [[另一张卡片id]] 建立双链',
|
||||
l.boardEmptyBody,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
color: AppTokens.inkMuted,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user