opt. & fix

This commit is contained in:
lollipopkit
2024-03-15 19:01:24 -06:00
parent 7be9c5fb9c
commit 5993231c2a
3 changed files with 33 additions and 13 deletions

View File

@@ -244,13 +244,10 @@ class _SettingPageState extends State<SettingPage> {
Widget _buildAppColor() { Widget _buildAppColor() {
return ListTile( return ListTile(
trailing: ClipOval( trailing: ClipOval(
child: ValueListenableBuilder( child: Container(
valueListenable: _setting.primaryColor.listenable(), color: primaryColor,
builder: (_, val, __) => Container( height: 27,
color: Color(val), width: 27,
height: 27,
width: 27,
),
), ),
), ),
title: Text(l10n.primaryColorSeed), title: Text(l10n.primaryColorSeed),
@@ -279,7 +276,7 @@ class _SettingPageState extends State<SettingPage> {
icon: Icons.colorize, icon: Icons.colorize,
), ),
ColorPicker( ColorPicker(
color: primaryColor, color: Color(_setting.primaryColor.fetch()),
onColorChanged: (c) => ctrl.text = c.toHex, onColorChanged: (c) => ctrl.text = c.toHex,
) )
]); ]);
@@ -311,6 +308,7 @@ class _SettingPageState extends State<SettingPage> {
primaryColor = color; primaryColor = color;
_setting.primaryColor.put(color.value); _setting.primaryColor.put(color.value);
context.pop(); context.pop();
context.pop();
RebuildNodes.app.rebuild(); RebuildNodes.app.rebuild();
} }

View File

@@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/common.dart'; import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/route.dart';
import 'package:toolbox/data/provider/server.dart'; import 'package:toolbox/data/provider/server.dart';
import 'package:toolbox/data/res/provider.dart'; import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/data/res/ui.dart'; import 'package:toolbox/data/res/ui.dart';
@@ -25,6 +26,7 @@ class _SSHTabPageState extends State<SSHTabPage>
length: _tabIds.length, length: _tabIds.length,
vsync: this, vsync: this,
); );
final _fabRN = ValueNotifier(0);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -36,8 +38,21 @@ class _SSHTabPageState extends State<SSHTabPage>
isScrollable: true, isScrollable: true,
tabAlignment: TabAlignment.start, tabAlignment: TabAlignment.start,
dividerColor: Colors.transparent, dividerColor: Colors.transparent,
onTap: (value) => _fabRN.value = value,
), ),
body: _buildBody(), body: _buildBody(),
floatingActionButton: ListenableBuilder(
listenable: _fabRN,
builder: (_, __) {
if (_fabRN.value == 0) return const SizedBox();
return FloatingActionButton(
onPressed: () => AppRoute.serverEdit().go(context),
tooltip: l10n.addAServer,
heroTag: 'server',
child: const Icon(Icons.add),
);
},
),
); );
} }
@@ -83,6 +98,14 @@ class _SSHTabPageState extends State<SSHTabPage>
Widget _buildAddPage() { Widget _buildAddPage() {
return Center( return Center(
child: Consumer<ServerProvider>(builder: (_, pro, __) { child: Consumer<ServerProvider>(builder: (_, pro, __) {
if (pro.serverOrder.isEmpty) {
return Center(
child: Text(
l10n.serverTabEmpty,
textAlign: TextAlign.center,
),
);
}
return ListView.builder( return ListView.builder(
padding: const EdgeInsets.all(7), padding: const EdgeInsets.all(7),
itemBuilder: (_, idx) { itemBuilder: (_, idx) {

View File

@@ -15,14 +15,13 @@ class ChoiceChipX<T> extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return ChoiceChip(
padding: const EdgeInsets.all(3),
child: ChoiceChip(
label: Text(label), label: Text(label),
side: BorderSide.none, side: BorderSide.none,
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 1),
labelPadding: const EdgeInsets.symmetric(horizontal: 5),
selected: state.selected(value), selected: state.selected(value),
onSelected: state.onSelected(value), onSelected: state.onSelected(value),
), );
);
} }
} }