majro update
This commit is contained in:
@@ -111,9 +111,9 @@ class BangDao extends DatabaseAccessor<BangDatabase> with _$BangDaoMixin {
|
||||
),
|
||||
onConflict: DoUpdate(
|
||||
target: [db.bangHistory.searchQuery],
|
||||
(old) => BangHistoryCompanion.custom(
|
||||
trigger: Variable(trigger),
|
||||
searchDate: Variable(DateTime.now()),
|
||||
(old) => BangHistoryCompanion(
|
||||
trigger: Value(trigger),
|
||||
searchDate: Value(DateTime.now()),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -22,7 +22,7 @@ class SyncDao extends DatabaseAccessor<BangDatabase> with _$SyncDaoMixin {
|
||||
return db.bangSync.insertOne(
|
||||
BangSyncCompanion.insert(group: Value(group), lastSync: lastSync),
|
||||
onConflict: DoUpdate(
|
||||
(old) => BangSyncCompanion.custom(lastSync: Variable(lastSync)),
|
||||
(old) => BangSyncCompanion(lastSync: Value(lastSync)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -72,7 +72,6 @@ class _$BangCWProxyImpl implements _$BangCWProxy {
|
||||
Bang format(Set<BangFormat>? format) => this(format: format);
|
||||
|
||||
@override
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Bang(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
@@ -90,38 +89,46 @@ class _$BangCWProxyImpl implements _$BangCWProxy {
|
||||
Object? format = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return Bang(
|
||||
websiteName: websiteName == const $CopyWithPlaceholder()
|
||||
? _value.websiteName
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: websiteName as String,
|
||||
domain: domain == const $CopyWithPlaceholder()
|
||||
? _value.domain
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: domain as String,
|
||||
trigger: trigger == const $CopyWithPlaceholder()
|
||||
? _value.trigger
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: trigger as String,
|
||||
urlTemplate: urlTemplate == const $CopyWithPlaceholder()
|
||||
? _value.urlTemplate
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: urlTemplate as String,
|
||||
group: group == const $CopyWithPlaceholder()
|
||||
? _value.group
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: group as BangGroup?,
|
||||
category: category == const $CopyWithPlaceholder()
|
||||
? _value.category
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: category as String?,
|
||||
subCategory: subCategory == const $CopyWithPlaceholder()
|
||||
? _value.subCategory
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: subCategory as String?,
|
||||
format: format == const $CopyWithPlaceholder()
|
||||
? _value.format
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: format as Set<BangFormat>?,
|
||||
websiteName:
|
||||
websiteName == const $CopyWithPlaceholder()
|
||||
? _value.websiteName
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: websiteName as String,
|
||||
domain:
|
||||
domain == const $CopyWithPlaceholder()
|
||||
? _value.domain
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: domain as String,
|
||||
trigger:
|
||||
trigger == const $CopyWithPlaceholder()
|
||||
? _value.trigger
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: trigger as String,
|
||||
urlTemplate:
|
||||
urlTemplate == const $CopyWithPlaceholder()
|
||||
? _value.urlTemplate
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: urlTemplate as String,
|
||||
group:
|
||||
group == const $CopyWithPlaceholder()
|
||||
? _value.group
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: group as BangGroup?,
|
||||
category:
|
||||
category == const $CopyWithPlaceholder()
|
||||
? _value.category
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: category as String?,
|
||||
subCategory:
|
||||
subCategory == const $CopyWithPlaceholder()
|
||||
? _value.subCategory
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: subCategory as String?,
|
||||
format:
|
||||
format == const $CopyWithPlaceholder()
|
||||
? _value.format
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: format as Set<BangFormat>?,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -137,26 +144,27 @@ extension $BangCopyWith on Bang {
|
||||
// **************************************************************************
|
||||
|
||||
Bang _$BangFromJson(Map<String, dynamic> json) => Bang(
|
||||
websiteName: json['s'] as String,
|
||||
domain: json['d'] as String,
|
||||
trigger: json['t'] as String,
|
||||
urlTemplate: json['u'] as String,
|
||||
category: json['c'] as String?,
|
||||
subCategory: json['sc'] as String?,
|
||||
format: (json['fmt'] as List<dynamic>?)
|
||||
websiteName: json['s'] as String,
|
||||
domain: json['d'] as String,
|
||||
trigger: json['t'] as String,
|
||||
urlTemplate: json['u'] as String,
|
||||
category: json['c'] as String?,
|
||||
subCategory: json['sc'] as String?,
|
||||
format:
|
||||
(json['fmt'] as List<dynamic>?)
|
||||
?.map((e) => $enumDecode(_$BangFormatEnumMap, e))
|
||||
.toSet(),
|
||||
);
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$BangToJson(Bang instance) => <String, dynamic>{
|
||||
's': instance.websiteName,
|
||||
'd': instance.domain,
|
||||
't': instance.trigger,
|
||||
'u': instance.urlTemplate,
|
||||
'c': instance.category,
|
||||
'sc': instance.subCategory,
|
||||
'fmt': instance.format?.map((e) => _$BangFormatEnumMap[e]!).toList(),
|
||||
};
|
||||
's': instance.websiteName,
|
||||
'd': instance.domain,
|
||||
't': instance.trigger,
|
||||
'u': instance.urlTemplate,
|
||||
'c': instance.category,
|
||||
'sc': instance.subCategory,
|
||||
'fmt': instance.format?.map((e) => _$BangFormatEnumMap[e]!).toList(),
|
||||
};
|
||||
|
||||
const _$BangFormatEnumMap = {
|
||||
BangFormat.openBasePath: 'open_base_path',
|
||||
|
||||
@@ -84,7 +84,6 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy {
|
||||
BangData icon(BrowserIcon? icon) => this(icon: icon);
|
||||
|
||||
@override
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `BangData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
@@ -104,46 +103,56 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy {
|
||||
Object? icon = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return BangData(
|
||||
websiteName: websiteName == const $CopyWithPlaceholder()
|
||||
? _value.websiteName
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: websiteName as String,
|
||||
domain: domain == const $CopyWithPlaceholder()
|
||||
? _value.domain
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: domain as String,
|
||||
trigger: trigger == const $CopyWithPlaceholder()
|
||||
? _value.trigger
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: trigger as String,
|
||||
urlTemplate: urlTemplate == const $CopyWithPlaceholder()
|
||||
? _value.urlTemplate
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: urlTemplate as String,
|
||||
category: category == const $CopyWithPlaceholder()
|
||||
? _value.category
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: category as String?,
|
||||
subCategory: subCategory == const $CopyWithPlaceholder()
|
||||
? _value.subCategory
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: subCategory as String?,
|
||||
format: format == const $CopyWithPlaceholder()
|
||||
? _value.format
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: format as Set<BangFormat>?,
|
||||
frequency: frequency == const $CopyWithPlaceholder()
|
||||
? _value.frequency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: frequency as int?,
|
||||
lastUsed: lastUsed == const $CopyWithPlaceholder()
|
||||
? _value.lastUsed
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: lastUsed as DateTime?,
|
||||
icon: icon == const $CopyWithPlaceholder()
|
||||
? _value.icon
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: icon as BrowserIcon?,
|
||||
websiteName:
|
||||
websiteName == const $CopyWithPlaceholder()
|
||||
? _value.websiteName
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: websiteName as String,
|
||||
domain:
|
||||
domain == const $CopyWithPlaceholder()
|
||||
? _value.domain
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: domain as String,
|
||||
trigger:
|
||||
trigger == const $CopyWithPlaceholder()
|
||||
? _value.trigger
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: trigger as String,
|
||||
urlTemplate:
|
||||
urlTemplate == const $CopyWithPlaceholder()
|
||||
? _value.urlTemplate
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: urlTemplate as String,
|
||||
category:
|
||||
category == const $CopyWithPlaceholder()
|
||||
? _value.category
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: category as String?,
|
||||
subCategory:
|
||||
subCategory == const $CopyWithPlaceholder()
|
||||
? _value.subCategory
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: subCategory as String?,
|
||||
format:
|
||||
format == const $CopyWithPlaceholder()
|
||||
? _value.format
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: format as Set<BangFormat>?,
|
||||
frequency:
|
||||
frequency == const $CopyWithPlaceholder()
|
||||
? _value.frequency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: frequency as int?,
|
||||
lastUsed:
|
||||
lastUsed == const $CopyWithPlaceholder()
|
||||
? _value.lastUsed
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: lastUsed as DateTime?,
|
||||
icon:
|
||||
icon == const $CopyWithPlaceholder()
|
||||
? _value.icon
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: icon as BrowserIcon?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class BangDataSourceService extends _$BangDataSourceService {
|
||||
@override
|
||||
void build() {}
|
||||
|
||||
Future<Result<List<Bang>>> getBangs(Uri url, BangGroup? group) async {
|
||||
Future<Result<List<Bang>>> getBangs(Uri url, BangGroup? group) {
|
||||
return Result.fromAsync(() async {
|
||||
return await compute((args) async {
|
||||
final client = http.Client();
|
||||
|
||||
@@ -7,20 +7,21 @@ part of 'data_source.dart';
|
||||
// **************************************************************************
|
||||
|
||||
String _$bangDataSourceServiceHash() =>
|
||||
r'28b774af3338e3e949ccd0f04205ccd4a7fe67a5';
|
||||
r'f802b9fb3c467a24d65d170229d37f745ae869e5';
|
||||
|
||||
/// See also [BangDataSourceService].
|
||||
@ProviderFor(BangDataSourceService)
|
||||
final bangDataSourceServiceProvider =
|
||||
AutoDisposeNotifierProvider<BangDataSourceService, void>.internal(
|
||||
BangDataSourceService.new,
|
||||
name: r'bangDataSourceServiceProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangDataSourceServiceHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
BangDataSourceService.new,
|
||||
name: r'bangDataSourceServiceProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangDataSourceServiceHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangDataSourceService = AutoDisposeNotifier<void>;
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
@@ -14,9 +14,10 @@ String _$defaultSearchBangDataHash() =>
|
||||
final defaultSearchBangDataProvider = StreamProvider<BangData?>.internal(
|
||||
defaultSearchBangData,
|
||||
name: r'defaultSearchBangDataProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$defaultSearchBangDataHash,
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$defaultSearchBangDataHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
@@ -30,19 +31,20 @@ String _$bangCategoriesHash() => r'947fcfd2dffcc7f585c6ed7379d319f4fe72293a';
|
||||
@ProviderFor(bangCategories)
|
||||
final bangCategoriesProvider =
|
||||
AutoDisposeStreamProvider<Map<String, List<String>>>.internal(
|
||||
bangCategories,
|
||||
name: r'bangCategoriesProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangCategoriesHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
bangCategories,
|
||||
name: r'bangCategoriesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangCategoriesHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef BangCategoriesRef
|
||||
= AutoDisposeStreamProviderRef<Map<String, List<String>>>;
|
||||
typedef BangCategoriesRef =
|
||||
AutoDisposeStreamProviderRef<Map<String, List<String>>>;
|
||||
String _$bangListHash() => r'dc168bd1246bea3e5f8015dd52fbf41c5f98ca13';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
@@ -91,9 +93,7 @@ class BangListFamily extends Family<AsyncValue<List<BangData>>> {
|
||||
}
|
||||
|
||||
@override
|
||||
BangListProvider getProviderOverride(
|
||||
covariant BangListProvider provider,
|
||||
) {
|
||||
BangListProvider getProviderOverride(covariant BangListProvider provider) {
|
||||
return call(
|
||||
groups: provider.groups,
|
||||
domain: provider.domain,
|
||||
@@ -126,26 +126,26 @@ class BangListProvider extends AutoDisposeStreamProvider<List<BangData>> {
|
||||
({String category, String? subCategory})? categoryFilter,
|
||||
bool? orderMostFrequentFirst,
|
||||
}) : this._internal(
|
||||
(ref) => bangList(
|
||||
ref as BangListRef,
|
||||
groups: groups,
|
||||
domain: domain,
|
||||
categoryFilter: categoryFilter,
|
||||
orderMostFrequentFirst: orderMostFrequentFirst,
|
||||
),
|
||||
from: bangListProvider,
|
||||
name: r'bangListProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangListHash,
|
||||
dependencies: BangListFamily._dependencies,
|
||||
allTransitiveDependencies: BangListFamily._allTransitiveDependencies,
|
||||
groups: groups,
|
||||
domain: domain,
|
||||
categoryFilter: categoryFilter,
|
||||
orderMostFrequentFirst: orderMostFrequentFirst,
|
||||
);
|
||||
(ref) => bangList(
|
||||
ref as BangListRef,
|
||||
groups: groups,
|
||||
domain: domain,
|
||||
categoryFilter: categoryFilter,
|
||||
orderMostFrequentFirst: orderMostFrequentFirst,
|
||||
),
|
||||
from: bangListProvider,
|
||||
name: r'bangListProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangListHash,
|
||||
dependencies: BangListFamily._dependencies,
|
||||
allTransitiveDependencies: BangListFamily._allTransitiveDependencies,
|
||||
groups: groups,
|
||||
domain: domain,
|
||||
categoryFilter: categoryFilter,
|
||||
orderMostFrequentFirst: orderMostFrequentFirst,
|
||||
);
|
||||
|
||||
BangListProvider._internal(
|
||||
super._createNotifier, {
|
||||
@@ -229,7 +229,8 @@ mixin BangListRef on AutoDisposeStreamProviderRef<List<BangData>> {
|
||||
}
|
||||
|
||||
class _BangListProviderElement
|
||||
extends AutoDisposeStreamProviderElement<List<BangData>> with BangListRef {
|
||||
extends AutoDisposeStreamProviderElement<List<BangData>>
|
||||
with BangListRef {
|
||||
_BangListProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
@@ -250,14 +251,15 @@ String _$frequentBangListHash() => r'2c1ecb7e9416772fc1c32d01d767e1eb4f865975';
|
||||
@ProviderFor(frequentBangList)
|
||||
final frequentBangListProvider =
|
||||
AutoDisposeStreamProvider<List<BangData>>.internal(
|
||||
frequentBangList,
|
||||
name: r'frequentBangListProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$frequentBangListHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
frequentBangList,
|
||||
name: r'frequentBangListProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$frequentBangListHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
@@ -268,19 +270,20 @@ String _$searchHistoryHash() => r'7b97798729643de8e44fd8024cdc02f35124b08b';
|
||||
@ProviderFor(searchHistory)
|
||||
final searchHistoryProvider =
|
||||
AutoDisposeStreamProvider<List<SearchHistoryEntry>>.internal(
|
||||
searchHistory,
|
||||
name: r'searchHistoryProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$searchHistoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
searchHistory,
|
||||
name: r'searchHistoryProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$searchHistoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef SearchHistoryRef
|
||||
= AutoDisposeStreamProviderRef<List<SearchHistoryEntry>>;
|
||||
typedef SearchHistoryRef =
|
||||
AutoDisposeStreamProviderRef<List<SearchHistoryEntry>>;
|
||||
String _$lastSyncOfGroupHash() => r'23d07f3132ba9bb35a31f74e3a69698d31d4c569';
|
||||
|
||||
/// See also [lastSyncOfGroup].
|
||||
@@ -293,21 +296,15 @@ class LastSyncOfGroupFamily extends Family<AsyncValue<DateTime?>> {
|
||||
const LastSyncOfGroupFamily();
|
||||
|
||||
/// See also [lastSyncOfGroup].
|
||||
LastSyncOfGroupProvider call(
|
||||
BangGroup group,
|
||||
) {
|
||||
return LastSyncOfGroupProvider(
|
||||
group,
|
||||
);
|
||||
LastSyncOfGroupProvider call(BangGroup group) {
|
||||
return LastSyncOfGroupProvider(group);
|
||||
}
|
||||
|
||||
@override
|
||||
LastSyncOfGroupProvider getProviderOverride(
|
||||
covariant LastSyncOfGroupProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.group,
|
||||
);
|
||||
return call(provider.group);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
@@ -328,24 +325,20 @@ class LastSyncOfGroupFamily extends Family<AsyncValue<DateTime?>> {
|
||||
/// See also [lastSyncOfGroup].
|
||||
class LastSyncOfGroupProvider extends AutoDisposeStreamProvider<DateTime?> {
|
||||
/// See also [lastSyncOfGroup].
|
||||
LastSyncOfGroupProvider(
|
||||
BangGroup group,
|
||||
) : this._internal(
|
||||
(ref) => lastSyncOfGroup(
|
||||
ref as LastSyncOfGroupRef,
|
||||
group,
|
||||
),
|
||||
from: lastSyncOfGroupProvider,
|
||||
name: r'lastSyncOfGroupProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$lastSyncOfGroupHash,
|
||||
dependencies: LastSyncOfGroupFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
LastSyncOfGroupFamily._allTransitiveDependencies,
|
||||
group: group,
|
||||
);
|
||||
LastSyncOfGroupProvider(BangGroup group)
|
||||
: this._internal(
|
||||
(ref) => lastSyncOfGroup(ref as LastSyncOfGroupRef, group),
|
||||
from: lastSyncOfGroupProvider,
|
||||
name: r'lastSyncOfGroupProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$lastSyncOfGroupHash,
|
||||
dependencies: LastSyncOfGroupFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
LastSyncOfGroupFamily._allTransitiveDependencies,
|
||||
group: group,
|
||||
);
|
||||
|
||||
LastSyncOfGroupProvider._internal(
|
||||
super._createNotifier, {
|
||||
@@ -424,21 +417,15 @@ class BangCountOfGroupFamily extends Family<AsyncValue<int>> {
|
||||
const BangCountOfGroupFamily();
|
||||
|
||||
/// See also [bangCountOfGroup].
|
||||
BangCountOfGroupProvider call(
|
||||
BangGroup group,
|
||||
) {
|
||||
return BangCountOfGroupProvider(
|
||||
group,
|
||||
);
|
||||
BangCountOfGroupProvider call(BangGroup group) {
|
||||
return BangCountOfGroupProvider(group);
|
||||
}
|
||||
|
||||
@override
|
||||
BangCountOfGroupProvider getProviderOverride(
|
||||
covariant BangCountOfGroupProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.group,
|
||||
);
|
||||
return call(provider.group);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
@@ -459,24 +446,20 @@ class BangCountOfGroupFamily extends Family<AsyncValue<int>> {
|
||||
/// See also [bangCountOfGroup].
|
||||
class BangCountOfGroupProvider extends AutoDisposeStreamProvider<int> {
|
||||
/// See also [bangCountOfGroup].
|
||||
BangCountOfGroupProvider(
|
||||
BangGroup group,
|
||||
) : this._internal(
|
||||
(ref) => bangCountOfGroup(
|
||||
ref as BangCountOfGroupRef,
|
||||
group,
|
||||
),
|
||||
from: bangCountOfGroupProvider,
|
||||
name: r'bangCountOfGroupProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangCountOfGroupHash,
|
||||
dependencies: BangCountOfGroupFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
BangCountOfGroupFamily._allTransitiveDependencies,
|
||||
group: group,
|
||||
);
|
||||
BangCountOfGroupProvider(BangGroup group)
|
||||
: this._internal(
|
||||
(ref) => bangCountOfGroup(ref as BangCountOfGroupRef, group),
|
||||
from: bangCountOfGroupProvider,
|
||||
name: r'bangCountOfGroupProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangCountOfGroupHash,
|
||||
dependencies: BangCountOfGroupFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
BangCountOfGroupFamily._allTransitiveDependencies,
|
||||
group: group,
|
||||
);
|
||||
|
||||
BangCountOfGroupProvider._internal(
|
||||
super._createNotifier, {
|
||||
@@ -535,11 +518,13 @@ mixin BangCountOfGroupRef on AutoDisposeStreamProviderRef<int> {
|
||||
}
|
||||
|
||||
class _BangCountOfGroupProviderElement
|
||||
extends AutoDisposeStreamProviderElement<int> with BangCountOfGroupRef {
|
||||
extends AutoDisposeStreamProviderElement<int>
|
||||
with BangCountOfGroupRef {
|
||||
_BangCountOfGroupProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
BangGroup get group => (origin as BangCountOfGroupProvider).group;
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import 'dart:async';
|
||||
|
||||
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:lensai/features/bangs/domain/repositories/data.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@@ -6,6 +10,8 @@ part 'search.g.dart';
|
||||
|
||||
@Riverpod()
|
||||
class BangSearch extends _$BangSearch {
|
||||
late StreamController<List<BangData>> _streamController;
|
||||
|
||||
Future<Uri> triggerBangSearch(BangData bang, String searchQuery) async {
|
||||
final bangDataNotifier = ref.read(bangDataRepositoryProvider.notifier);
|
||||
|
||||
@@ -19,6 +25,52 @@ class BangSearch extends _$BangSearch {
|
||||
return bang.getUrl(searchQuery);
|
||||
}
|
||||
|
||||
Future<void> search(String input) async {
|
||||
if (input.isNotEmpty) {
|
||||
await ref.read(bangDatabaseProvider).bangDao.queryBangs(input).get().then(
|
||||
(value) {
|
||||
if (!_streamController.isClosed) {
|
||||
_streamController.add(value);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void build() {}
|
||||
Stream<List<BangData>> build() {
|
||||
_streamController = StreamController();
|
||||
|
||||
ref.onDispose(() async {
|
||||
await _streamController.close();
|
||||
});
|
||||
|
||||
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(frequentBangListProvider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,20 +6,43 @@ part of 'search.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$bangSearchHash() => r'a9bc5efc6e0df7b64bb648623f65911373a8e8e4';
|
||||
String _$bangSearchHash() => r'ff7035d269041c6415f2a2afb0a71ef67d3b9841';
|
||||
|
||||
/// See also [BangSearch].
|
||||
@ProviderFor(BangSearch)
|
||||
final bangSearchProvider =
|
||||
AutoDisposeNotifierProvider<BangSearch, void>.internal(
|
||||
BangSearch.new,
|
||||
name: r'bangSearchProvider',
|
||||
AutoDisposeStreamNotifierProvider<BangSearch, List<BangData>>.internal(
|
||||
BangSearch.new,
|
||||
name: r'bangSearchProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangSearchHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangSearch = AutoDisposeStreamNotifier<List<BangData>>;
|
||||
String _$seamlessBangProviderHash() =>
|
||||
r'c4c0b452c94ba447be5b02dfef5bc16148cc3dc7';
|
||||
|
||||
/// 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 : _$bangSearchHash,
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$seamlessBangProviderHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangSearch = AutoDisposeNotifier<void>;
|
||||
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
|
||||
|
||||
@@ -13,14 +13,15 @@ String _$bangDataRepositoryHash() =>
|
||||
@ProviderFor(BangDataRepository)
|
||||
final bangDataRepositoryProvider =
|
||||
NotifierProvider<BangDataRepository, void>.internal(
|
||||
BangDataRepository.new,
|
||||
name: r'bangDataRepositoryProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangDataRepositoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
BangDataRepository.new,
|
||||
name: r'bangDataRepositoryProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangDataRepositoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangDataRepository = Notifier<void>;
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
import 'dart:async';
|
||||
|
||||
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';
|
||||
|
||||
@Riverpod()
|
||||
class BangSearch extends _$BangSearch {
|
||||
late StreamController<List<BangData>> _streamController;
|
||||
|
||||
Future<void> search(String input) async {
|
||||
if (input.isNotEmpty) {
|
||||
await ref.read(bangDatabaseProvider).bangDao.queryBangs(input).get().then(
|
||||
(value) {
|
||||
if (!_streamController.isClosed) {
|
||||
_streamController.add(value);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Stream<List<BangData>> build() {
|
||||
_streamController = StreamController();
|
||||
|
||||
ref.onDispose(() async {
|
||||
await _streamController.close();
|
||||
});
|
||||
|
||||
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(frequentBangListProvider);
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'search.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$bangSearchHash() => r'abf9ff5badf2ecfbcbde148fd2c849beac83bec4';
|
||||
|
||||
/// See also [BangSearch].
|
||||
@ProviderFor(BangSearch)
|
||||
final bangSearchProvider =
|
||||
AutoDisposeStreamNotifierProvider<BangSearch, List<BangData>>.internal(
|
||||
BangSearch.new,
|
||||
name: r'bangSearchProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product') ? null : _$bangSearchHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangSearch = AutoDisposeStreamNotifier<List<BangData>>;
|
||||
String _$seamlessBangProviderHash() =>
|
||||
r'c4c0b452c94ba447be5b02dfef5bc16148cc3dc7';
|
||||
|
||||
/// 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
|
||||
@@ -13,14 +13,15 @@ String _$bangSyncRepositoryHash() =>
|
||||
@ProviderFor(BangSyncRepository)
|
||||
final bangSyncRepositoryProvider =
|
||||
NotifierProvider<BangSyncRepository, void>.internal(
|
||||
BangSyncRepository.new,
|
||||
name: r'bangSyncRepositoryProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangSyncRepositoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
BangSyncRepository.new,
|
||||
name: r'bangSyncRepositoryProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$bangSyncRepositoryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$BangSyncRepository = Notifier<void>;
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:lensai/features/bangs/domain/repositories/search.dart';
|
||||
import 'package:lensai/features/bangs/domain/providers/search.dart';
|
||||
import 'package:lensai/features/bangs/presentation/widgets/bang_details.dart';
|
||||
import 'package:lensai/features/geckoview/features/browser/domain/providers.dart';
|
||||
import 'package:lensai/features/user/domain/providers.dart';
|
||||
@@ -26,7 +26,7 @@ class BangSearchScreen extends HookConsumerWidget {
|
||||
text: initialSearchText,
|
||||
);
|
||||
|
||||
useListenableCallback(textEditingController, () async {
|
||||
useListenableCallback(textEditingController, () {
|
||||
unawaited(
|
||||
ref
|
||||
.read(bangSearchProvider.notifier)
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:lensai/core/routing/routes.dart';
|
||||
import 'package:lensai/features/bangs/data/models/bang_data.dart';
|
||||
import 'package:lensai/features/geckoview/domain/repositories/tab.dart';
|
||||
import 'package:lensai/presentation/widgets/bang_icon.dart';
|
||||
import 'package:lensai/presentation/widgets/url_icon.dart';
|
||||
|
||||
class BangDetails extends HookConsumerWidget {
|
||||
final BangData bangData;
|
||||
|
||||
@@ -12,8 +12,8 @@ import 'package:lensai/features/geckoview/features/search/domain/providers/searc
|
||||
import 'package:lensai/features/geckoview/features/search/presentation/widgets/search_field.dart';
|
||||
import 'package:lensai/features/geckoview/features/search/presentation/widgets/search_modules/search_suggestions.dart';
|
||||
import 'package:lensai/presentation/hooks/listenable_callback.dart';
|
||||
import 'package:lensai/presentation/widgets/bang_icon.dart';
|
||||
import 'package:lensai/presentation/widgets/selectable_chips.dart';
|
||||
import 'package:lensai/presentation/widgets/url_icon.dart';
|
||||
|
||||
class SiteSearch extends HookConsumerWidget {
|
||||
final String domain;
|
||||
@@ -33,7 +33,7 @@ class SiteSearch extends HookConsumerWidget {
|
||||
|
||||
final searchTextController = useTextEditingController();
|
||||
|
||||
useListenableCallback(searchTextController, () async {
|
||||
useListenableCallback(searchTextController, () {
|
||||
ref
|
||||
.read(searchSuggestionsProvider().notifier)
|
||||
.addQuery(searchTextController.text);
|
||||
|
||||
Reference in New Issue
Block a user