refactor(ui_layouts): Refactored block using the UI components package, introducing breaking changes
This commit is contained in:
parent
8be4efbb52
commit
791a6d0f83
@ -17,11 +17,15 @@ class $CustomBottomNavigationBarCWProxyImpl
|
|||||||
CustomBottomNavigationBar currentIndex(int? currentIndex) =>
|
CustomBottomNavigationBar currentIndex(int? currentIndex) =>
|
||||||
this(currentIndex: currentIndex);
|
this(currentIndex: currentIndex);
|
||||||
@override
|
@override
|
||||||
|
CustomBottomNavigationBar items(List<BottomNavigationBarItem>? items) =>
|
||||||
|
this(items: items);
|
||||||
|
@override
|
||||||
CustomBottomNavigationBar key(Key? key) => this(key: key);
|
CustomBottomNavigationBar key(Key? key) => this(key: key);
|
||||||
@override
|
@override
|
||||||
CustomBottomNavigationBar call({
|
CustomBottomNavigationBar call({
|
||||||
void Function(BuildContext, int)? onTap,
|
void Function(BuildContext, int)? onTap,
|
||||||
int? currentIndex,
|
int? currentIndex,
|
||||||
|
List<BottomNavigationBarItem>? items,
|
||||||
Key? key,
|
Key? key,
|
||||||
}) =>
|
}) =>
|
||||||
CustomBottomNavigationBar(
|
CustomBottomNavigationBar(
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:wyatt_component_copy_with_extension/wyatt_component_copy_with_extension.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
|
|
||||||
|
part 'custom_desktop_app_bar.g.dart';
|
||||||
|
|
||||||
|
@ComponentCopyWithExtension()
|
||||||
|
class CustomDesktopAppBar extends TopAppBarComponent
|
||||||
|
with $CustomDesktopAppBarCWMixin {
|
||||||
|
const CustomDesktopAppBar({
|
||||||
|
super.title,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) => AppBar(
|
||||||
|
backgroundColor: Colors.green,
|
||||||
|
title: Text(title?.data ?? ''),
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,104 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'custom_desktop_app_bar.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// ComponentCopyWithGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
class $CustomDesktopAppBarCWProxyImpl implements $TopAppBarComponentCWProxy {
|
||||||
|
const $CustomDesktopAppBarCWProxyImpl(this._value);
|
||||||
|
final CustomDesktopAppBar _value;
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar title(TextWrapper? title) => this(title: title);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar centerTitle(bool? centerTitle) =>
|
||||||
|
this(centerTitle: centerTitle);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar shape(ShapeBorder? shape) => this(shape: shape);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar systemOverlayStyle(
|
||||||
|
SystemUiOverlayStyle? systemOverlayStyle) =>
|
||||||
|
this(systemOverlayStyle: systemOverlayStyle);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar automaticallyImplyLeading(
|
||||||
|
bool? automaticallyImplyLeading) =>
|
||||||
|
this(automaticallyImplyLeading: automaticallyImplyLeading);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar flexibleSpace(Widget? flexibleSpace) =>
|
||||||
|
this(flexibleSpace: flexibleSpace);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar bottom(PreferredSizeWidget? bottom) =>
|
||||||
|
this(bottom: bottom);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar elevation(double? elevation) =>
|
||||||
|
this(elevation: elevation);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar scrolledUnderElevation(double? scrolledUnderElevation) =>
|
||||||
|
this(scrolledUnderElevation: scrolledUnderElevation);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar shadowColor(Color? shadowColor) =>
|
||||||
|
this(shadowColor: shadowColor);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar surfaceTintColor(Color? surfaceTintColor) =>
|
||||||
|
this(surfaceTintColor: surfaceTintColor);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar backgroundColor(MultiColor? backgroundColor) =>
|
||||||
|
this(backgroundColor: backgroundColor);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar iconTheme(IconThemeData? iconTheme) =>
|
||||||
|
this(iconTheme: iconTheme);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar primary(bool? primary) => this(primary: primary);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar excludeHeaderSemantics(bool? excludeHeaderSemantics) =>
|
||||||
|
this(excludeHeaderSemantics: excludeHeaderSemantics);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar toolbarHeight(double? toolbarHeight) =>
|
||||||
|
this(toolbarHeight: toolbarHeight);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar leadingWidth(double? leadingWidth) =>
|
||||||
|
this(leadingWidth: leadingWidth);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar leading(Widget? leading) => this(leading: leading);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar actions(List<Widget>? actions) => this(actions: actions);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar expandedWidget(List<Widget>? expandedWidget) =>
|
||||||
|
this(expandedWidget: expandedWidget);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar key(Key? key) => this(key: key);
|
||||||
|
@override
|
||||||
|
CustomDesktopAppBar call({
|
||||||
|
TextWrapper? title,
|
||||||
|
bool? centerTitle,
|
||||||
|
ShapeBorder? shape,
|
||||||
|
SystemUiOverlayStyle? systemOverlayStyle,
|
||||||
|
bool? automaticallyImplyLeading,
|
||||||
|
Widget? flexibleSpace,
|
||||||
|
PreferredSizeWidget? bottom,
|
||||||
|
double? elevation,
|
||||||
|
double? scrolledUnderElevation,
|
||||||
|
Color? shadowColor,
|
||||||
|
Color? surfaceTintColor,
|
||||||
|
MultiColor? backgroundColor,
|
||||||
|
IconThemeData? iconTheme,
|
||||||
|
bool? primary,
|
||||||
|
bool? excludeHeaderSemantics,
|
||||||
|
double? toolbarHeight,
|
||||||
|
double? leadingWidth,
|
||||||
|
Widget? leading,
|
||||||
|
List<Widget>? actions,
|
||||||
|
List<Widget>? expandedWidget,
|
||||||
|
Key? key,
|
||||||
|
}) =>
|
||||||
|
CustomDesktopAppBar(
|
||||||
|
title: title ?? _value.title,
|
||||||
|
key: key ?? _value.key,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
mixin $CustomDesktopAppBarCWMixin on Component {
|
||||||
|
$TopAppBarComponentCWProxy get copyWith =>
|
||||||
|
$CustomDesktopAppBarCWProxyImpl(this as CustomDesktopAppBar);
|
||||||
|
}
|
@ -3,17 +3,19 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:wyatt_component_copy_with_extension/wyatt_component_copy_with_extension.dart';
|
import 'package:wyatt_component_copy_with_extension/wyatt_component_copy_with_extension.dart';
|
||||||
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
|
|
||||||
part 'custom_app_bar.g.dart';
|
part 'custom_mobile_app_bar.g.dart';
|
||||||
|
|
||||||
@ComponentCopyWithExtension()
|
@ComponentCopyWithExtension()
|
||||||
class CustomAppBar extends TopAppBarComponent with $CustomAppBarCWMixin {
|
class CustomMobileAppBar extends TopAppBarComponent
|
||||||
const CustomAppBar({
|
with $CustomMobileAppBarCWMixin {
|
||||||
|
const CustomMobileAppBar({
|
||||||
super.title,
|
super.title,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => AppBar(
|
Widget build(BuildContext context) => AppBar(
|
||||||
|
backgroundColor: Colors.red,
|
||||||
title: Text(title?.data ?? ''),
|
title: Text(title?.data ?? ''),
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'custom_mobile_app_bar.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// ComponentCopyWithGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
class $CustomMobileAppBarCWProxyImpl implements $TopAppBarComponentCWProxy {
|
||||||
|
const $CustomMobileAppBarCWProxyImpl(this._value);
|
||||||
|
final CustomMobileAppBar _value;
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar title(TextWrapper? title) => this(title: title);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar centerTitle(bool? centerTitle) =>
|
||||||
|
this(centerTitle: centerTitle);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar shape(ShapeBorder? shape) => this(shape: shape);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar systemOverlayStyle(
|
||||||
|
SystemUiOverlayStyle? systemOverlayStyle) =>
|
||||||
|
this(systemOverlayStyle: systemOverlayStyle);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar automaticallyImplyLeading(
|
||||||
|
bool? automaticallyImplyLeading) =>
|
||||||
|
this(automaticallyImplyLeading: automaticallyImplyLeading);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar flexibleSpace(Widget? flexibleSpace) =>
|
||||||
|
this(flexibleSpace: flexibleSpace);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar bottom(PreferredSizeWidget? bottom) =>
|
||||||
|
this(bottom: bottom);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar elevation(double? elevation) => this(elevation: elevation);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar scrolledUnderElevation(double? scrolledUnderElevation) =>
|
||||||
|
this(scrolledUnderElevation: scrolledUnderElevation);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar shadowColor(Color? shadowColor) =>
|
||||||
|
this(shadowColor: shadowColor);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar surfaceTintColor(Color? surfaceTintColor) =>
|
||||||
|
this(surfaceTintColor: surfaceTintColor);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar backgroundColor(MultiColor? backgroundColor) =>
|
||||||
|
this(backgroundColor: backgroundColor);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar iconTheme(IconThemeData? iconTheme) =>
|
||||||
|
this(iconTheme: iconTheme);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar primary(bool? primary) => this(primary: primary);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar excludeHeaderSemantics(bool? excludeHeaderSemantics) =>
|
||||||
|
this(excludeHeaderSemantics: excludeHeaderSemantics);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar toolbarHeight(double? toolbarHeight) =>
|
||||||
|
this(toolbarHeight: toolbarHeight);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar leadingWidth(double? leadingWidth) =>
|
||||||
|
this(leadingWidth: leadingWidth);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar leading(Widget? leading) => this(leading: leading);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar actions(List<Widget>? actions) => this(actions: actions);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar expandedWidget(List<Widget>? expandedWidget) =>
|
||||||
|
this(expandedWidget: expandedWidget);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar key(Key? key) => this(key: key);
|
||||||
|
@override
|
||||||
|
CustomMobileAppBar call({
|
||||||
|
TextWrapper? title,
|
||||||
|
bool? centerTitle,
|
||||||
|
ShapeBorder? shape,
|
||||||
|
SystemUiOverlayStyle? systemOverlayStyle,
|
||||||
|
bool? automaticallyImplyLeading,
|
||||||
|
Widget? flexibleSpace,
|
||||||
|
PreferredSizeWidget? bottom,
|
||||||
|
double? elevation,
|
||||||
|
double? scrolledUnderElevation,
|
||||||
|
Color? shadowColor,
|
||||||
|
Color? surfaceTintColor,
|
||||||
|
MultiColor? backgroundColor,
|
||||||
|
IconThemeData? iconTheme,
|
||||||
|
bool? primary,
|
||||||
|
bool? excludeHeaderSemantics,
|
||||||
|
double? toolbarHeight,
|
||||||
|
double? leadingWidth,
|
||||||
|
Widget? leading,
|
||||||
|
List<Widget>? actions,
|
||||||
|
List<Widget>? expandedWidget,
|
||||||
|
Key? key,
|
||||||
|
}) =>
|
||||||
|
CustomMobileAppBar(
|
||||||
|
title: title ?? _value.title,
|
||||||
|
key: key ?? _value.key,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
mixin $CustomMobileAppBarCWMixin on Component {
|
||||||
|
$TopAppBarComponentCWProxy get copyWith =>
|
||||||
|
$CustomMobileAppBarCWProxyImpl(this as CustomMobileAppBar);
|
||||||
|
}
|
@ -1,14 +1,18 @@
|
|||||||
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_example/components/custom_app_bar.dart';
|
|
||||||
import 'package:wyatt_ui_layout_example/components/custom_bottom_navigation_bar.dart';
|
import 'package:wyatt_ui_layout_example/components/custom_bottom_navigation_bar.dart';
|
||||||
|
import 'package:wyatt_ui_layout_example/components/custom_desktop_app_bar.dart';
|
||||||
|
import 'package:wyatt_ui_layout_example/components/custom_mobile_app_bar.dart';
|
||||||
import 'package:wyatt_ui_layout_example/pages/bottom_navigation_bar_layout_page_1.dart';
|
import 'package:wyatt_ui_layout_example/pages/bottom_navigation_bar_layout_page_1.dart';
|
||||||
import 'package:wyatt_ui_layout_example/pages/bottom_navigation_bar_layout_page_2.dart';
|
import 'package:wyatt_ui_layout_example/pages/bottom_navigation_bar_layout_page_2.dart';
|
||||||
|
|
||||||
class AppThemeComponent {
|
class AppThemeComponent {
|
||||||
static ComponentThemeData get components => ComponentThemeData.raw(
|
static ComponentThemeData get components => ComponentThemeData.raw(
|
||||||
topAppBar: const CustomAppBar(),
|
topAppBars: {
|
||||||
bottomNavigationBar: CustomBottomNavigationBar(
|
'mobile': const CustomMobileAppBar(),
|
||||||
|
'desktop': const CustomDesktopAppBar(),
|
||||||
|
}.registry(),
|
||||||
|
bottomNavigationBars: CustomBottomNavigationBar(
|
||||||
onTap: (context, index) {
|
onTap: (context, index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -37,6 +41,6 @@ class AppThemeComponent {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
).registry(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,15 @@ class AppBarLayoutPage extends StatelessWidget {
|
|||||||
const AppBarLayoutPage({super.key});
|
const AppBarLayoutPage({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => TopAppBarLayout(
|
Widget build(BuildContext context) => LayoutBuilder(
|
||||||
custom: (topBar) =>
|
builder: (context, constraint) => StructuralLayout.withTopAppBar(
|
||||||
topBar?.copyWith.title(const TextWrapper('New Title')),
|
barId: constraint.maxWidth < 600 ? 'mobile' : 'desktop',
|
||||||
body: const Center(
|
custom: (topBar) =>
|
||||||
child: Text(
|
topBar?.copyWith.title(const TextWrapper('New Title')),
|
||||||
'Body',
|
body: const Center(
|
||||||
|
child: Text(
|
||||||
|
'Body',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -5,7 +5,7 @@ class BottomNavigationBarLayoutPage1 extends StatelessWidget {
|
|||||||
const BottomNavigationBarLayoutPage1({super.key});
|
const BottomNavigationBarLayoutPage1({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => BottomNavigationBarLayout(
|
Widget build(BuildContext context) => StructuralLayout.withBottomNavBar(
|
||||||
custom: (p0) => p0?.copyWith.call(currentIndex: 0),
|
custom: (p0) => p0?.copyWith.call(currentIndex: 0),
|
||||||
body: const TopAppBarLayout(
|
body: const TopAppBarLayout(
|
||||||
body: Center(
|
body: Center(
|
||||||
|
@ -5,7 +5,7 @@ class BottomNavigationBarLayoutPage2 extends StatelessWidget {
|
|||||||
const BottomNavigationBarLayoutPage2({super.key});
|
const BottomNavigationBarLayoutPage2({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => BottomNavigationBarLayout(
|
Widget build(BuildContext context) => StructuralLayout.withBottomNavBar(
|
||||||
custom: (p0) => p0?.copyWith.currentIndex(1),
|
custom: (p0) => p0?.copyWith.currentIndex(1),
|
||||||
body: const TopAppBarLayout(
|
body: const TopAppBarLayout(
|
||||||
body: Center(
|
body: Center(
|
||||||
|
@ -2,10 +2,12 @@
|
|||||||
FLUTTER_ROOT=/Users/maloleon/Library/flutter
|
FLUTTER_ROOT=/Users/maloleon/Library/flutter
|
||||||
FLUTTER_APPLICATION_PATH=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example
|
FLUTTER_APPLICATION_PATH=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example
|
||||||
COCOAPODS_PARALLEL_CODE_SIGN=true
|
COCOAPODS_PARALLEL_CODE_SIGN=true
|
||||||
|
FLUTTER_TARGET=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example/lib/main.dart
|
||||||
FLUTTER_BUILD_DIR=build
|
FLUTTER_BUILD_DIR=build
|
||||||
FLUTTER_BUILD_NAME=1.0.0
|
FLUTTER_BUILD_NAME=1.0.0
|
||||||
FLUTTER_BUILD_NUMBER=1
|
FLUTTER_BUILD_NUMBER=1
|
||||||
|
DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==,RkxVVFRFUl9XRUJfQ0FOVkFTS0lUX1VSTD1odHRwczovL3d3dy5nc3RhdGljLmNvbS9mbHV0dGVyLWNhbnZhc2tpdC9iMjAxODNlMDQwOTYwOTRiY2MzN2Q5Y2RlMmE0Yjk2ZjVjYzY4NGNmLw==
|
||||||
DART_OBFUSCATION=false
|
DART_OBFUSCATION=false
|
||||||
TRACK_WIDGET_CREATION=true
|
TRACK_WIDGET_CREATION=true
|
||||||
TREE_SHAKE_ICONS=false
|
TREE_SHAKE_ICONS=false
|
||||||
PACKAGE_CONFIG=.dart_tool/package_config.json
|
PACKAGE_CONFIG=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example/.dart_tool/package_config.json
|
||||||
|
@ -3,10 +3,12 @@
|
|||||||
export "FLUTTER_ROOT=/Users/maloleon/Library/flutter"
|
export "FLUTTER_ROOT=/Users/maloleon/Library/flutter"
|
||||||
export "FLUTTER_APPLICATION_PATH=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example"
|
export "FLUTTER_APPLICATION_PATH=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example"
|
||||||
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
||||||
|
export "FLUTTER_TARGET=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example/lib/main.dart"
|
||||||
export "FLUTTER_BUILD_DIR=build"
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
export "FLUTTER_BUILD_NAME=1.0.0"
|
export "FLUTTER_BUILD_NAME=1.0.0"
|
||||||
export "FLUTTER_BUILD_NUMBER=1"
|
export "FLUTTER_BUILD_NUMBER=1"
|
||||||
|
export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==,RkxVVFRFUl9XRUJfQ0FOVkFTS0lUX1VSTD1odHRwczovL3d3dy5nc3RhdGljLmNvbS9mbHV0dGVyLWNhbnZhc2tpdC9iMjAxODNlMDQwOTYwOTRiY2MzN2Q5Y2RlMmE0Yjk2ZjVjYzY4NGNmLw=="
|
||||||
export "DART_OBFUSCATION=false"
|
export "DART_OBFUSCATION=false"
|
||||||
export "TRACK_WIDGET_CREATION=true"
|
export "TRACK_WIDGET_CREATION=true"
|
||||||
export "TREE_SHAKE_ICONS=false"
|
export "TREE_SHAKE_ICONS=false"
|
||||||
export "PACKAGE_CONFIG=.dart_tool/package_config.json"
|
export "PACKAGE_CONFIG=/Users/maloleon/Studio/wyatt-packages/packages/wyatt_ui_layout/example/.dart_tool/package_config.json"
|
||||||
|
@ -182,7 +182,7 @@
|
|||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastSwiftUpdateCheck = 0920;
|
LastSwiftUpdateCheck = 0920;
|
||||||
LastUpgradeCheck = 1300;
|
LastUpgradeCheck = 1430;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
33CC10EC2044A3C60003C045 = {
|
33CC10EC2044A3C60003C045 = {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1300"
|
LastUpgradeVersion = "1430"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
@ -18,7 +18,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.0 <3.0.0"
|
sdk: ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
# Dependencies specify other packages that your package needs in order to work.
|
# Dependencies specify other packages that your package needs in order to work.
|
||||||
# To automatically upgrade your package dependencies to the latest versions
|
# To automatically upgrade your package dependencies to the latest versions
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
// 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_layout/src/presentation/layouts/layout.dart';
|
||||||
|
import 'package:wyatt_ui_layout/wyatt_ui_layout.dart';
|
||||||
|
|
||||||
|
/// {@template content_layout}
|
||||||
|
/// An abstract class that provides a base for creating custom content layout
|
||||||
|
/// widgets.
|
||||||
|
/// {@endtemplate}
|
||||||
|
abstract class ContentLayout extends Layout {
|
||||||
|
/// {@macro content_layout}
|
||||||
|
const ContentLayout({super.key});
|
||||||
|
|
||||||
|
factory ContentLayout.withGrid({
|
||||||
|
required List<Widget> children,
|
||||||
|
double verticalGap = 30,
|
||||||
|
double horizontalGap = 30,
|
||||||
|
}) =>
|
||||||
|
GridLayout(
|
||||||
|
verticalGap: verticalGap,
|
||||||
|
horizontalGap: horizontalGap,
|
||||||
|
children: children,
|
||||||
|
);
|
||||||
|
}
|
@ -14,4 +14,5 @@
|
|||||||
// 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 './content_layout.dart';
|
||||||
export './grid_layout.dart';
|
export './grid_layout.dart';
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/content_layouts/content_layout.dart';
|
||||||
|
|
||||||
/// {@template grid_layout}
|
/// {@template grid_layout}
|
||||||
/// A concrete implementation of the [ContentLayout] abstract class for a layout
|
/// A concrete implementation of the [ContentLayout] abstract class for a layout
|
||||||
|
@ -28,21 +28,3 @@ abstract class Layout extends StatelessWidget {
|
|||||||
/// {@macro layout}
|
/// {@macro layout}
|
||||||
const Layout({super.key});
|
const Layout({super.key});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// {@template structural_layout}
|
|
||||||
/// An abstract class that provides a base for creating custom structural layout
|
|
||||||
/// widgets.
|
|
||||||
/// {@endtemplate}
|
|
||||||
abstract class StructuralLayout extends Layout {
|
|
||||||
/// {@macro structural_layout}
|
|
||||||
const StructuralLayout({super.key});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// {@template content_layout}
|
|
||||||
/// An abstract class that provides a base for creating custom content layout
|
|
||||||
/// widgets.
|
|
||||||
/// {@endtemplate}
|
|
||||||
abstract class ContentLayout extends Layout {
|
|
||||||
/// {@macro content_layout}
|
|
||||||
const ContentLayout({super.key});
|
|
||||||
}
|
|
||||||
|
@ -19,6 +19,7 @@ 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/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';
|
||||||
|
import 'package:wyatt_ui_layout/src/presentation/layouts/structural_layouts/structural_layout.dart';
|
||||||
|
|
||||||
/// {@template bottom_navigation_bar_layout}
|
/// {@template bottom_navigation_bar_layout}
|
||||||
/// A concrete implementation of the [Layout] abstract class for a layout which
|
/// A concrete implementation of the [Layout] abstract class for a layout which
|
||||||
@ -29,6 +30,7 @@ class BottomNavigationBarLayout extends StructuralLayout {
|
|||||||
const BottomNavigationBarLayout({
|
const BottomNavigationBarLayout({
|
||||||
required this.body,
|
required this.body,
|
||||||
this.custom,
|
this.custom,
|
||||||
|
this.barId,
|
||||||
this.scaffoldFieldsWrapper,
|
this.scaffoldFieldsWrapper,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
@ -41,15 +43,23 @@ class BottomNavigationBarLayout extends StructuralLayout {
|
|||||||
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
||||||
custom;
|
custom;
|
||||||
|
|
||||||
|
/// The parameter [barId] enables to specify the particular
|
||||||
|
/// bottom bar to utilize.
|
||||||
|
final String? barId;
|
||||||
|
|
||||||
|
/// The [scaffoldFieldsWrapper] is a final variable that serves as a wrapper
|
||||||
|
/// for customizing the scaffold.
|
||||||
|
/// It allows for tailored modifications and enhancements to the standard
|
||||||
|
/// scaffold functionality.
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
||||||
|
|
||||||
@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.bottomNavigationBarComponent(barId).call(),
|
||||||
) ??
|
) ??
|
||||||
context.components.bottomNavigationBar,
|
context.components.bottomNavigationBarComponent(barId).call(),
|
||||||
floatingActionButtonLocation:
|
floatingActionButtonLocation:
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
||||||
floatingActionButtonAnimator:
|
floatingActionButtonAnimator:
|
||||||
|
@ -18,7 +18,7 @@ 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/core/scaffold_fields_wrapper.dart';
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/structural_layouts/structural_layout.dart';
|
||||||
|
|
||||||
/// {@template frame_layout}
|
/// {@template frame_layout}
|
||||||
/// A layout that contains a top app bar, a body and a bottom navigation bar.
|
/// A layout that contains a top app bar, a body and a bottom navigation bar.
|
||||||
@ -36,6 +36,9 @@ class FrameLayout extends StructuralLayout {
|
|||||||
this.customAppBar,
|
this.customAppBar,
|
||||||
this.customBottomNavBar,
|
this.customBottomNavBar,
|
||||||
this.customFloatingActionButton,
|
this.customFloatingActionButton,
|
||||||
|
this.appBarId,
|
||||||
|
this.bottomNavBarId,
|
||||||
|
this.floatingActionButtonId,
|
||||||
this.height = 60,
|
this.height = 60,
|
||||||
this.scaffoldFieldsWrapper,
|
this.scaffoldFieldsWrapper,
|
||||||
super.key,
|
super.key,
|
||||||
@ -53,6 +56,18 @@ class FrameLayout extends StructuralLayout {
|
|||||||
final FloatingActionButtonComponent? Function(FloatingActionButtonComponent?)?
|
final FloatingActionButtonComponent? Function(FloatingActionButtonComponent?)?
|
||||||
customFloatingActionButton;
|
customFloatingActionButton;
|
||||||
|
|
||||||
|
/// The parameter [appBarId] enables to specify the particular
|
||||||
|
/// app bar to utilize.
|
||||||
|
final String? appBarId;
|
||||||
|
|
||||||
|
/// The parameter [bottomNavBarId] enables to specify the particular
|
||||||
|
/// bottom bar to utilize.
|
||||||
|
final String? bottomNavBarId;
|
||||||
|
|
||||||
|
/// The parameter [floatingActionButtonId] enables to specify
|
||||||
|
/// the particular floating action button to utilize.
|
||||||
|
final String? floatingActionButtonId;
|
||||||
|
|
||||||
/// The main content of the layout.
|
/// The main content of the layout.
|
||||||
final Widget body;
|
final Widget body;
|
||||||
|
|
||||||
@ -63,20 +78,27 @@ class FrameLayout extends StructuralLayout {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Scaffold(
|
Widget build(BuildContext context) => Scaffold(
|
||||||
appBar: (customAppBar?.call(context.components.topAppBar) != null ||
|
appBar: (customAppBar
|
||||||
context.components.topAppBar != null)
|
?.call(context.components.topAppBarComponent(appBarId)()) !=
|
||||||
|
null)
|
||||||
? PreferredSize(
|
? PreferredSize(
|
||||||
preferredSize: Size.fromHeight(height),
|
preferredSize: Size.fromHeight(height),
|
||||||
child: customAppBar?.call(context.components.topAppBar) ??
|
child: customAppBar?.call(
|
||||||
context.components.topAppBar!,
|
context.components.topAppBarComponent(appBarId)(),
|
||||||
|
) ??
|
||||||
|
context.components.topAppBarComponent(appBarId)(),
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
floatingActionButton: customFloatingActionButton
|
floatingActionButton: customFloatingActionButton?.call(
|
||||||
?.call(context.components.floatingActionButton) ??
|
context.components
|
||||||
context.components.floatingActionButton,
|
.floatingActionButtonComponent(floatingActionButtonId)(),
|
||||||
bottomNavigationBar:
|
) ??
|
||||||
customBottomNavBar?.call(context.components.bottomNavigationBar) ??
|
context.components
|
||||||
context.components.bottomNavigationBar,
|
.floatingActionButtonComponent(floatingActionButtonId)(),
|
||||||
|
bottomNavigationBar: customBottomNavBar?.call(
|
||||||
|
context.components.bottomNavigationBarComponent(bottomNavBarId)(),
|
||||||
|
) ??
|
||||||
|
context.components.bottomNavigationBarComponent(bottomNavBarId)(),
|
||||||
body: body,
|
body: body,
|
||||||
floatingActionButtonLocation:
|
floatingActionButtonLocation:
|
||||||
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
scaffoldFieldsWrapper?.floatingActionButtonLocation,
|
||||||
|
@ -0,0 +1,99 @@
|
|||||||
|
// 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/widgets.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
|
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
||||||
|
import 'package:wyatt_ui_layout/wyatt_ui_layout.dart';
|
||||||
|
|
||||||
|
typedef ComponentCallBack<T extends Component> = T? Function(T? component);
|
||||||
|
|
||||||
|
/// {@template structural_layout}
|
||||||
|
/// An abstract class that provides a base for creating custom structural layout
|
||||||
|
/// widgets.
|
||||||
|
/// {@endtemplate}
|
||||||
|
abstract class StructuralLayout extends Layout {
|
||||||
|
/// {@macro structural_layout}
|
||||||
|
const StructuralLayout({super.key});
|
||||||
|
|
||||||
|
factory StructuralLayout.withTopAppBar({
|
||||||
|
required Widget body,
|
||||||
|
ComponentCallBack<TopAppBarComponent>? custom,
|
||||||
|
String? barId,
|
||||||
|
double height = 60,
|
||||||
|
ScaffoldFieldsWrapper? scaffoldFieldsWrapper,
|
||||||
|
}) =>
|
||||||
|
TopAppBarLayout(
|
||||||
|
body: body,
|
||||||
|
barId: barId,
|
||||||
|
custom: custom,
|
||||||
|
height: height,
|
||||||
|
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
|
||||||
|
);
|
||||||
|
|
||||||
|
factory StructuralLayout.withTopNavigationBar({
|
||||||
|
required Widget body,
|
||||||
|
ComponentCallBack<TopNavigationBarComponent>? custom,
|
||||||
|
String? barId,
|
||||||
|
double height = 60,
|
||||||
|
ScaffoldFieldsWrapper? scaffoldFieldsWrapper,
|
||||||
|
}) =>
|
||||||
|
TopNavigationBarLayout(
|
||||||
|
body: body,
|
||||||
|
barId: barId,
|
||||||
|
custom: custom,
|
||||||
|
height: height,
|
||||||
|
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
|
||||||
|
);
|
||||||
|
|
||||||
|
factory StructuralLayout.withFrame({
|
||||||
|
required Widget body,
|
||||||
|
ComponentCallBack<TopAppBarComponent>? customAppBar,
|
||||||
|
ComponentCallBack<BottomNavigationBarComponent>? customBottomNavBar,
|
||||||
|
ComponentCallBack<FloatingActionButtonComponent>?
|
||||||
|
customFloatingActionButton,
|
||||||
|
String? appBarId,
|
||||||
|
String? bottomNavBarId,
|
||||||
|
String? floatingActionButtonId,
|
||||||
|
double height = 60,
|
||||||
|
ScaffoldFieldsWrapper? scaffoldFieldsWrapper,
|
||||||
|
}) =>
|
||||||
|
FrameLayout(
|
||||||
|
body: body,
|
||||||
|
customAppBar: customAppBar,
|
||||||
|
customBottomNavBar: customBottomNavBar,
|
||||||
|
customFloatingActionButton: customFloatingActionButton,
|
||||||
|
appBarId: appBarId,
|
||||||
|
bottomNavBarId: bottomNavBarId,
|
||||||
|
floatingActionButtonId: floatingActionButtonId,
|
||||||
|
height: height,
|
||||||
|
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
|
||||||
|
);
|
||||||
|
|
||||||
|
factory StructuralLayout.withBottomNavBar({
|
||||||
|
required Widget? body,
|
||||||
|
BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
|
||||||
|
custom,
|
||||||
|
String? barId,
|
||||||
|
ScaffoldFieldsWrapper? scaffoldFieldsWrapper,
|
||||||
|
}) =>
|
||||||
|
BottomNavigationBarLayout(
|
||||||
|
body: body,
|
||||||
|
custom: custom,
|
||||||
|
barId: barId,
|
||||||
|
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
|
||||||
|
);
|
||||||
|
}
|
@ -16,4 +16,5 @@
|
|||||||
|
|
||||||
export './bottom_navigation_bar_layout.dart';
|
export './bottom_navigation_bar_layout.dart';
|
||||||
export './frame_layout.dart';
|
export './frame_layout.dart';
|
||||||
|
export './structural_layout.dart';
|
||||||
export './top_app_bar_layout.dart';
|
export './top_app_bar_layout.dart';
|
||||||
|
@ -18,7 +18,7 @@ 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/core/scaffold_fields_wrapper.dart';
|
||||||
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
import 'package:wyatt_ui_layout/src/presentation/layouts/structural_layouts/structural_layout.dart';
|
||||||
|
|
||||||
/// {@template top_bar_layout}
|
/// {@template top_bar_layout}
|
||||||
/// An abstract class for creating layouts with a top bar component.
|
/// An abstract class for creating layouts with a top bar component.
|
||||||
@ -27,7 +27,7 @@ import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
|
|||||||
/// component, such as an app bar or navigation bar.
|
/// component, such as an app bar or navigation bar.
|
||||||
///
|
///
|
||||||
/// Implementations of this class must provide a concrete implementation of
|
/// Implementations of this class must provide a concrete implementation of
|
||||||
/// the [child] method, which returns the specific top bar component for the
|
/// the [appBar] method, which returns the specific top bar component for the
|
||||||
/// given [BuildContext].
|
/// given [BuildContext].
|
||||||
///
|
///
|
||||||
/// [T] represents the type of the top bar component.
|
/// [T] represents the type of the top bar component.
|
||||||
@ -38,6 +38,7 @@ abstract class TopBarLayout<T extends TopBarComponent>
|
|||||||
const TopBarLayout({
|
const TopBarLayout({
|
||||||
required this.body,
|
required this.body,
|
||||||
this.custom,
|
this.custom,
|
||||||
|
this.barId,
|
||||||
this.height = 60,
|
this.height = 60,
|
||||||
this.scaffoldFieldsWrapper,
|
this.scaffoldFieldsWrapper,
|
||||||
super.key,
|
super.key,
|
||||||
@ -51,20 +52,31 @@ abstract class TopBarLayout<T extends TopBarComponent>
|
|||||||
/// a customized top bar component.
|
/// a customized top bar component.
|
||||||
final T? Function(T?)? custom;
|
final T? Function(T?)? custom;
|
||||||
|
|
||||||
|
/// The parameter [barId] enables to specify the particular app bar to use.
|
||||||
|
final String? barId;
|
||||||
|
|
||||||
/// The height of the top bar.
|
/// The height of the top bar.
|
||||||
final double height;
|
final double height;
|
||||||
|
|
||||||
/// Returns the top bar component for the given [BuildContext].
|
/// Returns the top bar component for the given [BuildContext].
|
||||||
T? child(BuildContext context);
|
T appBar(BuildContext context, String? barId);
|
||||||
|
|
||||||
|
/// The [scaffoldFieldsWrapper] is a final variable that serves as a wrapper
|
||||||
|
/// for customizing the scaffold.
|
||||||
|
/// It allows for tailored modifications and enhancements to the standard
|
||||||
|
/// scaffold functionality.
|
||||||
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
|
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(
|
||||||
|
appBar(context, barId),
|
||||||
|
) !=
|
||||||
|
null)
|
||||||
? PreferredSize(
|
? PreferredSize(
|
||||||
preferredSize: Size.fromHeight(height),
|
preferredSize: Size.fromHeight(height),
|
||||||
child: custom?.call(child(context)) ?? child(context)!,
|
child: custom?.call(appBar(context, barId)) ??
|
||||||
|
appBar(context, barId),
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
body: body,
|
body: body,
|
||||||
@ -111,14 +123,16 @@ class TopAppBarLayout extends TopBarLayout<TopAppBarComponent> {
|
|||||||
/// [height] represents the height of the top bar.
|
/// [height] represents the height of the top bar.
|
||||||
const TopAppBarLayout({
|
const TopAppBarLayout({
|
||||||
required super.body,
|
required super.body,
|
||||||
|
super.barId,
|
||||||
super.custom,
|
super.custom,
|
||||||
super.height,
|
super.height,
|
||||||
|
super.scaffoldFieldsWrapper,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
TopAppBarComponent? child(BuildContext context) =>
|
TopAppBarComponent appBar(BuildContext context, String? barId) =>
|
||||||
context.components.topAppBar;
|
context.components.topAppBarComponent(barId).call();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A concrete implementation of [TopBarLayout] for a navigation bar.
|
/// A concrete implementation of [TopBarLayout] for a navigation bar.
|
||||||
@ -131,12 +145,14 @@ class TopNavigationBarLayout extends TopBarLayout<TopNavigationBarComponent> {
|
|||||||
/// [height] represents the height of the top bar.
|
/// [height] represents the height of the top bar.
|
||||||
const TopNavigationBarLayout({
|
const TopNavigationBarLayout({
|
||||||
required super.body,
|
required super.body,
|
||||||
|
super.barId,
|
||||||
super.custom,
|
super.custom,
|
||||||
super.height,
|
super.height,
|
||||||
|
super.scaffoldFieldsWrapper,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
TopNavigationBarComponent? child(BuildContext context) =>
|
TopNavigationBarComponent appBar(BuildContext context, String? barId) =>
|
||||||
context.components.topNavigationBar;
|
context.components.topNavigationBarComponent(barId).call();
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ version: 0.1.1
|
|||||||
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.0 <3.0.0"
|
sdk: ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter: { sdk: flutter }
|
flutter: { sdk: flutter }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user