use bang key
This commit is contained in:
@@ -25,6 +25,7 @@ import 'package:weblibre/features/bangs/data/database/definitions.drift.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_data.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_group.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_key.dart';
|
||||
|
||||
@DriftAccessor()
|
||||
class BangDao extends DatabaseAccessor<BangDatabase> with $BangDaoMixin {
|
||||
@@ -110,11 +111,11 @@ class BangDao extends DatabaseAccessor<BangDatabase> with $BangDaoMixin {
|
||||
return selectable;
|
||||
}
|
||||
|
||||
Future<int> increaseBangFrequency(BangGroup group, String trigger) {
|
||||
Future<int> increaseBangFrequency(BangKey key) {
|
||||
return db.bangFrequency.insertOne(
|
||||
BangFrequencyCompanion.insert(
|
||||
trigger: trigger,
|
||||
group: group,
|
||||
trigger: key.trigger,
|
||||
group: key.group,
|
||||
frequency: 1,
|
||||
lastUsed: DateTime.now(),
|
||||
),
|
||||
|
||||
@@ -34,7 +34,7 @@ class BangSearch extends _$BangSearch {
|
||||
Future<Uri> triggerBangSearch(BangData bang, String searchQuery) async {
|
||||
final bangDataNotifier = ref.read(bangDataRepositoryProvider.notifier);
|
||||
|
||||
await bangDataNotifier.increaseFrequency(bang.group, bang.trigger);
|
||||
await bangDataNotifier.increaseFrequency(bang.toKey());
|
||||
await bangDataNotifier.addSearchEntry(
|
||||
bang.group,
|
||||
bang.trigger,
|
||||
|
||||
@@ -33,7 +33,7 @@ final class BangSearchProvider
|
||||
BangSearch create() => BangSearch();
|
||||
}
|
||||
|
||||
String _$bangSearchHash() => r'66080335f1677e6a4636c41dd5619de3828375e6';
|
||||
String _$bangSearchHash() => r'cd8c6ec433a61979e5feb09014739be92180513b';
|
||||
|
||||
abstract class _$BangSearch extends $StreamNotifier<List<BangData>> {
|
||||
Stream<List<BangData>> build();
|
||||
|
||||
@@ -106,11 +106,8 @@ class BangDataRepository extends _$BangDataRepository {
|
||||
.watch();
|
||||
}
|
||||
|
||||
Future<void> increaseFrequency(BangGroup group, String trigger) {
|
||||
return ref
|
||||
.read(bangDatabaseProvider)
|
||||
.bangDao
|
||||
.increaseBangFrequency(group, trigger);
|
||||
Future<void> increaseFrequency(BangKey key) {
|
||||
return ref.read(bangDatabaseProvider).bangDao.increaseBangFrequency(key);
|
||||
}
|
||||
|
||||
Future<void> addSearchEntry(
|
||||
@@ -149,7 +146,9 @@ class BangDataRepository extends _$BangDataRepository {
|
||||
return ref.read(bangDatabaseProvider).bangDao.upsertBang(bang);
|
||||
}
|
||||
|
||||
Future<void> deleteBang(BangGroup group, String trigger) {
|
||||
return ref.read(bangDatabaseProvider).syncDao.deleteBangs(group, [trigger]);
|
||||
Future<void> deleteBang(BangKey key) {
|
||||
return ref.read(bangDatabaseProvider).syncDao.deleteBangs(key.group, [
|
||||
key.trigger,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ final class BangDataRepositoryProvider
|
||||
}
|
||||
|
||||
String _$bangDataRepositoryHash() =>
|
||||
r'0001f3e21fc1bff4fc942e6e468fb580cf2afe4b';
|
||||
r'f071d3c4ab8218d52d55acb3de8e01fd7a204e4d';
|
||||
|
||||
abstract class _$BangDataRepository extends $Notifier<void> {
|
||||
void build();
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:nullability/nullability.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_group.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_key.dart';
|
||||
import 'package:weblibre/features/bangs/domain/providers/bangs.dart';
|
||||
import 'package:weblibre/features/bangs/domain/repositories/data.dart';
|
||||
import 'package:weblibre/utils/form_validators.dart';
|
||||
@@ -64,7 +65,12 @@ class EditBangScreen extends HookConsumerWidget {
|
||||
initialBang!.trigger != bang.trigger) {
|
||||
await ref
|
||||
.read(bangDataRepositoryProvider.notifier)
|
||||
.deleteBang(BangGroup.user, initialBang!.trigger);
|
||||
.deleteBang(
|
||||
BangKey(
|
||||
group: BangGroup.user,
|
||||
trigger: initialBang!.trigger,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
await ref
|
||||
@@ -288,7 +294,12 @@ class EditBangScreen extends HookConsumerWidget {
|
||||
if (result == true) {
|
||||
await ref
|
||||
.read(bangDataRepositoryProvider.notifier)
|
||||
.deleteBang(BangGroup.user, initialBang!.trigger);
|
||||
.deleteBang(
|
||||
BangKey(
|
||||
group: BangGroup.user,
|
||||
trigger: initialBang!.trigger,
|
||||
),
|
||||
);
|
||||
|
||||
if (context.mounted) {
|
||||
context.pop();
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:flutter_slidable/flutter_slidable.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:weblibre/core/routing/routes.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_group.dart';
|
||||
import 'package:weblibre/features/bangs/data/models/bang_key.dart';
|
||||
import 'package:weblibre/features/bangs/domain/providers/bangs.dart';
|
||||
import 'package:weblibre/features/bangs/domain/repositories/data.dart';
|
||||
import 'package:weblibre/features/bangs/presentation/widgets/bang_details.dart';
|
||||
@@ -35,7 +36,12 @@ class UserBangs extends HookConsumerWidget {
|
||||
onPressed: (context) async {
|
||||
await ref
|
||||
.read(bangDataRepositoryProvider.notifier)
|
||||
.deleteBang(BangGroup.user, bang.trigger);
|
||||
.deleteBang(
|
||||
BangKey(
|
||||
group: BangGroup.user,
|
||||
trigger: bang.trigger,
|
||||
),
|
||||
);
|
||||
},
|
||||
backgroundColor: Theme.of(
|
||||
context,
|
||||
|
||||
Reference in New Issue
Block a user