Files
MWClash/lib/common/navigation.dart
chen08209 1fcc412770 Add intranet IP display
Add connections page

Add search in connections, requests

Add keyword search in connections, requests, logs

Add basic viewing editing capabilities

Optimize update profile
2024-06-22 13:52:20 +08:00

81 lines
2.2 KiB
Dart

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.view_timeline),
label: "requests",
fragment: RequestsFragment(),
description: "requestsDesc",
modes: [NavigationItemMode.desktop, NavigationItemMode.more],
),
const NavigationItem(
icon: Icon(Icons.ballot),
label: "connections",
fragment: ConnectionsFragment(),
description: "connectionsDesc",
modes: [NavigationItemMode.desktop, NavigationItemMode.more],
),
const NavigationItem(
icon: Icon(Icons.swap_vert_circle),
label: "resources",
description: "resourcesDesc",
keep: false,
fragment: Resources(),
modes: [NavigationItemMode.desktop, NavigationItemMode.more],
),
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();