Files
flutter_server_box/lib/view/page/server/top_bar.dart
lollipopkit 4ace4af7da opt.: home ui
- new: top left settings btn
- opt.: top logo
2024-12-02 21:41:17 +08:00

64 lines
1.8 KiB
Dart

part of 'tab.dart';
final class _TopBar extends StatelessWidget implements PreferredSizeWidget {
final ValueNotifier<Set<String>> tags;
final void Function(String) onTagChanged;
final String initTag;
const _TopBar({
required this.initTag,
required this.onTagChanged,
required this.tags,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Center(
child: InkWell(
borderRadius: BorderRadius.circular(13),
onTap: () => DebugPage.route.go(
context,
args: const DebugPageArgs(title: 'Logs(${BuildData.build})'),
),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 7),
child: Row(
children: [
Btn.icon(
icon: const Icon(Icons.settings),
onTap: () {
SettingsPage.route.go(context);
},
),
const Icon(
Icons.keyboard_arrow_right,
color: Colors.grey,
size: 17,
),
],
),
),
),
),
const SizedBox(width: 30),
TagSwitcher(
tags: tags,
onTagChanged: onTagChanged,
initTag: initTag,
singleLine: true,
reversed: true,
).expanded(),
],
),
);
}
@override
Size get preferredSize => const Size.fromHeight(TagSwitcher.kTagBtnHeight);
}