fix:导航栏交互和UI

This commit is contained in:
jingyun
2026-06-05 16:05:32 +08:00
parent c5288f397d
commit 33d04a5545
10 changed files with 267 additions and 147 deletions
+53 -40
View File
@@ -99,53 +99,66 @@ class ReportsPage extends HookConsumerWidget {
),
onChanged: (value) => query.value = value.trim(),
),
const SizedBox(height: YantingSpacing.x3),
Wrap(
spacing: YantingSpacing.x2,
runSpacing: YantingSpacing.x2,
const SizedBox(height: YantingSpacing.cardGap),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ShadButton.outline(
onPressed: items.isEmpty
? null
: () => _openFilterSheet(
context,
items: items,
topic: topic,
Expanded(
child: Wrap(
spacing: YantingSpacing.x2,
runSpacing: YantingSpacing.x2,
children: [
ShadButton.outline(
onPressed: items.isEmpty
? null
: () => _openFilterSheet(
context,
items: items,
topic: topic,
),
leading: const Icon(
LucideIcons.slidersHorizontal,
size: 16,
),
leading: const Icon(
LucideIcons.slidersHorizontal,
size: 16,
child: const Text('筛选'),
),
ShadButton.outline(
onPressed: () {},
leading: const Icon(
LucideIcons.arrowUpDown,
size: 16,
),
child: const Text('最新'),
),
ShadBadge.secondary(
onPressed: () => hasAudio.value = !currentHasAudio,
backgroundColor: currentHasAudio
? theme.colorScheme.foreground
: theme.colorScheme.secondary,
foregroundColor: currentHasAudio
? theme.colorScheme.background
: theme.colorScheme.secondaryForeground,
hoverBackgroundColor: currentHasAudio
? theme.colorScheme.foreground.withValues(
alpha: 0.9,
)
: theme.colorScheme.border,
child: const Text('音频'),
),
],
),
child: const Text('筛选'),
),
ShadButton.outline(
onPressed: () {},
leading: const Icon(LucideIcons.arrowUpDown, size: 16),
child: const Text('最新'),
),
ShadBadge.secondary(
onPressed: () => hasAudio.value = !currentHasAudio,
backgroundColor: currentHasAudio
? theme.colorScheme.foreground
: theme.colorScheme.secondary,
foregroundColor: currentHasAudio
? theme.colorScheme.background
: theme.colorScheme.secondaryForeground,
hoverBackgroundColor: currentHasAudio
? theme.colorScheme.foreground.withValues(alpha: 0.9)
: theme.colorScheme.border,
child: const Text('音频'),
const SizedBox(width: YantingSpacing.x2),
Padding(
padding: const EdgeInsets.only(top: 10),
child: Text(
'${filtered.length}',
style: YantingText.meta,
),
),
],
),
const SizedBox(height: 8),
Align(
alignment: Alignment.centerRight,
child: Text('${filtered.length}', style: YantingText.meta),
),
const SizedBox(height: YantingSpacing.x3),
const ShadSeparator.horizontal(),
const SizedBox(height: YantingSpacing.x3),
const SizedBox(height: YantingSpacing.cardGap),
if (filtered.isEmpty)
EmptyState(
title: currentQuery.isNotEmpty ? '未找到相关研报' : '当前筛选下暂无研报',