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