Files
linkding-ios/lib/widgets/layout.dart

53 lines
1.4 KiB
Dart

import 'package:animations/animations.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class Layout extends StatelessWidget {
final StatefulNavigationShell navigationShell;
const Layout({
Key? key,
required this.navigationShell,
}) : super(key: key);
@override
Widget build(BuildContext context) {
void goBranch(int index) {
navigationShell.goBranch(
index,
initialLocation: index == navigationShell.currentIndex,
);
}
return Scaffold(
body: PageTransitionSwitcher(
duration: const Duration(milliseconds: 200),
transitionBuilder: (child, primaryAnimation, secondaryAnimation) => FadeThroughTransition(
animation: primaryAnimation,
secondaryAnimation: secondaryAnimation,
child: child,
),
child: navigationShell,
),
bottomNavigationBar: NavigationBar(
onDestinationSelected: (s) => goBranch(s),
selectedIndex: navigationShell.currentIndex,
destinations: const [
NavigationDestination(
icon: Icon(Icons.link_rounded),
label: "Links",
),
NavigationDestination(
icon: Icon(Icons.search_rounded),
label: "Search",
),
NavigationDestination(
icon: Icon(Icons.settings_rounded),
label: "Settings",
),
],
),
);
}
}