Files
linkding-ios/lib/widgets/layout.dart
2024-02-24 14:05:41 +01:00

43 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:linkdy/widgets/system_overlay_style.dart';
import 'package:linkdy/config/app_screens.dart';
import 'package:linkdy/providers/router_provider.dart';
class Layout extends ConsumerWidget {
final GoRouterState state;
final Widget child;
const Layout({
Key? key,
required this.state,
required this.child,
}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
final screenIndex = appScreens.map((s) => s.route).toList().indexOf("/${state.matchedLocation.split("/")[1]}");
return OverlayStyle(
child: Scaffold(
body: child,
bottomNavigationBar: NavigationBar(
onDestinationSelected: (s) => ref.watch(routerProvider).replace(appScreens[s].route),
selectedIndex: screenIndex,
destinations: appScreens
.map(
(screen) => NavigationDestination(
icon: Icon(screen.icon),
label: screen.name,
),
)
.toList(),
),
),
);
}
}