Files
MWClash/lib/common/navigation.dart

67 lines
1.7 KiB
Dart
Raw Normal View History

2024-04-30 23:38:49 +08:00
import 'package:fl_clash/enum/enum.dart';
import 'package:fl_clash/fragments/fragments.dart';
import 'package:fl_clash/models/models.dart';
import 'package:flutter/material.dart';
class Navigation {
static Navigation? _instance;
getItems({
bool openLogs = false,
bool hasProxies = false,
}) {
return [
const NavigationItem(
icon: Icon(Icons.space_dashboard),
label: "dashboard",
fragment: DashboardFragment(),
),
NavigationItem(
icon: const Icon(Icons.rocket),
label: "proxies",
fragment: const ProxiesFragment(),
modes: hasProxies
? [NavigationItemMode.mobile, NavigationItemMode.desktop]
: [],
),
const NavigationItem(
icon: Icon(Icons.folder),
label: "profiles",
fragment: ProfilesFragment(),
),
const NavigationItem(
icon: Icon(Icons.swap_vert_circle),
label: "resources",
description: "resourcesDesc",
keep: false,
fragment: Resources(),
modes: [NavigationItemMode.desktop, NavigationItemMode.more],
),
2024-04-30 23:38:49 +08:00
NavigationItem(
icon: const Icon(Icons.adb),
label: "logs",
fragment: const LogsFragment(),
description: "logsDesc",
modes: openLogs
? [NavigationItemMode.desktop, NavigationItemMode.more]
: [],
),
const NavigationItem(
icon: Icon(Icons.construction),
label: "tools",
fragment: ToolsFragment(),
modes: [NavigationItemMode.desktop, NavigationItemMode.mobile],
),
];
}
Navigation._internal();
factory Navigation() {
_instance ??= Navigation._internal();
return _instance!;
}
}
final navigation = Navigation();