// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:adaptive_navigation/adaptive_navigation.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; /// The enum for scaffold tab. enum ScaffoldTab { /// The books tab. books, /// The authors tab. authors, /// The settings tab. settings } /// The scaffold for the book store. class BookstoreScaffold extends StatelessWidget { /// Creates a [BookstoreScaffold]. const BookstoreScaffold({ required this.selectedTab, required this.child, super.key, }); /// Which tab of the scaffold to display. final ScaffoldTab selectedTab; /// The scaffold body. final Widget child; @override Widget build(BuildContext context) => Scaffold( body: AdaptiveNavigationScaffold( selectedIndex: selectedTab.index, body: child, onDestinationSelected: (int idx) { switch (ScaffoldTab.values[idx]) { case ScaffoldTab.books: context.go('/books'); break; case ScaffoldTab.authors: context.go('/authors'); break; case ScaffoldTab.settings: context.go('/settings'); break; } }, destinations: const [ AdaptiveScaffoldDestination( title: 'Books', icon: Icons.book, ), AdaptiveScaffoldDestination( title: 'Authors', icon: Icons.person, ), AdaptiveScaffoldDestination( title: 'Settings', icon: Icons.settings, ), ], ), ); }