feat: add floating action button component (close #191)
All checks were successful
continuous-integration/drone/pr Build is passing
All checks were successful
continuous-integration/drone/pr Build is passing
This commit is contained in:
parent
0592cf9a3c
commit
d3184eb3e1
@ -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,
|
||||
});
|
||||
}
|
@ -17,6 +17,7 @@
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:flutter/material.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';
|
||||
|
||||
/// {@template component_theme_data}
|
||||
@ -41,6 +42,7 @@ class ComponentThemeData {
|
||||
PortfolioCardComponent? portfolioCard,
|
||||
QuoteCardComponent? quoteCard,
|
||||
SkillCardComponent? skillCard,
|
||||
FloatingActionButtonComponent? floatingActionButton,
|
||||
}) =>
|
||||
ComponentThemeData.raw(
|
||||
topAppBar: topAppBar,
|
||||
@ -58,6 +60,7 @@ class ComponentThemeData {
|
||||
portfolioCard: portfolioCard,
|
||||
quoteCard: quoteCard,
|
||||
skillCard: skillCard,
|
||||
floatingActionButton: floatingActionButton,
|
||||
);
|
||||
|
||||
/// {@macro component_theme_data}
|
||||
@ -78,6 +81,7 @@ class ComponentThemeData {
|
||||
portfolioCard: other.portfolioCard,
|
||||
quoteCard: other.quoteCard,
|
||||
skillCard: other.skillCard,
|
||||
floatingActionButton: other.floatingActionButton,
|
||||
);
|
||||
|
||||
/// Create a [ComponentThemeData] given a set of exact values. Most values
|
||||
@ -102,6 +106,7 @@ class ComponentThemeData {
|
||||
this.portfolioCard,
|
||||
this.quoteCard,
|
||||
this.skillCard,
|
||||
this.floatingActionButton,
|
||||
});
|
||||
|
||||
R _get<T extends Component, R>(T? component, R? returned) {
|
||||
@ -173,4 +178,8 @@ class ComponentThemeData {
|
||||
final SymbolButtonComponent? symbolButton;
|
||||
$SymbolButtonComponentCWProxy get symbolButtonComponent =>
|
||||
_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 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.
|
||||
///
|
||||
/// Usage
|
||||
@ -63,6 +66,7 @@ abstract class _$ComponentThemeDataCWProxy {
|
||||
PortfolioCardComponent? portfolioCard,
|
||||
QuoteCardComponent? quoteCard,
|
||||
SkillCardComponent? skillCard,
|
||||
FloatingActionButtonComponent? floatingActionButton,
|
||||
});
|
||||
}
|
||||
|
||||
@ -136,6 +140,11 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
|
||||
ComponentThemeData skillCard(SkillCardComponent? skillCard) =>
|
||||
this(skillCard: skillCard);
|
||||
|
||||
@override
|
||||
ComponentThemeData floatingActionButton(
|
||||
FloatingActionButtonComponent? floatingActionButton) =>
|
||||
this(floatingActionButton: floatingActionButton);
|
||||
|
||||
@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.
|
||||
@ -160,6 +169,7 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
|
||||
Object? portfolioCard = const $CopyWithPlaceholder(),
|
||||
Object? quoteCard = const $CopyWithPlaceholder(),
|
||||
Object? skillCard = const $CopyWithPlaceholder(),
|
||||
Object? floatingActionButton = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return ComponentThemeData(
|
||||
topAppBar: topAppBar == const $CopyWithPlaceholder()
|
||||
@ -222,6 +232,10 @@ class _$ComponentThemeDataCWProxyImpl implements _$ComponentThemeDataCWProxy {
|
||||
? _value.skillCard
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: skillCard as SkillCardComponent?,
|
||||
floatingActionButton: floatingActionButton == const $CopyWithPlaceholder()
|
||||
? _value.floatingActionButton
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: floatingActionButton as FloatingActionButtonComponent?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user