new: snippet fmt

This commit is contained in:
lollipopkit
2024-01-21 17:42:43 +08:00
parent 07cc0a22e8
commit 7414dcc8da
28 changed files with 229 additions and 178 deletions

View File

@@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
abstract class PopMenu {
static PopupMenuItem<T> build<T>(T t, IconData icon, String text) {
return PopupMenuItem<T>(
value: t,
child: Row(
children: [
Icon(icon),
const SizedBox(
width: 10,
),
Text(text),
],
),
);
}
}

View File

@@ -0,0 +1,73 @@
import 'package:flutter/material.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/data/model/app/menu/base.dart';
enum ContainerMenu {
start,
stop,
restart,
rm,
logs,
terminal,
//stats,
;
static List<ContainerMenu> items(bool running) {
if (running) {
return [
stop,
restart,
rm,
logs,
terminal,
//stats,
];
} else {
return [start, rm, logs];
}
}
IconData get icon {
switch (this) {
case ContainerMenu.start:
return Icons.play_arrow;
case ContainerMenu.stop:
return Icons.stop;
case ContainerMenu.restart:
return Icons.restart_alt;
case ContainerMenu.rm:
return Icons.delete;
case ContainerMenu.logs:
return Icons.logo_dev;
case ContainerMenu.terminal:
return Icons.terminal;
// case DockerMenuType.stats:
// return Icons.bar_chart;
}
}
String get toStr {
switch (this) {
case ContainerMenu.start:
return l10n.start;
case ContainerMenu.stop:
return l10n.stop;
case ContainerMenu.restart:
return l10n.restart;
case ContainerMenu.rm:
return l10n.delete;
case ContainerMenu.logs:
return l10n.log;
case ContainerMenu.terminal:
return l10n.terminal;
// case DockerMenuType.stats:
// return s.stats;
}
}
PopupMenuItem<ContainerMenu> get widget => PopMenu.build(
this,
icon,
toStr,
);
}

View File

@@ -0,0 +1,30 @@
import 'package:flutter/material.dart';
import 'package:toolbox/core/extension/context/locale.dart';
enum ServerTabMenu {
terminal,
sftp,
container,
process,
pkg,
snippet,
;
IconData get icon => switch (this) {
ServerTabMenu.sftp => Icons.insert_drive_file,
ServerTabMenu.snippet => Icons.code,
ServerTabMenu.pkg => Icons.system_security_update,
ServerTabMenu.container => Icons.view_agenda,
ServerTabMenu.process => Icons.list_alt_outlined,
ServerTabMenu.terminal => Icons.terminal,
};
String get toStr => switch (this) {
ServerTabMenu.sftp => 'SFTP',
ServerTabMenu.snippet => l10n.snippet,
ServerTabMenu.pkg => l10n.pkg,
ServerTabMenu.container => l10n.container,
ServerTabMenu.process => l10n.process,
ServerTabMenu.terminal => l10n.terminal,
};
}