first bang implementation

This commit is contained in:
Fabian Freund
2024-06-10 03:08:23 +02:00
parent 9ae08409fe
commit 388eba93b7
47 changed files with 3809 additions and 34 deletions
@@ -2,6 +2,8 @@
import 'dart:async';
import 'package:bang_navigator/features/bangs/data/models/bang_data.dart';
import 'package:bang_navigator/features/bangs/domain/repositories/bang.dart';
import 'package:bang_navigator/features/search_browser/domain/entities/sheet.dart';
import 'package:bang_navigator/features/search_browser/domain/services/create_tab.dart';
import 'package:flutter/widgets.dart';
@@ -65,3 +67,26 @@ class BottomSheetExtend extends _$BottomSheetExtend {
.sampleTime(const Duration(milliseconds: 50));
}
}
@Riverpod(keepAlive: true)
class SelectedBangTrigger extends _$SelectedBangTrigger {
void setTrigger(String trigger) {
state = trigger;
}
void clearTrigger() {
state = null;
}
@override
String? build() {
return null;
}
}
@Riverpod()
Stream<BangData?> selectedBangData(SelectedBangDataRef ref) {
final repository = ref.watch(bangRepositoryProvider.notifier);
final selectedBangTrigger = ref.watch(selectedBangTriggerProvider);
return repository.watchBang(selectedBangTrigger);
}
@@ -6,6 +6,21 @@ part of 'providers.dart';
// RiverpodGenerator
// **************************************************************************
String _$selectedBangDataHash() => r'6d99a08f4a02027cc007ee1df30e5ac7923ca5f5';
/// See also [selectedBangData].
@ProviderFor(selectedBangData)
final selectedBangDataProvider = AutoDisposeStreamProvider<BangData?>.internal(
selectedBangData,
name: r'selectedBangDataProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$selectedBangDataHash,
dependencies: null,
allTransitiveDependencies: null,
);
typedef SelectedBangDataRef = AutoDisposeStreamProviderRef<BangData?>;
String _$overlayDialogHash() => r'7a0376fff0ba12c70a257a47391e7c049dabd36d';
/// See also [OverlayDialog].
@@ -53,5 +68,22 @@ final bottomSheetExtendProvider =
);
typedef _$BottomSheetExtend = StreamNotifier<double>;
String _$selectedBangTriggerHash() =>
r'd110e4f8bd9d362e0cc54ee56a4f247d0870c760';
/// See also [SelectedBangTrigger].
@ProviderFor(SelectedBangTrigger)
final selectedBangTriggerProvider =
NotifierProvider<SelectedBangTrigger, String?>.internal(
SelectedBangTrigger.new,
name: r'selectedBangTriggerProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$selectedBangTriggerHash,
dependencies: null,
allTransitiveDependencies: null,
);
typedef _$SelectedBangTrigger = Notifier<String?>;
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member