Files
apidash/lib/screens/envvar/environment_page.dart
2024-06-14 20:08:34 +05:30

74 lines
2.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:apidash/widgets/widgets.dart';
import 'package:apidash/extensions/extensions.dart';
import 'package:apidash/providers/providers.dart';
import 'package:apidash/utils/utils.dart';
import 'package:apidash/consts.dart';
import '../common/main_editor_widgets.dart';
import 'environments_pane.dart';
import 'environment_editor.dart';
class EnvironmentPage extends ConsumerWidget {
const EnvironmentPage({
super.key,
required this.scaffoldKey,
});
final GlobalKey<ScaffoldState> scaffoldKey;
@override
Widget build(BuildContext context, WidgetRef ref) {
final id = ref.watch(selectedEnvironmentIdStateProvider);
final name = getEnvironmentTitle(ref.watch(
selectedEnvironmentModelProvider.select((value) => value?.name)));
if (context.isMediumWindow) {
return TwoDrawerScaffold(
scaffoldKey: scaffoldKey,
mainContent: const EnvironmentEditor(),
title: ScaffoldTitle(
title: name,
showMenu: id != kGlobalEnvironmentId,
onSelected: (ItemMenuOption item) {
if (item == ItemMenuOption.edit) {
showRenameDialog(context, "Rename Environment", name, (val) {
ref
.read(environmentsStateNotifierProvider.notifier)
.updateEnvironment(id!, name: val);
});
}
if (item == ItemMenuOption.delete) {
ref
.read(environmentsStateNotifierProvider.notifier)
.removeEnvironment(id!);
}
if (item == ItemMenuOption.duplicate) {
ref
.read(environmentsStateNotifierProvider.notifier)
.duplicateEnvironment(id!);
}
},
),
leftDrawerContent: const EnvironmentsPane(),
actions: const [
Padding(
padding: kPh8,
child: EnvironmentDropdown(),
),
],
onDrawerChanged: (value) =>
ref.read(leftDrawerStateProvider.notifier).state = value,
);
}
return const Column(
children: [
Expanded(
child: DashboardSplitView(
sidebarWidget: EnvironmentsPane(),
mainWidget: EnvironmentEditor(),
),
),
],
);
}
}