Compare commits

...
Author SHA1 Message Date
malo 80dffdb986 feat(layout): modify some layout files to utilize ScaffoldFieldWrapper class 2023-05-18 16:34:04 +02:00
malo 9713d1ec29 feat(ui_layout-bloc_layout): proxy scaffold fields 2023-05-10 09:01:42 +02:00
malo a15a065e36 chore: export floating action button 2023-05-04 14:47:22 +02:00
hugo cfcf9e75f8 build: fix melos parsing error + disable commit reference to avoid null error...
continuous-integration/drone/pr Build is passing
2023-05-04 09:46:02 +02:00
hugo 0a11157cd0 chore(release): publish packages �
continuous-integration/drone/pr Build is passing
2023-05-04 09:30:52 +02:00
malo d3184eb3e1 feat: add floating action button component (close #191)
continuous-integration/drone/pr Build is passing
2023-05-03 19:06:52 +02:00
37 changed files with 684 additions and 22 deletions
+32
View File
@@ -3,6 +3,38 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## 2023-05-04
### Changes
---
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
- [`wyatt_ui_components` - `v0.2.1`](#wyatt_ui_components---v021)
- [`wyatt_bloc_layout` - `v0.1.0+1`](#wyatt_bloc_layout---v0101)
- [`wyatt_ui_kit` - `v3.0.1`](#wyatt_ui_kit---v301)
- [`wyatt_ui_layout` - `v0.1.0+1`](#wyatt_ui_layout---v0101)
Packages with dependency updates only:
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
- `wyatt_bloc_layout` - `v0.1.0+1`
- `wyatt_ui_kit` - `v3.0.1`
- `wyatt_ui_layout` - `v0.1.0+1`
---
#### `wyatt_ui_components` - `v0.2.1`
- **FEAT**: add floating action button component (close #191). (d3184eb3)
## 2023-05-03 ## 2023-05-03
### Changes ### Changes
+3 -3
View File
@@ -1,5 +1,5 @@
name: Wyatt-Packages name: Wyatt-Packages
#repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages Gitea not yet supported # repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
sdkPath: auto sdkPath: auto
@@ -15,10 +15,10 @@ command:
updateGitTagRefs: true updateGitTagRefs: true
linkToCommits: false # Gitea not yet supported linkToCommits: false # Gitea not yet supported
workspaceChangelog: true workspaceChangelog: true
includeCommitId: true includeCommitId: false # Generate error in Melos 3...
branch: master branch: master
message: | message: |
chore(release): publish packages 🎉 chore(release): publish packages
{new_package_versions} {new_package_versions}
+4
View File
@@ -1,3 +1,7 @@
## 0.1.0+1
- Update a dependency to the latest release.
## 0.1.0 ## 0.1.0
> Note: This release has breaking changes. > Note: This release has breaking changes.
@@ -39,13 +39,13 @@ dependencies:
version: ^2.0.1 version: ^2.0.1
wyatt_ui_layout: wyatt_ui_layout:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.1.0 version: ^0.1.0+1
wyatt_crud_bloc: wyatt_crud_bloc:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.1.1 version: ^0.1.1
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
wyatt_component_copy_with_extension: wyatt_component_copy_with_extension:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^2.0.1 version: ^2.0.1
@@ -23,12 +23,17 @@ import 'package:wyatt_ui_components/wyatt_ui_components.dart';
mixin CrudMixin<Cubit extends bloc_base.Cubit<dynamic>, mixin CrudMixin<Cubit extends bloc_base.Cubit<dynamic>,
SuccessState extends CrudSuccess> { SuccessState extends CrudSuccess> {
Widget errorBuilder(BuildContext context, CrudError state) => Widget errorBuilder(BuildContext context, CrudError state) =>
context.components.errorComponent.call( context.components.error != null
message: (state.message != null) ? TextWrapper(state.message!) : null, ? context.components.errorComponent.call(
); message:
(state.message != null) ? TextWrapper(state.message!) : null,
)
: const SizedBox.shrink();
Widget loadingBuilder(BuildContext context, CrudLoading state) => Widget loadingBuilder(BuildContext context, CrudLoading state) =>
context.components.loader ?? const SizedBox.shrink(); context.components.loader != null
? context.components.loaderComponent.call()
: const CircularProgressIndicator();
Widget initialBuilder(BuildContext context, CrudInitial state) => Widget initialBuilder(BuildContext context, CrudInitial state) =>
const SizedBox.shrink(); const SizedBox.shrink();
@@ -26,6 +26,7 @@ abstract class FrameLayoutGridCubitScreenCrudList<
super.customAppBar, super.customAppBar,
super.customBottomNavBar, super.customBottomNavBar,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
@@ -26,6 +26,7 @@ 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,
}); });
@@ -34,12 +35,14 @@ 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,6 +29,7 @@ abstract class FrameLayoutCubitScreenCrud<
super.customBottomNavBar, super.customBottomNavBar,
super.height, super.height,
super.key, super.key,
super.scaffoldFieldsWrapper,
}); });
@override @override
@@ -25,6 +25,7 @@ abstract class FrameLayoutCubitScreenCrudItem<
super.customAppBar, super.customAppBar,
super.customBottomNavBar, super.customBottomNavBar,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
@@ -25,6 +25,7 @@ abstract class FrameLayoutCubitScreenCrudList<
super.customAppBar, super.customAppBar,
super.customBottomNavBar, super.customBottomNavBar,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
@@ -25,6 +25,7 @@ abstract class TopAppBarGridLayoutCubitScreenCrudList<
const TopAppBarGridLayoutCubitScreenCrudList({ const TopAppBarGridLayoutCubitScreenCrudList({
super.custom, super.custom,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
@@ -26,16 +26,19 @@ abstract class TopAppBarLayoutCubitScreen<Cubit extends bloc_base.Cubit<State>,
const TopAppBarLayoutCubitScreen({ const TopAppBarLayoutCubitScreen({
this.custom, this.custom,
this.height = 60, this.height = 60,
this.scaffoldFieldsWrapper,
super.key, super.key,
}); });
final double height; final double height;
final TopAppBarComponent? Function(TopAppBarComponent?)? custom; final TopAppBarComponent? Function(TopAppBarComponent?)? custom;
final ScaffoldFieldsWrapper? scaffoldFieldsWrapper;
@override @override
Widget parent(BuildContext context, Widget child) => TopAppBarLayout( Widget parent(BuildContext context, Widget child) => TopAppBarLayout(
height: height, height: height,
custom: custom, custom: custom,
scaffoldFieldsWrapper: scaffoldFieldsWrapper,
body: child, body: child,
); );
} }
@@ -27,6 +27,7 @@ abstract class TopAppBarLayoutCubitScreenCrud<
const TopAppBarLayoutCubitScreenCrud({ const TopAppBarLayoutCubitScreenCrud({
super.custom, super.custom,
super.height, super.height,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
@@ -24,6 +24,7 @@ abstract class TopAppBarLayoutCubitScreenCrudItem<
const TopAppBarLayoutCubitScreenCrudItem({ const TopAppBarLayoutCubitScreenCrudItem({
super.custom, super.custom,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
@@ -24,6 +24,7 @@ abstract class TopAppBarLayoutCubitScreenCrudList<
const TopAppBarLayoutCubitScreenCrudList({ const TopAppBarLayoutCubitScreenCrudList({
super.custom, super.custom,
super.height = 60, super.height = 60,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
} }
+3 -3
View File
@@ -1,7 +1,7 @@
name: wyatt_bloc_layout name: wyatt_bloc_layout
description: Layouts based on bloc helper library description: Layouts based on bloc helper library
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_bloc_layout repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_bloc_layout
version: 0.1.0 version: 0.1.0+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
@@ -19,7 +19,7 @@ dependencies:
wyatt_ui_layout: wyatt_ui_layout:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.1.0 version: ^0.1.0+1
wyatt_crud_bloc: wyatt_crud_bloc:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
@@ -27,7 +27,7 @@ dependencies:
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
dev_dependencies: dev_dependencies:
flutter_test: { sdk: flutter } flutter_test: { sdk: flutter }
@@ -16,7 +16,7 @@ dependencies:
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
dev_dependencies: dev_dependencies:
build_runner: ^2.3.3 build_runner: ^2.3.3
@@ -1,3 +1,7 @@
## 0.2.1
- **FEAT**: add floating action button component (close #191). (d3184eb3)
## 0.2.0 ## 0.2.0
> Note: This release has breaking changes. > Note: This release has breaking changes.
@@ -19,6 +19,7 @@ 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';
@@ -0,0 +1,107 @@
// 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/material.dart';
import 'package:wyatt_component_copy_with_extension/wyatt_component_copy_with_extension.dart';
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
part 'floating_action_button_component.g.dart';
@ComponentProxyExtension()
abstract class FloatingActionButtonComponent extends Component
with CopyWithMixin<$FloatingActionButtonComponentCWProxy> {
const FloatingActionButtonComponent({
this.child,
this.tooltip,
this.foregroundColor,
this.backgroundColor,
this.focusColor,
this.hoverColor,
this.splashColor,
this.heroTag,
this.onPressed,
this.mouseCursor,
this.elevation,
this.focusElevation,
this.hoverElevation,
this.highlightElevation,
this.disabledElevation,
this.mini,
this.shape,
this.clipBehavior,
this.isExtended,
this.focusNode,
this.autofocus,
this.materialTapTargetSize,
this.enableFeedback,
this.extendedIconLabelSpacing,
this.extendedPadding,
this.extendedTextStyle,
super.key,
});
final Widget? child;
final String? tooltip;
final Color? foregroundColor;
final Color? backgroundColor;
final Color? focusColor;
final Color? hoverColor;
final Color? splashColor;
final Object? heroTag;
final VoidCallback? onPressed;
final MouseCursor? mouseCursor;
final double? elevation;
final double? focusElevation;
final double? hoverElevation;
final double? highlightElevation;
final double? disabledElevation;
final bool? mini;
final ShapeBorder? shape;
final Clip? clipBehavior;
final bool? isExtended;
final FocusNode? focusNode;
final bool? autofocus;
final MaterialTapTargetSize? materialTapTargetSize;
final bool? enableFeedback;
final double? extendedIconLabelSpacing;
final EdgeInsetsGeometry? extendedPadding;
final TextStyle? extendedTextStyle;
}
@@ -0,0 +1,69 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'floating_action_button_component.dart';
// **************************************************************************
// ComponentProxyGenerator
// **************************************************************************
abstract class $FloatingActionButtonComponentCWProxy {
FloatingActionButtonComponent child(Widget? child);
FloatingActionButtonComponent tooltip(String? tooltip);
FloatingActionButtonComponent foregroundColor(Color? foregroundColor);
FloatingActionButtonComponent backgroundColor(Color? backgroundColor);
FloatingActionButtonComponent focusColor(Color? focusColor);
FloatingActionButtonComponent hoverColor(Color? hoverColor);
FloatingActionButtonComponent splashColor(Color? splashColor);
FloatingActionButtonComponent heroTag(Object? heroTag);
FloatingActionButtonComponent onPressed(void Function()? onPressed);
FloatingActionButtonComponent mouseCursor(MouseCursor? mouseCursor);
FloatingActionButtonComponent elevation(double? elevation);
FloatingActionButtonComponent focusElevation(double? focusElevation);
FloatingActionButtonComponent hoverElevation(double? hoverElevation);
FloatingActionButtonComponent highlightElevation(double? highlightElevation);
FloatingActionButtonComponent disabledElevation(double? disabledElevation);
FloatingActionButtonComponent mini(bool? mini);
FloatingActionButtonComponent shape(ShapeBorder? shape);
FloatingActionButtonComponent clipBehavior(Clip? clipBehavior);
FloatingActionButtonComponent isExtended(bool? isExtended);
FloatingActionButtonComponent focusNode(FocusNode? focusNode);
FloatingActionButtonComponent autofocus(bool? autofocus);
FloatingActionButtonComponent materialTapTargetSize(
MaterialTapTargetSize? materialTapTargetSize);
FloatingActionButtonComponent enableFeedback(bool? enableFeedback);
FloatingActionButtonComponent extendedIconLabelSpacing(
double? extendedIconLabelSpacing);
FloatingActionButtonComponent extendedPadding(
EdgeInsetsGeometry? extendedPadding);
FloatingActionButtonComponent extendedTextStyle(TextStyle? extendedTextStyle);
FloatingActionButtonComponent key(Key? key);
FloatingActionButtonComponent call({
Widget? child,
String? tooltip,
Color? foregroundColor,
Color? backgroundColor,
Color? focusColor,
Color? hoverColor,
Color? splashColor,
Object? heroTag,
void Function()? onPressed,
MouseCursor? mouseCursor,
double? elevation,
double? focusElevation,
double? hoverElevation,
double? highlightElevation,
double? disabledElevation,
bool? mini,
ShapeBorder? shape,
Clip? clipBehavior,
bool? isExtended,
FocusNode? focusNode,
bool? autofocus,
MaterialTapTargetSize? materialTapTargetSize,
bool? enableFeedback,
double? extendedIconLabelSpacing,
EdgeInsetsGeometry? extendedPadding,
TextStyle? extendedTextStyle,
Key? key,
});
}
@@ -0,0 +1,17 @@
// 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';
@@ -17,6 +17,7 @@
import 'package:copy_with_extension/copy_with_extension.dart'; import 'package:copy_with_extension/copy_with_extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:wyatt_ui_components/src/domain/entities/entities.dart'; import 'package:wyatt_ui_components/src/domain/entities/entities.dart';
import 'package:wyatt_ui_components/src/domain/entities/floating_buttons/floating_action_button_component.dart';
part 'component_theme_data.g.dart'; part 'component_theme_data.g.dart';
/// {@template component_theme_data} /// {@template component_theme_data}
@@ -41,6 +42,7 @@ class ComponentThemeData {
PortfolioCardComponent? portfolioCard, PortfolioCardComponent? portfolioCard,
QuoteCardComponent? quoteCard, QuoteCardComponent? quoteCard,
SkillCardComponent? skillCard, SkillCardComponent? skillCard,
FloatingActionButtonComponent? floatingActionButton,
}) => }) =>
ComponentThemeData.raw( ComponentThemeData.raw(
topAppBar: topAppBar, topAppBar: topAppBar,
@@ -58,6 +60,7 @@ class ComponentThemeData {
portfolioCard: portfolioCard, portfolioCard: portfolioCard,
quoteCard: quoteCard, quoteCard: quoteCard,
skillCard: skillCard, skillCard: skillCard,
floatingActionButton: floatingActionButton,
); );
/// {@macro component_theme_data} /// {@macro component_theme_data}
@@ -78,6 +81,7 @@ class ComponentThemeData {
portfolioCard: other.portfolioCard, portfolioCard: other.portfolioCard,
quoteCard: other.quoteCard, quoteCard: other.quoteCard,
skillCard: other.skillCard, skillCard: other.skillCard,
floatingActionButton: other.floatingActionButton,
); );
/// Create a [ComponentThemeData] given a set of exact values. Most values /// Create a [ComponentThemeData] given a set of exact values. Most values
@@ -102,6 +106,7 @@ class ComponentThemeData {
this.portfolioCard, this.portfolioCard,
this.quoteCard, this.quoteCard,
this.skillCard, this.skillCard,
this.floatingActionButton,
}); });
R _get<T extends Component, R>(T? component, R? returned) { R _get<T extends Component, R>(T? component, R? returned) {
@@ -173,4 +178,8 @@ class ComponentThemeData {
final SymbolButtonComponent? symbolButton; final SymbolButtonComponent? symbolButton;
$SymbolButtonComponentCWProxy get symbolButtonComponent => $SymbolButtonComponentCWProxy get symbolButtonComponent =>
_get(symbolButton, symbolButton?.copyWith); _get(symbolButton, symbolButton?.copyWith);
final FloatingActionButtonComponent? floatingActionButton;
$FloatingActionButtonComponentCWProxy get floatingActionButtonComponent =>
_get(floatingActionButton, floatingActionButton?.copyWith);
} }
@@ -41,6 +41,9 @@ abstract class _$ComponentThemeDataCWProxy {
ComponentThemeData skillCard(SkillCardComponent? skillCard); ComponentThemeData skillCard(SkillCardComponent? skillCard);
ComponentThemeData floatingActionButton(
FloatingActionButtonComponent? floatingActionButton);
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ComponentThemeData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ComponentThemeData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// ///
/// Usage /// Usage
@@ -63,6 +66,7 @@ abstract class _$ComponentThemeDataCWProxy {
PortfolioCardComponent? portfolioCard, PortfolioCardComponent? portfolioCard,
QuoteCardComponent? quoteCard, QuoteCardComponent? quoteCard,
SkillCardComponent? skillCard, SkillCardComponent? skillCard,
FloatingActionButtonComponent? floatingActionButton,
}); });
} }
@@ -136,6 +140,11 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
ComponentThemeData skillCard(SkillCardComponent? skillCard) => ComponentThemeData skillCard(SkillCardComponent? skillCard) =>
this(skillCard: skillCard); this(skillCard: skillCard);
@override
ComponentThemeData floatingActionButton(
FloatingActionButtonComponent? floatingActionButton) =>
this(floatingActionButton: floatingActionButton);
@override @override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ComponentThemeData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ComponentThemeData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
@@ -160,6 +169,7 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
Object? portfolioCard = const $CopyWithPlaceholder(), Object? portfolioCard = const $CopyWithPlaceholder(),
Object? quoteCard = const $CopyWithPlaceholder(), Object? quoteCard = const $CopyWithPlaceholder(),
Object? skillCard = const $CopyWithPlaceholder(), Object? skillCard = const $CopyWithPlaceholder(),
Object? floatingActionButton = const $CopyWithPlaceholder(),
}) { }) {
return ComponentThemeData( return ComponentThemeData(
topAppBar: topAppBar == const $CopyWithPlaceholder() topAppBar: topAppBar == const $CopyWithPlaceholder()
@@ -222,6 +232,10 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
? _value.skillCard ? _value.skillCard
// ignore: cast_nullable_to_non_nullable // ignore: cast_nullable_to_non_nullable
: skillCard as SkillCardComponent?, : skillCard as SkillCardComponent?,
floatingActionButton: floatingActionButton == const $CopyWithPlaceholder()
? _value.floatingActionButton
// ignore: cast_nullable_to_non_nullable
: floatingActionButton as FloatingActionButtonComponent?,
); );
} }
} }
+1 -1
View File
@@ -1,7 +1,7 @@
name: wyatt_ui_components name: wyatt_ui_components
description: Components that can be implemented in any application with copy constructor. description: Components that can be implemented in any application with copy constructor.
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_components repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_components
version: 0.2.0 version: 0.2.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
+4
View File
@@ -1,3 +1,7 @@
## 3.0.1
- Update a dependency to the latest release.
## 3.0.0 ## 3.0.0
> Note: This release has breaking changes. > Note: This release has breaking changes.
+1 -1
View File
@@ -20,7 +20,7 @@ dependencies:
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
dev_dependencies: dev_dependencies:
flutter_test: { sdk: flutter } flutter_test: { sdk: flutter }
+2 -2
View File
@@ -1,7 +1,7 @@
name: wyatt_ui_kit name: wyatt_ui_kit
description: UIKit and Design System used in Wyatt Studio. description: UIKit and Design System used in Wyatt Studio.
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_kit repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_kit
version: 3.0.0 version: 3.0.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
@@ -25,7 +25,7 @@ dependencies:
version: ^2.0.1 version: ^2.0.1
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
dev_dependencies: dev_dependencies:
build_runner: ^2.3.3 build_runner: ^2.3.3
+4
View File
@@ -1,3 +1,7 @@
## 0.1.0+1
- Update a dependency to the latest release.
## 0.1.0 ## 0.1.0
> Note: This release has breaking changes. > Note: This release has breaking changes.
@@ -36,7 +36,7 @@ dependencies:
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
wyatt_component_copy_with_extension: wyatt_component_copy_with_extension:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^2.0.1 version: ^2.0.1
@@ -0,0 +1,17 @@
// 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';
@@ -0,0 +1,244 @@
// 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,8 +14,10 @@
// 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}
@@ -27,6 +29,7 @@ class BottomNavigationBarLayout extends StructuralLayout {
const BottomNavigationBarLayout({ const BottomNavigationBarLayout({
required this.body, required this.body,
this.custom, this.custom,
this.scaffoldFieldsWrapper,
super.key, super.key,
}); });
@@ -38,6 +41,8 @@ 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,
@@ -45,5 +50,35 @@ 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,8 +14,10 @@
// 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}
@@ -33,7 +35,9 @@ 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,
}); });
@@ -44,12 +48,19 @@ 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 ||
@@ -60,9 +71,42 @@ class FrameLayout extends StructuralLayout {
context.components.topAppBar!, context.components.topAppBar!,
) )
: null, : null,
body: body, floatingActionButton: customFloatingActionButton
?.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,8 +14,10 @@
// 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}
@@ -37,6 +39,7 @@ 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,
}); });
@@ -54,6 +57,8 @@ 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)
@@ -63,6 +68,36 @@ 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,
); );
} }
@@ -78,6 +113,7 @@ class TopAppBarLayout extends TopBarLayout<TopAppBarComponent> {
required super.body, required super.body,
super.custom, super.custom,
super.height, super.height,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
@@ -98,6 +134,7 @@ class TopNavigationBarLayout extends TopBarLayout<TopNavigationBarComponent> {
required super.body, required super.body,
super.custom, super.custom,
super.height, super.height,
super.scaffoldFieldsWrapper,
super.key, super.key,
}); });
+2 -1
View File
@@ -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 'presentation/presentation.dart'; export './core/core.dart';
export './presentation/presentation.dart';
+2 -2
View File
@@ -1,7 +1,7 @@
name: wyatt_ui_layout name: wyatt_ui_layout
description: Main layouts to help you build your application views. description: Main layouts to help you build your application views.
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_layout repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_layout
version: 0.1.0 version: 0.1.0+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
@@ -14,7 +14,7 @@ dependencies:
wyatt_ui_components: wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
version: ^0.2.0 version: ^0.2.1
dev_dependencies: dev_dependencies:
flutter_test: { sdk: flutter } flutter_test: { sdk: flutter }