Compare commits
No commits in common. "e76857f1186a29c6ce91148607eecc10081a43a7" and "635bb329ea0d8ec589e926741d94a350926b3572" have entirely different histories.
e76857f118
...
635bb329ea
@ -88,7 +88,6 @@ class $CustomAppBarCWProxyImpl implements $TopAppBarComponentCWProxy {
|
|||||||
Key? key,
|
Key? key,
|
||||||
}) =>
|
}) =>
|
||||||
CustomAppBar(
|
CustomAppBar(
|
||||||
key: key ?? _value.key,
|
|
||||||
title: title ?? _value.title,
|
title: title ?? _value.title,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,7 @@ class $CustomBottomBarCWProxyImpl
|
|||||||
int? currentIndex,
|
int? currentIndex,
|
||||||
Key? key,
|
Key? key,
|
||||||
}) =>
|
}) =>
|
||||||
CustomBottomBar(
|
CustomBottomBar();
|
||||||
key: key ?? _value.key,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin $CustomBottomBarCWMixin on Component {
|
mixin $CustomBottomBarCWMixin on Component {
|
||||||
|
@ -5,12 +5,13 @@ import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
|||||||
part 'custom_error_widget.g.dart';
|
part 'custom_error_widget.g.dart';
|
||||||
|
|
||||||
@ComponentCopyWithExtension()
|
@ComponentCopyWithExtension()
|
||||||
class CustomErrorWidget extends ErrorComponent with $CustomErrorWidgetCWMixin {
|
class CustomErrorWidget extends ErrorWidgetComponent
|
||||||
const CustomErrorWidget({super.key, super.details});
|
with $CustomErrorWidgetCWMixin {
|
||||||
|
CustomErrorWidget({super.key, super.error});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => ColoredBox(
|
Widget build(BuildContext context) => ColoredBox(
|
||||||
color: Colors.red,
|
color: Colors.red,
|
||||||
child: Center(child: Text(details?.data ?? 'Error')),
|
child: Center(child: Text(error?.data ?? 'Error')),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6,36 +6,24 @@ part of 'custom_error_widget.dart';
|
|||||||
// ComponentCopyWithGenerator
|
// ComponentCopyWithGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
class $CustomErrorWidgetCWProxyImpl implements $ErrorComponentCWProxy {
|
class $CustomErrorWidgetCWProxyImpl implements $ErrorWidgetComponentCWProxy {
|
||||||
const $CustomErrorWidgetCWProxyImpl(this._value);
|
const $CustomErrorWidgetCWProxyImpl(this._value);
|
||||||
final CustomErrorWidget _value;
|
final CustomErrorWidget _value;
|
||||||
@override
|
@override
|
||||||
CustomErrorWidget colors(MultiColor? colors) => this(colors: colors);
|
CustomErrorWidget error(TextWrapper? error) => this(error: error);
|
||||||
@override
|
|
||||||
CustomErrorWidget message(TextWrapper? message) => this(message: message);
|
|
||||||
@override
|
|
||||||
CustomErrorWidget details(TextWrapper? details) => this(details: details);
|
|
||||||
@override
|
|
||||||
CustomErrorWidget themeResolver(
|
|
||||||
ThemeResolver<dynamic, dynamic, dynamic>? themeResolver) =>
|
|
||||||
this(themeResolver: themeResolver);
|
|
||||||
@override
|
@override
|
||||||
CustomErrorWidget key(Key? key) => this(key: key);
|
CustomErrorWidget key(Key? key) => this(key: key);
|
||||||
@override
|
@override
|
||||||
CustomErrorWidget call({
|
CustomErrorWidget call({
|
||||||
MultiColor? colors,
|
TextWrapper? error,
|
||||||
TextWrapper? message,
|
|
||||||
TextWrapper? details,
|
|
||||||
ThemeResolver<dynamic, dynamic, dynamic>? themeResolver,
|
|
||||||
Key? key,
|
Key? key,
|
||||||
}) =>
|
}) =>
|
||||||
CustomErrorWidget(
|
CustomErrorWidget(
|
||||||
key: key ?? _value.key,
|
error: error ?? _value.error,
|
||||||
details: details ?? _value.details,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin $CustomErrorWidgetCWMixin on Component {
|
mixin $CustomErrorWidgetCWMixin on Component {
|
||||||
$ErrorComponentCWProxy get copyWith =>
|
$ErrorWidgetComponentCWProxy get copyWith =>
|
||||||
$CustomErrorWidgetCWProxyImpl(this as CustomErrorWidget);
|
$CustomErrorWidgetCWProxyImpl(this as CustomErrorWidget);
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,11 @@ import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
|||||||
part 'custom_loading_widget.g.dart';
|
part 'custom_loading_widget.g.dart';
|
||||||
|
|
||||||
@ComponentCopyWithExtension()
|
@ComponentCopyWithExtension()
|
||||||
class CustomLoadingWidget extends LoaderComponent
|
class CustomLoadingWidget extends LoadingWidgetComponent
|
||||||
with $CustomLoadingWidgetCWMixin {
|
with $CustomLoadingWidgetCWMixin {
|
||||||
const CustomLoadingWidget({super.key, super.colors});
|
CustomLoadingWidget({super.key, super.color});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Center(
|
Widget build(BuildContext context) =>
|
||||||
child: CircularProgressIndicator(
|
Center(child: CircularProgressIndicator(color: color));
|
||||||
color: (colors?.isColor ?? false) ? colors!.color : Colors.blue,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
@ -6,42 +6,25 @@ part of 'custom_loading_widget.dart';
|
|||||||
// ComponentCopyWithGenerator
|
// ComponentCopyWithGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
class $CustomLoadingWidgetCWProxyImpl implements $LoaderComponentCWProxy {
|
class $CustomLoadingWidgetCWProxyImpl
|
||||||
|
implements $LoadingWidgetComponentCWProxy {
|
||||||
const $CustomLoadingWidgetCWProxyImpl(this._value);
|
const $CustomLoadingWidgetCWProxyImpl(this._value);
|
||||||
final CustomLoadingWidget _value;
|
final CustomLoadingWidget _value;
|
||||||
@override
|
@override
|
||||||
CustomLoadingWidget colors(MultiColor? colors) => this(colors: colors);
|
CustomLoadingWidget color(Color? color) => this(color: color);
|
||||||
@override
|
|
||||||
CustomLoadingWidget radius(double? radius) => this(radius: radius);
|
|
||||||
@override
|
|
||||||
CustomLoadingWidget stroke(double? stroke) => this(stroke: stroke);
|
|
||||||
@override
|
|
||||||
CustomLoadingWidget duration(Duration? duration) => this(duration: duration);
|
|
||||||
@override
|
|
||||||
CustomLoadingWidget flip(bool? flip) => this(flip: flip);
|
|
||||||
@override
|
|
||||||
CustomLoadingWidget themeResolver(
|
|
||||||
ThemeResolver<dynamic, dynamic, dynamic>? themeResolver) =>
|
|
||||||
this(themeResolver: themeResolver);
|
|
||||||
@override
|
@override
|
||||||
CustomLoadingWidget key(Key? key) => this(key: key);
|
CustomLoadingWidget key(Key? key) => this(key: key);
|
||||||
@override
|
@override
|
||||||
CustomLoadingWidget call({
|
CustomLoadingWidget call({
|
||||||
MultiColor? colors,
|
Color? color,
|
||||||
double? radius,
|
|
||||||
double? stroke,
|
|
||||||
Duration? duration,
|
|
||||||
bool? flip,
|
|
||||||
ThemeResolver<dynamic, dynamic, dynamic>? themeResolver,
|
|
||||||
Key? key,
|
Key? key,
|
||||||
}) =>
|
}) =>
|
||||||
CustomLoadingWidget(
|
CustomLoadingWidget(
|
||||||
key: key ?? _value.key,
|
color: color ?? _value.color,
|
||||||
colors: colors ?? _value.colors,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin $CustomLoadingWidgetCWMixin on Component {
|
mixin $CustomLoadingWidgetCWMixin on Component {
|
||||||
$LoaderComponentCWProxy get copyWith =>
|
$LoadingWidgetComponentCWProxy get copyWith =>
|
||||||
$CustomLoadingWidgetCWProxyImpl(this as CustomLoadingWidget);
|
$CustomLoadingWidgetCWProxyImpl(this as CustomLoadingWidget);
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@ import 'package:bloc_layout_example/components/custom_error_widget.dart';
|
|||||||
import 'package:bloc_layout_example/components/custom_loading_widget.dart';
|
import 'package:bloc_layout_example/components/custom_loading_widget.dart';
|
||||||
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
|
||||||
|
|
||||||
abstract class AppThemeComponent {
|
class AppThemeComponent {
|
||||||
static const ComponentThemeData components = ComponentThemeData.raw(
|
static ComponentThemeData get components => ComponentThemeData.raw(
|
||||||
topAppBar: CustomAppBar(),
|
appBar: const CustomAppBar(),
|
||||||
bottomNavigationBar: CustomBottomBar(),
|
bottomNavigationBar: const CustomBottomBar(),
|
||||||
loader: CustomLoadingWidget(),
|
loadingWidget: CustomLoadingWidget(),
|
||||||
error: CustomErrorWidget(),
|
errorWidget: CustomErrorWidget(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class MyApp extends StatelessWidget {
|
|||||||
// This widget is the root of your application.
|
// This widget is the root of your application.
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => ComponentTheme(
|
Widget build(BuildContext context) => ComponentTheme(
|
||||||
data: AppThemeComponent.components,
|
componentThemeWidget: AppThemeComponent.components,
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
title: 'Bloc Layout Example',
|
title: 'Bloc Layout Example',
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
@ -122,7 +122,7 @@ class ExampleFrameLayoutCrudConsumer
|
|||||||
ExampleFrameLayoutCrudConsumer({super.key})
|
ExampleFrameLayoutCrudConsumer({super.key})
|
||||||
: super(
|
: super(
|
||||||
customAppBar: (bar) => bar?.copyWith.title(
|
customAppBar: (bar) => bar?.copyWith.title(
|
||||||
const TextWrapper('Example Title'),
|
'Example Title'.wrap(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ class ExampleFrameLayoutCrudListConsumer
|
|||||||
ExampleFrameLayoutCrudListConsumer({super.key})
|
ExampleFrameLayoutCrudListConsumer({super.key})
|
||||||
: super(
|
: super(
|
||||||
customAppBar: (bar) => bar?.copyWith.title(
|
customAppBar: (bar) => bar?.copyWith.title(
|
||||||
const TextWrapper('Example Title'),
|
'Example Title'.wrap(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -23,12 +23,11 @@ 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.errorWidget?.copyWith(error: state.message.wrap()) ??
|
||||||
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.loadingWidget ?? const SizedBox.shrink();
|
||||||
|
|
||||||
Widget initialBuilder(BuildContext context, CrudInitial state) =>
|
Widget initialBuilder(BuildContext context, CrudInitial state) =>
|
||||||
const SizedBox.shrink();
|
const SizedBox.shrink();
|
||||||
|
@ -123,5 +123,9 @@ class TextWrapper {
|
|||||||
final Color? selectionColor;
|
final Color? selectionColor;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() => data;
|
String toString() => 'TextWrapper(data: $data, style: $style, '
|
||||||
|
'gradientColors: $gradientColors, textAlign: $textAlign, '
|
||||||
|
'textDirection: $textDirection, softWrap: $softWrap, '
|
||||||
|
'overflow: $overflow, maxLines: $maxLines, '
|
||||||
|
'selectionColor: $selectionColor)';
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import 'package:wyatt_ui_layout_example/pages/bottom_navigation_bar_layout_page_
|
|||||||
|
|
||||||
class AppThemeComponent {
|
class AppThemeComponent {
|
||||||
static ComponentThemeData get components => ComponentThemeData.raw(
|
static ComponentThemeData get components => ComponentThemeData.raw(
|
||||||
topAppBar: const CustomAppBar(),
|
appBar: const CustomAppBar(),
|
||||||
bottomNavigationBar: CustomBottomNavigationBar(
|
bottomNavigationBar: CustomBottomNavigationBar(
|
||||||
onTap: (context, index) {
|
onTap: (context, index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
|
@ -29,7 +29,7 @@ class MyApp extends StatelessWidget {
|
|||||||
// This widget is the root of your application.
|
// This widget is the root of your application.
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => ComponentTheme(
|
Widget build(BuildContext context) => ComponentTheme(
|
||||||
data: AppThemeComponent.components,
|
componentThemeWidget: AppThemeComponent.components,
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
title: 'Wyatt Ui Layout Example',
|
title: 'Wyatt Ui Layout Example',
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
|
@ -7,8 +7,7 @@ class AppBarLayoutPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => TopAppBarLayout(
|
Widget build(BuildContext context) => TopAppBarLayout(
|
||||||
custom: (topBar) =>
|
custom: (p0) => p0?.copyWith.title('New Title'.wrap()),
|
||||||
topBar?.copyWith.title(const TextWrapper('New Title')),
|
|
||||||
body: const Center(
|
body: const Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'Body',
|
'Body',
|
||||||
|
@ -52,12 +52,12 @@ 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?.call(context.components.appBar) != null ||
|
||||||
context.components.topAppBar != null)
|
context.components.appBar != null)
|
||||||
? PreferredSize(
|
? PreferredSize(
|
||||||
preferredSize: Size.fromHeight(height),
|
preferredSize: Size.fromHeight(height),
|
||||||
child: customAppBar?.call(context.components.topAppBar) ??
|
child: customAppBar?.call(context.components.appBar) ??
|
||||||
context.components.topAppBar!,
|
context.components.appBar!,
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
body: body,
|
body: body,
|
||||||
|
@ -82,8 +82,7 @@ class TopAppBarLayout extends TopBarLayout<TopAppBarComponent> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
TopAppBarComponent? child(BuildContext context) =>
|
TopAppBarComponent? child(BuildContext context) => context.components.appBar;
|
||||||
context.components.topAppBar;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A concrete implementation of [TopBarLayout] for a navigation bar.
|
/// A concrete implementation of [TopBarLayout] for a navigation bar.
|
||||||
@ -103,5 +102,5 @@ class TopNavigationBarLayout extends TopBarLayout<TopNavigationBarComponent> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
TopNavigationBarComponent? child(BuildContext context) =>
|
TopNavigationBarComponent? child(BuildContext context) =>
|
||||||
context.components.topNavigationBar;
|
context.components.topNavigationBarComponent;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user