intermediate

This commit is contained in:
Fabian Freund
2024-12-12 09:44:33 +01:00
parent 0710116feb
commit 6b2ae28828
108 changed files with 5531 additions and 2265 deletions
@@ -3,6 +3,7 @@ import 'dart:async';
import 'package:lensai/features/bangs/data/database/database.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart';
import 'package:lensai/features/bangs/data/providers.dart';
import 'package:lensai/features/bangs/domain/providers/bangs.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'search.g.dart';
@@ -30,3 +31,29 @@ class BangSearch extends _$BangSearch {
return _streamController.stream;
}
}
@Riverpod()
class SeamlessBangProvider extends _$SeamlessBangProvider {
bool _hasSearch = false;
void search(String input) {
if (input.isNotEmpty) {
if (!_hasSearch) {
_hasSearch = true;
ref.invalidateSelf();
}
unawaited(ref.read(bangSearchProvider.notifier).search(input));
} else if (_hasSearch) {
_hasSearch = false;
ref.invalidateSelf();
}
}
@override
AsyncValue<List<BangData>> build() {
return _hasSearch
? ref.watch(bangSearchProvider)
: ref.watch(frequentBangDataListProvider);
}
}
@@ -21,5 +21,23 @@ final bangSearchProvider =
);
typedef _$BangSearch = AutoDisposeStreamNotifier<List<BangData>>;
String _$seamlessBangProviderHash() =>
r'd2c8e94d6305a6a37cc27f8bc3617521f513e537';
/// See also [SeamlessBangProvider].
@ProviderFor(SeamlessBangProvider)
final seamlessBangProviderProvider = AutoDisposeNotifierProvider<
SeamlessBangProvider, AsyncValue<List<BangData>>>.internal(
SeamlessBangProvider.new,
name: r'seamlessBangProviderProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$seamlessBangProviderHash,
dependencies: null,
allTransitiveDependencies: null,
);
typedef _$SeamlessBangProvider
= AutoDisposeNotifier<AsyncValue<List<BangData>>>;
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package