Compare commits
No commits in common. "a078f6b6b0496d3295148e3e3ea592e5b5662913" and "952d3f853919209cc0a26bd7b26cc55d2fd9cff8" have entirely different histories.
a078f6b6b0
...
952d3f8539
@ -26,7 +26,6 @@ abstract class FrameLayoutGridCubitScreenCrudList<
|
|||||||
super.customAppBar,
|
super.customAppBar,
|
||||||
super.customBottomNavBar,
|
super.customBottomNavBar,
|
||||||
super.height = 60,
|
super.height = 60,
|
||||||
super.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,6 @@ abstract class FrameLayoutCubitScreen<Cubit extends bloc_base.Cubit<State>,
|
|||||||
const FrameLayoutCubitScreen({
|
const FrameLayoutCubitScreen({
|
||||||
this.customAppBar,
|
this.customAppBar,
|
||||||
this.customBottomNavBar,
|
this.customBottomNavBar,
|
||||||
this.scaffoldFieldsWrapper,
|
|
||||||
this.height = 60,
|
this.height = 60,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
@ -35,14 +34,12 @@ abstract class FrameLayoutCubitScreen<Cubit extends bloc_base.Cubit<State>,
|
|||||||
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
||||||
customBottomNavBar;
|
customBottomNavBar;
|
||||||
final double height;
|
final double height;
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget parent(BuildContext context, Widget child) => FrameLayout(
|
Widget parent(BuildContext context, Widget child) => FrameLayout(
|
||||||
customAppBar: customAppBar,
|
customAppBar: customAppBar,
|
||||||
customBottomNavBar: customBottomNavBar,
|
customBottomNavBar: customBottomNavBar,
|
||||||
height: height,
|
height: height,
|
||||||
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
|
|
||||||
body: child,
|
body: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ abstract class FrameLayoutCubitScreenCrud<
|
|||||||
super.customBottomNavBar,
|
super.customBottomNavBar,
|
||||||
super.height,
|
super.height,
|
||||||
super.key,
|
super.key,
|
||||||
super.scaffoldFieldsWrapper,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -25,7 +25,6 @@ abstract class FrameLayoutCubitScreenCrudItem<
|
|||||||
super.customAppBar,
|
super.customAppBar,
|
||||||
super.customBottomNavBar,
|
super.customBottomNavBar,
|
||||||
super.height = 60,
|
super.height = 60,
|
||||||
super.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,6 @@ abstract class FrameLayoutCubitScreenCrudList<
|
|||||||
super.customAppBar,
|
super.customAppBar,
|
||||||
super.customBottomNavBar,
|
super.customBottomNavBar,
|
||||||
super.height = 60,
|
super.height = 60,
|
||||||
super.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ export './buttons/buttons.dart';
|
|||||||
export './cards/cards.dart';
|
export './cards/cards.dart';
|
||||||
export './component.dart';
|
export './component.dart';
|
||||||
export './error/error.dart';
|
export './error/error.dart';
|
||||||
export './floating_buttons/floating_buttons.dart';
|
|
||||||
export './gradients/gradients.dart';
|
export './gradients/gradients.dart';
|
||||||
export './loader/loader.dart';
|
export './loader/loader.dart';
|
||||||
export './rich_text_builder/rich_text_builder.dart';
|
export './rich_text_builder/rich_text_builder.dart';
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
// Copyright (C) 2023 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 './floating_action_button_component.dart';
|
|
@ -1,17 +0,0 @@
|
|||||||
// Copyright (C) 2023 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 './scaffold_fields_wrapper.dart';
|
|
@ -1,244 +0,0 @@
|
|||||||
// Copyright (C) 2023 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/gestures.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class ScaffoldFieldsWrapper {
|
|
||||||
ScaffoldFieldsWrapper({
|
|
||||||
this.extendBody,
|
|
||||||
this.extendBodyBehindAppBar,
|
|
||||||
this.floatingActionButtonLocation,
|
|
||||||
this.floatingActionButtonAnimator,
|
|
||||||
this.persistentFooterButtons,
|
|
||||||
this.persistentFooterAlignment,
|
|
||||||
this.drawer,
|
|
||||||
this.onDrawerChanged,
|
|
||||||
this.endDrawer,
|
|
||||||
this.onEndDrawerChanged,
|
|
||||||
this.drawerScrimColor,
|
|
||||||
this.backgroundColor,
|
|
||||||
this.bottomSheet,
|
|
||||||
this.resizeToAvoidBottomInset,
|
|
||||||
this.primary,
|
|
||||||
this.drawerDragStartBehavior,
|
|
||||||
this.drawerEdgeDragWidth,
|
|
||||||
this.drawerEnableOpenDragGesture,
|
|
||||||
this.endDrawerEnableOpenDragGesture,
|
|
||||||
this.restorationId,
|
|
||||||
});
|
|
||||||
|
|
||||||
final bool? extendBody;
|
|
||||||
|
|
||||||
/// If true, and an appBar is specified, then the height of the body is
|
|
||||||
/// extended to include the height of the app bar and the top of the body
|
|
||||||
/// is aligned with the top of the app bar.
|
|
||||||
///
|
|
||||||
/// This is useful if the app bar's [AppBar.backgroundColor] is not
|
|
||||||
/// completely opaque.
|
|
||||||
///
|
|
||||||
/// This property is false by default. It must not be null.
|
|
||||||
///
|
|
||||||
/// See also:
|
|
||||||
///
|
|
||||||
/// * [extendBody], which extends the height of the body to the bottom
|
|
||||||
/// of the scaffold.
|
|
||||||
final bool? extendBodyBehindAppBar;
|
|
||||||
|
|
||||||
/// Responsible for determining where the floatingActionButton should go.
|
|
||||||
///
|
|
||||||
/// If null, the [ScaffoldState] will use
|
|
||||||
/// the default location, [FloatingActionButtonLocation.endFloat].
|
|
||||||
final FloatingActionButtonLocation? floatingActionButtonLocation;
|
|
||||||
|
|
||||||
/// Animator to move the floatingActionButton to a
|
|
||||||
/// new [floatingActionButtonLocation].
|
|
||||||
///
|
|
||||||
/// If null, the [ScaffoldState] will use the default animator,
|
|
||||||
/// [FloatingActionButtonAnimator.scaling].
|
|
||||||
final FloatingActionButtonAnimator? floatingActionButtonAnimator;
|
|
||||||
|
|
||||||
/// A set of buttons that are displayed at the bottom of the scaffold.
|
|
||||||
///
|
|
||||||
/// Typically this is a list of [TextButton] widgets. These buttons are
|
|
||||||
/// persistently visible, even if the body of the scaffold scrolls.
|
|
||||||
///
|
|
||||||
/// These widgets will be wrapped in an [OverflowBar].
|
|
||||||
///
|
|
||||||
/// The [persistentFooterButtons] are rendered above the
|
|
||||||
/// bottomNavigationBar but below the body.
|
|
||||||
final List<Widget>? persistentFooterButtons;
|
|
||||||
|
|
||||||
/// The alignment of the [persistentFooterButtons] inside the [OverflowBar].
|
|
||||||
///
|
|
||||||
/// Defaults to [AlignmentDirectional.centerEnd].
|
|
||||||
final AlignmentDirectional? persistentFooterAlignment;
|
|
||||||
|
|
||||||
/// A panel displayed to the side of the body, often hidden on mobile
|
|
||||||
/// devices. Swipes in from either left-to-right ([TextDirection.ltr]) or
|
|
||||||
/// right-to-left ([TextDirection.rtl])
|
|
||||||
///
|
|
||||||
/// Typically a [Drawer].
|
|
||||||
///
|
|
||||||
/// To open the drawer, use the [ScaffoldState.openDrawer] function.
|
|
||||||
///
|
|
||||||
/// To close the drawer, use either [ScaffoldState.closeDrawer],
|
|
||||||
/// [Navigator.pop] or press the escape key on the keyboard.
|
|
||||||
///
|
|
||||||
/// {@tool dartpad}
|
|
||||||
/// To disable the drawer edge swipe on mobile, set the
|
|
||||||
/// [Scaffold.drawerEnableOpenDragGesture] to false. Then, use
|
|
||||||
/// [ScaffoldState.openDrawer] to open the drawer and [Navigator.pop] to close
|
|
||||||
/// it.
|
|
||||||
///
|
|
||||||
/// ** See code in examples/api/lib/material/scaffold/scaffold.drawer.0.dart **
|
|
||||||
/// {@end-tool}
|
|
||||||
final Widget? drawer;
|
|
||||||
|
|
||||||
/// Optional callback that is called when the [Scaffold.drawer]
|
|
||||||
/// is opened or closed.
|
|
||||||
final DrawerCallback? onDrawerChanged;
|
|
||||||
|
|
||||||
/// A panel displayed to the side of the body, often hidden on mobile
|
|
||||||
/// devices. Swipes in from right-to-left ([TextDirection.ltr]) or
|
|
||||||
/// left-to-right ([TextDirection.rtl])
|
|
||||||
///
|
|
||||||
/// Typically a [Drawer].
|
|
||||||
///
|
|
||||||
/// To open the drawer, use the [ScaffoldState.openEndDrawer] function.
|
|
||||||
///
|
|
||||||
/// To close the drawer, use either [ScaffoldState.closeEndDrawer],
|
|
||||||
/// [Navigator.pop]
|
|
||||||
/// or press the escape key on the keyboard.
|
|
||||||
///
|
|
||||||
/// {@tool dartpad}
|
|
||||||
/// To disable the drawer edge swipe, set the
|
|
||||||
/// [Scaffold.endDrawerEnableOpenDragGesture] to false. Then, use
|
|
||||||
/// [ScaffoldState.openEndDrawer] to open the drawer and [Navigator.pop] to
|
|
||||||
/// close it.
|
|
||||||
///
|
|
||||||
/// ** See code in examples/api/lib/material/scaffold/scaffold.end_drawer.0.dart **
|
|
||||||
/// {@end-tool}
|
|
||||||
final Widget? endDrawer;
|
|
||||||
|
|
||||||
/// Optional callback that is called when the [Scaffold.endDrawer]
|
|
||||||
/// is opened or closed.
|
|
||||||
final DrawerCallback? onEndDrawerChanged;
|
|
||||||
|
|
||||||
/// The color to use for the scrim that obscures primary content while
|
|
||||||
/// a drawer is open.
|
|
||||||
///
|
|
||||||
/// If this is null, then [DrawerThemeData.scrimColor] is used. If that
|
|
||||||
/// is also null, then it defaults to [Colors.black54].
|
|
||||||
final Color? drawerScrimColor;
|
|
||||||
|
|
||||||
/// The color of the [Material] widget that underlies the entire Scaffold.
|
|
||||||
///
|
|
||||||
/// The theme's [ThemeData.scaffoldBackgroundColor] by default.
|
|
||||||
final Color? backgroundColor;
|
|
||||||
|
|
||||||
/// The persistent bottom sheet to display.
|
|
||||||
///
|
|
||||||
/// A persistent bottom sheet shows information that supplements the primary
|
|
||||||
/// content of the app. A persistent bottom sheet remains visible even when
|
|
||||||
/// the user interacts with other parts of the app.
|
|
||||||
///
|
|
||||||
/// A closely related widget is a modal bottom sheet, which is an alternative
|
|
||||||
/// to a menu or a dialog and prevents the user from interacting with the rest
|
|
||||||
/// of the app. Modal bottom sheets can be created and displayed with the
|
|
||||||
/// [showModalBottomSheet] function.
|
|
||||||
///
|
|
||||||
/// Unlike the persistent bottom sheet displayed by [showBottomSheet]
|
|
||||||
/// this bottom sheet is not a [LocalHistoryEntry] and cannot be dismissed
|
|
||||||
/// with the scaffold appbar's back button.
|
|
||||||
///
|
|
||||||
/// If a persistent bottom sheet created with [showBottomSheet] is already
|
|
||||||
/// visible, it must be closed before building the Scaffold with a new
|
|
||||||
/// [bottomSheet].
|
|
||||||
///
|
|
||||||
/// The value of [bottomSheet] can be any widget at all. It's unlikely to
|
|
||||||
/// actually be a [BottomSheet], which is used by the implementations of
|
|
||||||
/// [showBottomSheet] and [showModalBottomSheet]. Typically it's a widget
|
|
||||||
/// that includes [Material].
|
|
||||||
///
|
|
||||||
/// See also:
|
|
||||||
///
|
|
||||||
/// * [showBottomSheet], which displays a bottom sheet as a route that can
|
|
||||||
/// be dismissed with the scaffold's back button.
|
|
||||||
/// * [showModalBottomSheet], which displays a modal bottom sheet.
|
|
||||||
/// * [BottomSheetThemeData], which can be used to customize the default
|
|
||||||
/// bottom sheet property values when using a [BottomSheet].
|
|
||||||
final Widget? bottomSheet;
|
|
||||||
|
|
||||||
/// If true the body and the scaffold's floating widgets should size
|
|
||||||
/// themselves to avoid the onscreen keyboard whose height is defined by the
|
|
||||||
/// ambient [MediaQuery]'s [MediaQueryData.viewInsets] `bottom` property.
|
|
||||||
///
|
|
||||||
/// For example, if there is an onscreen keyboard displayed above the
|
|
||||||
/// scaffold, the body can be resized to avoid overlapping the keyboard, which
|
|
||||||
/// prevents widgets inside the body from being obscured by the keyboard.
|
|
||||||
///
|
|
||||||
/// Defaults to true.
|
|
||||||
final bool? resizeToAvoidBottomInset;
|
|
||||||
|
|
||||||
/// Whether this scaffold is being displayed at the top of the screen.
|
|
||||||
///
|
|
||||||
/// If true then the height of the appBar will be extended by the height
|
|
||||||
/// of the screen's status bar, i.e. the top padding for [MediaQuery].
|
|
||||||
///
|
|
||||||
/// The default value of this property, like the default value of
|
|
||||||
/// [AppBar.primary], is true.
|
|
||||||
final bool? primary;
|
|
||||||
|
|
||||||
/// {@macro flutter.material.DrawerController.dragStartBehavior}
|
|
||||||
final DragStartBehavior? drawerDragStartBehavior;
|
|
||||||
|
|
||||||
/// The width of the area within which a horizontal swipe will open the
|
|
||||||
/// drawer.
|
|
||||||
///
|
|
||||||
/// By default, the value used is 20.0 added to the padding edge of
|
|
||||||
/// `MediaQuery.of(context).padding` that corresponds to the surrounding
|
|
||||||
/// [TextDirection]. This ensures that the drag area for notched devices is
|
|
||||||
/// not obscured. For example, if `TextDirection.of(context)` is set to
|
|
||||||
/// [TextDirection.ltr], 20.0 will be added to
|
|
||||||
/// `MediaQuery.of(context).padding.left`.
|
|
||||||
final double? drawerEdgeDragWidth;
|
|
||||||
|
|
||||||
/// Determines if the [Scaffold.drawer] can be opened with a drag
|
|
||||||
/// gesture on mobile.
|
|
||||||
///
|
|
||||||
/// On desktop platforms, the drawer is not draggable.
|
|
||||||
///
|
|
||||||
/// By default, the drag gesture is enabled on mobile.
|
|
||||||
final bool? drawerEnableOpenDragGesture;
|
|
||||||
|
|
||||||
/// Determines if the [Scaffold.endDrawer] can be opened with a
|
|
||||||
/// gesture on mobile.
|
|
||||||
///
|
|
||||||
/// On desktop platforms, the drawer is not draggable.
|
|
||||||
///
|
|
||||||
/// By default, the drag gesture is enabled on mobile.
|
|
||||||
final bool? endDrawerEnableOpenDragGesture;
|
|
||||||
|
|
||||||
/// Restoration ID to save and restore the state of the [Scaffold].
|
|
||||||
///
|
|
||||||
/// If it is non-null, the scaffold will persist and restore whether the
|
|
||||||
/// [drawer] and [endDrawer] was open or closed.
|
|
||||||
///
|
|
||||||
/// The state of this widget is persisted in a [RestorationBucket] claimed
|
|
||||||
/// from the surrounding [RestorationScope] using the provided restoration ID.
|
|
||||||
final String? restorationId;
|
|
||||||
}
|
|
@ -14,10 +14,8 @@
|
|||||||
// 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/gestures.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
import 'package:wyatt_ui_layout/src/core/scaffold_fields_wrapper.dart';
|
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
||||||
|
|
||||||
/// {@template bottom_navigation_bar_layout}
|
/// {@template bottom_navigation_bar_layout}
|
||||||
@ -29,7 +27,6 @@ class BottomNavigationBarLayout extends StructuralLayout {
|
|||||||
const BottomNavigationBarLayout({
|
const BottomNavigationBarLayout({
|
||||||
required this.body,
|
required this.body,
|
||||||
this.custom,
|
this.custom,
|
||||||
this.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -41,8 +38,6 @@ class BottomNavigationBarLayout extends StructuralLayout {
|
|||||||
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
||||||
custom;
|
custom;
|
||||||
|
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Scaffold(
|
Widget build(BuildContext context) => Scaffold(
|
||||||
body: body,
|
body: body,
|
||||||
@ -50,35 +45,5 @@ class BottomNavigationBarLayout extends StructuralLayout {
|
|||||||
context.components.bottomNavigationBar,
|
context.components.bottomNavigationBar,
|
||||||
) ??
|
) ??
|
||||||
context.components.bottomNavigationBar,
|
context.components.bottomNavigationBar,
|
||||||
floatingActionButtonLocation:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
|
||||||
floatingActionButtonAnimator:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonAnimator,
|
|
||||||
persistentFooterButtons: scaffoldFieldsWrapper?.persistentFooterButtons,
|
|
||||||
persistentFooterAlignment:
|
|
||||||
scaffoldFieldsWrapper?.persistentFooterAlignment ??
|
|
||||||
AlignmentDirectional.centerEnd,
|
|
||||||
drawer: scaffoldFieldsWrapper?.drawer,
|
|
||||||
onDrawerChanged: scaffoldFieldsWrapper?.onDrawerChanged,
|
|
||||||
endDrawer: scaffoldFieldsWrapper?.endDrawer,
|
|
||||||
onEndDrawerChanged: scaffoldFieldsWrapper?.onEndDrawerChanged,
|
|
||||||
bottomSheet: scaffoldFieldsWrapper?.bottomSheet,
|
|
||||||
backgroundColor: scaffoldFieldsWrapper?.backgroundColor,
|
|
||||||
resizeToAvoidBottomInset:
|
|
||||||
scaffoldFieldsWrapper?.resizeToAvoidBottomInset,
|
|
||||||
primary: scaffoldFieldsWrapper?.primary ?? true,
|
|
||||||
drawerDragStartBehavior:
|
|
||||||
scaffoldFieldsWrapper?.drawerDragStartBehavior ??
|
|
||||||
DragStartBehavior.start,
|
|
||||||
extendBody: scaffoldFieldsWrapper?.extendBody ?? false,
|
|
||||||
extendBodyBehindAppBar:
|
|
||||||
scaffoldFieldsWrapper?.extendBodyBehindAppBar ?? false,
|
|
||||||
drawerScrimColor: scaffoldFieldsWrapper?.drawerScrimColor,
|
|
||||||
drawerEdgeDragWidth: scaffoldFieldsWrapper?.drawerEdgeDragWidth,
|
|
||||||
drawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.drawerEnableOpenDragGesture ?? true,
|
|
||||||
endDrawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.endDrawerEnableOpenDragGesture ?? true,
|
|
||||||
restorationId: scaffoldFieldsWrapper?.restorationId,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,8 @@
|
|||||||
// 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/gestures.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
import 'package:wyatt_ui_layout/src/core/scaffold_fields_wrapper.dart';
|
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
||||||
|
|
||||||
/// {@template frame_layout}
|
/// {@template frame_layout}
|
||||||
@ -35,9 +33,7 @@ class FrameLayout extends StructuralLayout {
|
|||||||
required this.body,
|
required this.body,
|
||||||
this.customAppBar,
|
this.customAppBar,
|
||||||
this.customBottomNavBar,
|
this.customBottomNavBar,
|
||||||
this.customFloatingActionButton,
|
|
||||||
this.height = 60,
|
this.height = 60,
|
||||||
this.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -48,19 +44,12 @@ class FrameLayout extends StructuralLayout {
|
|||||||
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
||||||
customBottomNavBar;
|
customBottomNavBar;
|
||||||
|
|
||||||
/// An optional function that can be used to customize the
|
|
||||||
/// floating action button
|
|
||||||
final FloatingActionButtonComponent? Function(FloatingActionButtonComponent?)?
|
|
||||||
customFloatingActionButton;
|
|
||||||
|
|
||||||
/// The main content of the layout.
|
/// The main content of the layout.
|
||||||
final Widget body;
|
final Widget body;
|
||||||
|
|
||||||
/// The height of the top app bar.
|
/// The height of the top app bar.
|
||||||
final double height;
|
final double height;
|
||||||
|
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Scaffold(
|
Widget build(BuildContext context) => Scaffold(
|
||||||
appBar: (customAppBar?.call(context.components.topAppBar) != null ||
|
appBar: (customAppBar?.call(context.components.topAppBar) != null ||
|
||||||
@ -71,42 +60,9 @@ class FrameLayout extends StructuralLayout {
|
|||||||
context.components.topAppBar!,
|
context.components.topAppBar!,
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
floatingActionButton: customFloatingActionButton
|
body: body,
|
||||||
?.call(context.components.floatingActionButton) ??
|
|
||||||
context.components.floatingActionButton,
|
|
||||||
bottomNavigationBar:
|
bottomNavigationBar:
|
||||||
customBottomNavBar?.call(context.components.bottomNavigationBar) ??
|
customBottomNavBar?.call(context.components.bottomNavigationBar) ??
|
||||||
context.components.bottomNavigationBar,
|
context.components.bottomNavigationBar,
|
||||||
body: body,
|
|
||||||
floatingActionButtonLocation:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
|
||||||
floatingActionButtonAnimator:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonAnimator,
|
|
||||||
persistentFooterButtons: scaffoldFieldsWrapper?.persistentFooterButtons,
|
|
||||||
persistentFooterAlignment:
|
|
||||||
scaffoldFieldsWrapper?.persistentFooterAlignment ??
|
|
||||||
AlignmentDirectional.centerEnd,
|
|
||||||
drawer: scaffoldFieldsWrapper?.drawer,
|
|
||||||
onDrawerChanged: scaffoldFieldsWrapper?.onDrawerChanged,
|
|
||||||
endDrawer: scaffoldFieldsWrapper?.endDrawer,
|
|
||||||
onEndDrawerChanged: scaffoldFieldsWrapper?.onEndDrawerChanged,
|
|
||||||
bottomSheet: scaffoldFieldsWrapper?.bottomSheet,
|
|
||||||
backgroundColor: scaffoldFieldsWrapper?.backgroundColor,
|
|
||||||
resizeToAvoidBottomInset:
|
|
||||||
scaffoldFieldsWrapper?.resizeToAvoidBottomInset,
|
|
||||||
primary: scaffoldFieldsWrapper?.primary ?? true,
|
|
||||||
drawerDragStartBehavior:
|
|
||||||
scaffoldFieldsWrapper?.drawerDragStartBehavior ??
|
|
||||||
DragStartBehavior.start,
|
|
||||||
extendBody: scaffoldFieldsWrapper?.extendBody ?? false,
|
|
||||||
extendBodyBehindAppBar:
|
|
||||||
scaffoldFieldsWrapper?.extendBodyBehindAppBar ?? false,
|
|
||||||
drawerScrimColor: scaffoldFieldsWrapper?.drawerScrimColor,
|
|
||||||
drawerEdgeDragWidth: scaffoldFieldsWrapper?.drawerEdgeDragWidth,
|
|
||||||
drawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.drawerEnableOpenDragGesture ?? true,
|
|
||||||
endDrawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.endDrawerEnableOpenDragGesture ?? true,
|
|
||||||
restorationId: scaffoldFieldsWrapper?.restorationId,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,8 @@
|
|||||||
// 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/gestures.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
import 'package:wyatt_ui_layout/src/core/scaffold_fields_wrapper.dart';
|
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
||||||
|
|
||||||
/// {@template top_bar_layout}
|
/// {@template top_bar_layout}
|
||||||
@ -39,7 +37,6 @@ abstract class TopBarLayout<T extends TopBarComponent>
|
|||||||
required this.body,
|
required this.body,
|
||||||
this.custom,
|
this.custom,
|
||||||
this.height = 60,
|
this.height = 60,
|
||||||
this.scaffoldFieldsWrapper,
|
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -57,8 +54,6 @@ abstract class TopBarLayout<T extends TopBarComponent>
|
|||||||
/// Returns the top bar component for the given [BuildContext].
|
/// Returns the top bar component for the given [BuildContext].
|
||||||
T? child(BuildContext context);
|
T? child(BuildContext context);
|
||||||
|
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Scaffold(
|
Widget build(BuildContext context) => Scaffold(
|
||||||
appBar: (custom?.call(child(context)) != null || child(context) != null)
|
appBar: (custom?.call(child(context)) != null || child(context) != null)
|
||||||
@ -68,36 +63,6 @@ abstract class TopBarLayout<T extends TopBarComponent>
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
body: body,
|
body: body,
|
||||||
floatingActionButtonLocation:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
|
||||||
floatingActionButtonAnimator:
|
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonAnimator,
|
|
||||||
persistentFooterButtons: scaffoldFieldsWrapper?.persistentFooterButtons,
|
|
||||||
persistentFooterAlignment:
|
|
||||||
scaffoldFieldsWrapper?.persistentFooterAlignment ??
|
|
||||||
AlignmentDirectional.centerEnd,
|
|
||||||
drawer: scaffoldFieldsWrapper?.drawer,
|
|
||||||
onDrawerChanged: scaffoldFieldsWrapper?.onDrawerChanged,
|
|
||||||
endDrawer: scaffoldFieldsWrapper?.endDrawer,
|
|
||||||
onEndDrawerChanged: scaffoldFieldsWrapper?.onEndDrawerChanged,
|
|
||||||
bottomSheet: scaffoldFieldsWrapper?.bottomSheet,
|
|
||||||
backgroundColor: scaffoldFieldsWrapper?.backgroundColor,
|
|
||||||
resizeToAvoidBottomInset:
|
|
||||||
scaffoldFieldsWrapper?.resizeToAvoidBottomInset,
|
|
||||||
primary: scaffoldFieldsWrapper?.primary ?? true,
|
|
||||||
drawerDragStartBehavior:
|
|
||||||
scaffoldFieldsWrapper?.drawerDragStartBehavior ??
|
|
||||||
DragStartBehavior.start,
|
|
||||||
extendBody: scaffoldFieldsWrapper?.extendBody ?? false,
|
|
||||||
extendBodyBehindAppBar:
|
|
||||||
scaffoldFieldsWrapper?.extendBodyBehindAppBar ?? false,
|
|
||||||
drawerScrimColor: scaffoldFieldsWrapper?.drawerScrimColor,
|
|
||||||
drawerEdgeDragWidth: scaffoldFieldsWrapper?.drawerEdgeDragWidth,
|
|
||||||
drawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.drawerEnableOpenDragGesture ?? true,
|
|
||||||
endDrawerEnableOpenDragGesture:
|
|
||||||
scaffoldFieldsWrapper?.endDrawerEnableOpenDragGesture ?? true,
|
|
||||||
restorationId: scaffoldFieldsWrapper?.restorationId,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,5 +14,4 @@
|
|||||||
// 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/>.
|
||||||
|
|
||||||
export './core/core.dart';
|
export 'presentation/presentation.dart';
|
||||||
export './presentation/presentation.dart';
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user