fix(deps): removed mentions of riverpod

This commit is contained in:
hdbg
2025-10-09 17:56:44 +02:00
parent f19578cfc4
commit 80a4a1126b
7 changed files with 70 additions and 202 deletions

View File

@@ -1,59 +0,0 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:markettakers/main.dart';
class SimpleStage extends StageFactory {
final String title = "Test";
@override
Future<bool> get isCompleted async {
return false;
}
@override
Future<void> start(StageController controller) async {
await Future.delayed(Duration(seconds: 2));
controller.updateProgress(0.3);
controller.updateTitle("test 2");
await Future.delayed(Duration(seconds: 2));
controller.updateProgress(0.6);
}
}
class SimpleStage2 extends StageFactory {
final String title = "Test 2";
@override
Future<bool> get isCompleted async {
return false;
}
@override
Future<void> start(StageController controller) async {
await Future.delayed(Duration(seconds: 2));
controller.updateProgress(0.3);
controller.updateTitle("test 5");
await Future.delayed(Duration(seconds: 2));
controller.updateProgress(0.6);
}
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
init();
final completer = Completer<void>();
completer.future.then((_) {
talker.info("Bootstrapper completed, launching app");
});
runApp(
Scaffold(
body: Bootstrapper(
stages: [SimpleStage(), SimpleStage2()],
onCompleted: completer,
),
),
);
}

View File

@@ -18,10 +18,7 @@ class AboutScreen extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Flexible( Flexible(flex: 2, child: Loader.playing(flavour: LoaderFlavour.big)),
flex: 2,
child: Loader(flavour: LoaderFlavour.big, playing: true),
),
Flexible( Flexible(
flex: 1, flex: 1,
child: Text( child: Text(

View File

@@ -180,9 +180,7 @@ class Bootstrapper extends StatelessWidget {
children: [ children: [
Flexible( Flexible(
flex: 3, flex: 3,
child: Center( child: Center(child: Loader.playing(flavour: LoaderFlavour.big)),
child: Loader(flavour: LoaderFlavour.big, playing: true),
),
), ),
Flexible(flex: 1, child: BootstrapFooter()), Flexible(flex: 1, child: BootstrapFooter()),
], ],

View File

@@ -1,67 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:rive/rive.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'base_loader.g.dart';
@riverpod
class LoaderState extends _$LoaderState {
@override
bool build() {
return false;
}
void stop() {
state = false;
}
void start() {
state = true;
}
}
class BaseLoader extends HookConsumerWidget {
final String filepath;
final Fit fit;
const BaseLoader({super.key, required this.filepath, this.fit = Fit.contain});
@override
Widget build(BuildContext context, WidgetRef ref) {
final loaderState = ref.watch(loaderStateProvider);
final animFile = useMemoized(
() => FileLoader.fromAsset(filepath, riveFactory: Factory.flutter),
);
useEffect(() {
return animFile.dispose;
}, [animFile]);
return RiveWidgetBuilder(
fileLoader: animFile,
builder: (context, state) {
switch (state) {
case RiveLoading():
return const Center(child: CircularProgressIndicator());
case RiveFailed():
final message = state.error.toString();
return ErrorWidget.withDetails(
message: message,
error: FlutterError(message),
);
case RiveLoaded(:final file):
final controller = RiveWidgetController(
file,
stateMachineSelector: StateMachineSelector.byIndex(0),
);
controller.active = loaderState;
return RiveWidget(controller: controller, fit: fit);
}
},
);
}
}

View File

@@ -1,62 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'base_loader.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
@ProviderFor(LoaderState)
const loaderStateProvider = LoaderStateProvider._();
final class LoaderStateProvider extends $NotifierProvider<LoaderState, bool> {
const LoaderStateProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'loaderStateProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$loaderStateHash();
@$internal
@override
LoaderState create() => LoaderState();
/// {@macro riverpod.override_with_value}
Override overrideWithValue(bool value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<bool>(value),
);
}
}
String _$loaderStateHash() => r'e220e72e138a376390817c6e5a4051c7e2c665b3';
abstract class _$LoaderState extends $Notifier<bool> {
bool build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref = this.ref as $Ref<bool, bool>;
final element =
ref.element
as $ClassProviderElement<
AnyNotifier<bool, bool>,
bool,
Object?,
Object?
>;
element.handleValue(ref, created);
}
}

View File

@@ -1,4 +1,6 @@
import 'package:markettakers/src/loaders/base_loader.dart'; import 'package:bloc/bloc.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:rive/rive.dart'; import 'package:rive/rive.dart';
enum LoaderFlavour { enum LoaderFlavour {
@@ -10,10 +12,69 @@ enum LoaderFlavour {
final String filepath; final String filepath;
} }
class Loader extends BaseLoader { class LoaderController extends Cubit<bool> {
final LoaderFlavour flavour; LoaderController() : super(false);
final bool playing;
Loader({super.key, required this.flavour, this.playing = false}) void show() => emit(true);
: super(filepath: flavour.filepath, fit: Fit.contain); void hide() => emit(false);
}
class Loader extends HookWidget {
final LoaderFlavour flavour;
final Fit fit;
final LoaderController controller;
const Loader(
this.controller, {
super.key,
required this.flavour,
this.fit = Fit.contain,
});
Loader.playing({required LoaderFlavour flavour, Fit fit = Fit.contain})
: this(LoaderController()..show(), flavour: flavour, fit: fit);
Loader.stopped({required LoaderFlavour flavour, Fit fit = Fit.contain})
: this(LoaderController()..hide(), flavour: flavour, fit: fit);
@override
Widget build(BuildContext context) {
final animFile = useMemoized(
() =>
FileLoader.fromAsset(flavour.filepath, riveFactory: Factory.flutter),
);
useEffect(() {
return animFile.dispose;
}, [animFile]);
return RiveWidgetBuilder(
fileLoader: animFile,
builder: (context, state) {
switch (state) {
case RiveLoading():
return const Center(child: CircularProgressIndicator());
case RiveFailed():
final message = state.error.toString();
return ErrorWidget.withDetails(
message: message,
error: FlutterError(message),
);
case RiveLoaded(:final file):
final controller = RiveWidgetController(
file,
stateMachineSelector: StateMachineSelector.byIndex(0),
);
controller.active = this.controller.state;
this.controller.stream.listen((toggle) {
controller.active = toggle;
});
return RiveWidget(controller: controller, fit: fit);
}
},
);
}
} }

View File

@@ -1,7 +1,7 @@
name: markettakers name: markettakers
description: "MarketTakers library" description: "MarketTakers library"
version: 1.0.0 version: 1.0.0
publish_to: none publish_to: https://gitea.tailc58da6.ts.net//api/packages/MarketTakers/pub/
environment: environment:
sdk: ^3.9.2 sdk: ^3.9.2