Improved add links
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:linkdy/utils/snackbar.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:linkdy/screens/links/provider/links.provider.dart';
|
||||
import 'package:linkdy/screens/links/model/add_link.model.dart';
|
||||
|
||||
import 'package:linkdy/models/data/tags.dart';
|
||||
import 'package:linkdy/utils/snackbar.dart';
|
||||
import 'package:linkdy/i18n/strings.g.dart';
|
||||
import 'package:linkdy/utils/process_modal.dart';
|
||||
import 'package:linkdy/models/data/post_bookmark.dart';
|
||||
@@ -30,6 +31,12 @@ FutureOr<ApiResponse<Bookmark>> addBookmark(AddBookmarkRef ref, PostBookmark new
|
||||
return result;
|
||||
}
|
||||
|
||||
@riverpod
|
||||
FutureOr<ApiResponse<Tags>> getTags(GetTagsRef ref) async {
|
||||
final result = await ref.watch(apiClientProviderProvider)!.fetchTags();
|
||||
return result;
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class AddLink extends _$AddLink {
|
||||
@override
|
||||
@@ -38,6 +45,7 @@ class AddLink extends _$AddLink {
|
||||
urlController: TextEditingController(),
|
||||
titleController: TextEditingController(),
|
||||
descriptionController: TextEditingController(),
|
||||
tagsController: TextEditingController(),
|
||||
tags: [],
|
||||
notesController: TextEditingController(),
|
||||
);
|
||||
@@ -86,7 +94,7 @@ class AddLink extends _$AddLink {
|
||||
isArchived: false,
|
||||
unread: state.markAsUnread,
|
||||
shared: false,
|
||||
tagNames: [],
|
||||
tagNames: state.tags.join(","),
|
||||
);
|
||||
|
||||
final processModal = ProcessModal();
|
||||
@@ -106,4 +114,23 @@ class AddLink extends _$AddLink {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void validateTagInput(String value) {
|
||||
if (value.contains(" ")) {
|
||||
state.tagsError = t.links.addLink.tagNoWhitespaces;
|
||||
} else {
|
||||
state.tagsError = null;
|
||||
}
|
||||
ref.notifyListeners();
|
||||
}
|
||||
|
||||
void setTags(List<String> tags) {
|
||||
state.tags = tags;
|
||||
ref.notifyListeners();
|
||||
}
|
||||
|
||||
void clearTagsController() {
|
||||
state.tagsController.clear();
|
||||
ref.notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,7 +290,21 @@ class _AddBookmarkProviderElement
|
||||
PostBookmark get newBookmark => (origin as AddBookmarkProvider).newBookmark;
|
||||
}
|
||||
|
||||
String _$addLinkHash() => r'0e9fcd2cca9fa5e195072163a11ae09b7bbe903a';
|
||||
String _$getTagsHash() => r'feecc7515f9492838c4a9bccc7031f49713e6ebb';
|
||||
|
||||
/// See also [getTags].
|
||||
@ProviderFor(getTags)
|
||||
final getTagsProvider = AutoDisposeFutureProvider<ApiResponse<Tags>>.internal(
|
||||
getTags,
|
||||
name: r'getTagsProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product') ? null : _$getTagsHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef GetTagsRef = AutoDisposeFutureProviderRef<ApiResponse<Tags>>;
|
||||
String _$addLinkHash() => r'fd6e2629386254ace7ac7abeff0e566dda69575a';
|
||||
|
||||
/// See also [AddLink].
|
||||
@ProviderFor(AddLink)
|
||||
|
||||
Reference in New Issue
Block a user