Refactor packages using new components feature #163
@ -7,7 +7,7 @@ class AppBarLayoutPage extends StatelessWidget {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) => TopAppBarLayout(
 | 
					  Widget build(BuildContext context) => TopAppBarLayout(
 | 
				
			||||||
        custom: (p0) => p0?.copyWith.call(title: 'New Title'.wrap()),
 | 
					        custom: (p0) => p0?.copyWith.title('New Title'.wrap()),
 | 
				
			||||||
        body: const Center(
 | 
					        body: const Center(
 | 
				
			||||||
          child: Text(
 | 
					          child: Text(
 | 
				
			||||||
            'Body',
 | 
					            'Body',
 | 
				
			||||||
 | 
				
			|||||||
@ -1,68 +0,0 @@
 | 
				
			|||||||
// Copyright (C) 2022 WYATT GROUP
 | 
					 | 
				
			||||||
// Please see the AUTHORS file for details.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
// it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
// the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
// any later version.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
					 | 
				
			||||||
// GNU General Public License for more details.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					 | 
				
			||||||
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
					 | 
				
			||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
abstract class TopBarLayout<T extends TopBarComponent> extends Layout {
 | 
					 | 
				
			||||||
  const TopBarLayout({
 | 
					 | 
				
			||||||
    required this.body,
 | 
					 | 
				
			||||||
    this.custom,
 | 
					 | 
				
			||||||
    this.height = 60,
 | 
					 | 
				
			||||||
    super.key,
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
  final Widget body;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final T? Function(T?)? custom;
 | 
					 | 
				
			||||||
  final double height;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  T? child(BuildContext context);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  Widget build(BuildContext context) => Scaffold(
 | 
					 | 
				
			||||||
        appBar: PreferredSize(
 | 
					 | 
				
			||||||
          preferredSize: Size.fromHeight(height),
 | 
					 | 
				
			||||||
          child: custom?.call(child(context)) ?? const SizedBox.shrink(),
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        body: body,
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class TopAppBarLayout extends TopBarLayout<TopAppBarComponent> {
 | 
					 | 
				
			||||||
  const TopAppBarLayout({
 | 
					 | 
				
			||||||
    required super.body,
 | 
					 | 
				
			||||||
    super.custom,
 | 
					 | 
				
			||||||
    super.height,
 | 
					 | 
				
			||||||
    super.key,
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  TopAppBarComponent? child(BuildContext context) => context.components.appBar;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class TopNavigationBarLayout extends TopBarLayout<TopNavigationBarComponent> {
 | 
					 | 
				
			||||||
  const TopNavigationBarLayout({
 | 
					 | 
				
			||||||
    required super.body,
 | 
					 | 
				
			||||||
    super.custom,
 | 
					 | 
				
			||||||
    super.height,
 | 
					 | 
				
			||||||
    super.key,
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  TopNavigationBarComponent? child(BuildContext context) =>
 | 
					 | 
				
			||||||
      context.components.topNavigationBarComponent;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,21 +1,56 @@
 | 
				
			|||||||
 | 
					// Copyright (C) 2022 WYATT GROUP
 | 
				
			||||||
 | 
					// Please see the AUTHORS file for details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					// it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					// the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					// any later version.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
				
			||||||
 | 
					// GNU General Public License for more details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// This file contains the concrete class [BottomNavigationBarLayout].
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// The [BottomNavigationBarLayout] class is a concrete implementation of the
 | 
				
			||||||
 | 
					/// [Layout] abstract class, which defines a layout structure with a bottom
 | 
				
			||||||
 | 
					/// navigation bar component.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// [BottomNavigationBarLayout] includes an optional
 | 
				
			||||||
 | 
					/// [BottomNavigationBarLayout.custom]
 | 
				
			||||||
 | 
					/// function for customizing the bottom navigation bar component.
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
					import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
				
			||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
					import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// A concrete implementation of the [Layout] abstract class for a layout with
 | 
				
			||||||
 | 
					/// a bottom navigation bar component.
 | 
				
			||||||
class BottomNavigationBarLayout extends Layout {
 | 
					class BottomNavigationBarLayout extends Layout {
 | 
				
			||||||
 | 
					  /// Creates a [BottomNavigationBarLayout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [body] represents the main content of the layout.
 | 
				
			||||||
 | 
					  /// [custom] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  /// the bottom navigation bar component.
 | 
				
			||||||
  const BottomNavigationBarLayout({
 | 
					  const BottomNavigationBarLayout({
 | 
				
			||||||
    required this.body,
 | 
					    required this.body,
 | 
				
			||||||
    this.custom,
 | 
					    this.custom,
 | 
				
			||||||
    super.key,
 | 
					    super.key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  final Widget? body;
 | 
					  final Widget? body;
 | 
				
			||||||
  final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
 | 
					  final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
 | 
				
			||||||
      custom;
 | 
					      custom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) => Scaffold(
 | 
					  Widget build(BuildContext context) => Scaffold(
 | 
				
			||||||
        body: body,
 | 
					        body: body,
 | 
				
			||||||
        bottomNavigationBar: custom?.call(
 | 
					        bottomNavigationBar: custom?.call(
 | 
				
			||||||
          context.components.bottomNavigationBar,
 | 
					              context.components.bottomNavigationBar,
 | 
				
			||||||
        ),
 | 
					            ) ??
 | 
				
			||||||
 | 
					            context.components.bottomNavigationBar,
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -13,12 +13,26 @@
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
// You should have received a copy of the GNU General Public License
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
					import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
				
			||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
					import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// A layout that contains a top app bar, a body and a bottom navigation bar.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This layout consists of a [TopAppBarComponent] at the top of the screen,
 | 
				
			||||||
 | 
					/// a [body] in the middle and a [BottomNavigationBarComponent] at the bottom.
 | 
				
			||||||
 | 
					/// You can customize the app bar and the bottom navigation bar by passing
 | 
				
			||||||
 | 
					/// a [customAppBar] and a [customBottomNavBar] functions that take
 | 
				
			||||||
 | 
					/// the corresponding components and return the customized ones.
 | 
				
			||||||
class FrameLayout extends Layout {
 | 
					class FrameLayout extends Layout {
 | 
				
			||||||
 | 
					  /// Creates a [FrameLayout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [body] represents the main content of the layout.
 | 
				
			||||||
 | 
					  /// [customAppBar] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  ///  the top app bar component.
 | 
				
			||||||
 | 
					  /// [customBottomNavBar] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  ///  the bottom navigation bar component.
 | 
				
			||||||
 | 
					  /// [height] represents the height of the top app bar.
 | 
				
			||||||
  const FrameLayout({
 | 
					  const FrameLayout({
 | 
				
			||||||
    required this.body,
 | 
					    required this.body,
 | 
				
			||||||
    this.customAppBar,
 | 
					    this.customAppBar,
 | 
				
			||||||
@ -35,13 +49,17 @@ class FrameLayout extends Layout {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) => Scaffold(
 | 
					  Widget build(BuildContext context) => Scaffold(
 | 
				
			||||||
        appBar: PreferredSize(
 | 
					        appBar: (customAppBar?.call(context.components.appBar) != null ||
 | 
				
			||||||
          preferredSize: Size.fromHeight(height),
 | 
					                context.components.appBar != null)
 | 
				
			||||||
          child: customAppBar?.call(context.components.appBar) ??
 | 
					            ? PreferredSize(
 | 
				
			||||||
              const SizedBox.shrink(),
 | 
					                preferredSize: Size.fromHeight(height),
 | 
				
			||||||
        ),
 | 
					                child: customAppBar?.call(context.components.appBar) ??
 | 
				
			||||||
 | 
					                    context.components.appBar!,
 | 
				
			||||||
 | 
					              )
 | 
				
			||||||
 | 
					            : null,
 | 
				
			||||||
        body: body,
 | 
					        body: body,
 | 
				
			||||||
        bottomNavigationBar:
 | 
					        bottomNavigationBar:
 | 
				
			||||||
            customBottomNavBar?.call(context.components.bottomNavigationBar),
 | 
					            customBottomNavBar?.call(context.components.bottomNavigationBar) ??
 | 
				
			||||||
 | 
					                context.components.bottomNavigationBar,
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,33 @@
 | 
				
			|||||||
 | 
					// Copyright (C) 2022 WYATT GROUP
 | 
				
			||||||
 | 
					// Please see the AUTHORS file for details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					// it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					// the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					// any later version.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
				
			||||||
 | 
					// GNU General Public License for more details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// This file contains the [Layout] abstract class, which provides a base
 | 
				
			||||||
 | 
					/// for creating custom layout widgets in Flutter.
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// An abstract class that provides a base for creating custom layout widgets.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This class can be used as a base for creating custom layout widgets in
 | 
				
			||||||
 | 
					/// Flutter. It extends the [StatelessWidget] class and adds support for
 | 
				
			||||||
 | 
					/// providing a custom key. Custom layout widgets that extend this class should
 | 
				
			||||||
 | 
					/// override the [build] method to define the layout.
 | 
				
			||||||
abstract class Layout extends StatelessWidget {
 | 
					abstract class Layout extends StatelessWidget {
 | 
				
			||||||
 | 
					  /// Creates a new [Layout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [key] is an optional parameter that can be used to provide a custom key
 | 
				
			||||||
 | 
					  /// for the widget.
 | 
				
			||||||
  const Layout({super.key});
 | 
					  const Layout({super.key});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,108 @@
 | 
				
			|||||||
 | 
					// Copyright (C) 2022 WYATT GROUP
 | 
				
			||||||
 | 
					// Please see the AUTHORS file for details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					// it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					// the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					// any later version.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
				
			||||||
 | 
					// GNU General Public License for more details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// This file contains the abstract class [TopBarLayout] and two concrete
 | 
				
			||||||
 | 
					/// classes [TopAppBarLayout] and [TopNavigationBarLayout].
 | 
				
			||||||
 | 
					/// The [TopBarLayout] abstract class defines a layout structure with a top bar.
 | 
				
			||||||
 | 
					/// The [TopAppBarLayout] and [TopNavigationBarLayout] classes are concrete
 | 
				
			||||||
 | 
					///  implementations of the [TopBarLayout] class.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// An abstract class for creating layouts with a top bar component.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This class provides a base for creating layouts that include a top bar
 | 
				
			||||||
 | 
					/// component, such as an app bar or navigation bar.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Implementations of this class must provide a concrete implementation of
 | 
				
			||||||
 | 
					/// the [child] method, which returns the specific top bar component for the
 | 
				
			||||||
 | 
					/// given [BuildContext].
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// [T] represents the type of the top bar component.
 | 
				
			||||||
 | 
					abstract class TopBarLayout<T extends TopBarComponent> extends Layout {
 | 
				
			||||||
 | 
					  /// Creates a [TopBarLayout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [body] represents the main content of the layout.
 | 
				
			||||||
 | 
					  /// [custom] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  ///  the top bar component.
 | 
				
			||||||
 | 
					  /// [height] represents the height of the top bar.
 | 
				
			||||||
 | 
					  const TopBarLayout({
 | 
				
			||||||
 | 
					    required this.body,
 | 
				
			||||||
 | 
					    this.custom,
 | 
				
			||||||
 | 
					    this.height = 60,
 | 
				
			||||||
 | 
					    super.key,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final Widget body;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final T? Function(T?)? custom;
 | 
				
			||||||
 | 
					  final double height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Returns the top bar component for the given [BuildContext].
 | 
				
			||||||
 | 
					  T? child(BuildContext context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) => Scaffold(
 | 
				
			||||||
 | 
					        appBar: (custom?.call(child(context)) != null || child(context) != null)
 | 
				
			||||||
 | 
					            ? PreferredSize(
 | 
				
			||||||
 | 
					                preferredSize: Size.fromHeight(height),
 | 
				
			||||||
 | 
					                child: custom?.call(child(context)) ?? child(context)!,
 | 
				
			||||||
 | 
					              )
 | 
				
			||||||
 | 
					            : null,
 | 
				
			||||||
 | 
					        body: body,
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// A concrete implementation of [TopBarLayout] for an app bar.
 | 
				
			||||||
 | 
					class TopAppBarLayout extends TopBarLayout<TopAppBarComponent> {
 | 
				
			||||||
 | 
					  /// Creates a [TopAppBarLayout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [body] represents the main content of the layout.
 | 
				
			||||||
 | 
					  /// [custom] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  ///  the top bar component.
 | 
				
			||||||
 | 
					  /// [height] represents the height of the top bar.
 | 
				
			||||||
 | 
					  const TopAppBarLayout({
 | 
				
			||||||
 | 
					    required super.body,
 | 
				
			||||||
 | 
					    super.custom,
 | 
				
			||||||
 | 
					    super.height,
 | 
				
			||||||
 | 
					    super.key,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  TopAppBarComponent? child(BuildContext context) => context.components.appBar;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// A concrete implementation of [TopBarLayout] for a navigation bar.
 | 
				
			||||||
 | 
					class TopNavigationBarLayout extends TopBarLayout<TopNavigationBarComponent> {
 | 
				
			||||||
 | 
					  /// Creates a [TopNavigationBarLayout] instance.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// [body] represents the main content of the layout.
 | 
				
			||||||
 | 
					  /// [custom] is an optional function that can be used to customize
 | 
				
			||||||
 | 
					  ///  the top bar component.
 | 
				
			||||||
 | 
					  /// [height] represents the height of the top bar.
 | 
				
			||||||
 | 
					  const TopNavigationBarLayout({
 | 
				
			||||||
 | 
					    required super.body,
 | 
				
			||||||
 | 
					    super.custom,
 | 
				
			||||||
 | 
					    super.height,
 | 
				
			||||||
 | 
					    super.key,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  TopNavigationBarComponent? child(BuildContext context) =>
 | 
				
			||||||
 | 
					      context.components.topNavigationBarComponent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,3 +1,19 @@
 | 
				
			|||||||
export 'layouts/app_bar_layout.dart';
 | 
					// Copyright (C) 2022 WYATT GROUP
 | 
				
			||||||
 | 
					// Please see the AUTHORS file for details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					// it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					// the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					// any later version.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
				
			||||||
 | 
					// GNU General Public License for more details.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export 'layouts/bottom_navigation_bar_layout.dart';
 | 
					export 'layouts/bottom_navigation_bar_layout.dart';
 | 
				
			||||||
export 'layouts/frame_layout.dart';
 | 
					export 'layouts/frame_layout.dart';
 | 
				
			||||||
 | 
					export 'layouts/top_app_bar_layout.dart';
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user