Add link improvements

This commit is contained in:
Juan Gilsanz Polo
2024-02-23 18:05:29 +01:00
parent 56c12e3828
commit 23d5671c10
6 changed files with 88 additions and 13 deletions

View File

@@ -1,11 +1,14 @@
import 'package:expandable/expandable.dart';
import 'package:flutter/material.dart';
import 'package:linkdy/utils/snackbar.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:linkdy/screens/links/ui/error_save_link.dart';
import 'package:linkdy/screens/links/provider/links.provider.dart';
import 'package:linkdy/screens/links/model/add_link.model.dart';
import 'package:linkdy/i18n/strings.g.dart';
import 'package:linkdy/router/routes.dart';
import 'package:linkdy/utils/process_modal.dart';
import 'package:linkdy/models/data/post_bookmark.dart';
import 'package:linkdy/providers/router_provider.dart';
import 'package:linkdy/models/data/bookmarks.dart';
@@ -87,16 +90,21 @@ class AddLink extends _$AddLink {
shared: false,
tagNames: [],
);
print(newBookmark.toJson());
final processModal = ProcessModal();
processModal.open(t.links.addLink.savingLink);
final result = await ref.watch(addBookmarkProvider(newBookmark).future);
print(result.content);
processModal.close();
if (result.successful == true) {
ref.invalidate(linksRequestProvider);
ref.watch(routerProvider).pop();
} else {
showSnacbkar(
label: "Add bookmark failed",
color: Colors.red,
showDialog(
context: rootNavigatorKey.currentContext!,
builder: (context) => const ErrorSaveLink(),
);
}
}

View File

@@ -107,7 +107,10 @@ class AddLinkModalState extends ConsumerState<AddLinkModal> with SingleTickerPro
),
),
if (provider.checkBookmark != null) ...[
const SizedBox(height: 24),
const Padding(
padding: EdgeInsets.symmetric(horizontal: 24, vertical: 16),
child: Divider(),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: TextFormField(
@@ -125,6 +128,7 @@ class AddLinkModalState extends ConsumerState<AddLinkModal> with SingleTickerPro
labelText: t.links.addLink.title,
hintText: provider.checkBookmark?.metadata?.title,
floatingLabelBehavior: FloatingLabelBehavior.always,
helperText: t.links.addLink.leaveEmptyUseWebsiteTitle,
),
),
),
@@ -146,6 +150,7 @@ class AddLinkModalState extends ConsumerState<AddLinkModal> with SingleTickerPro
labelText: t.links.addLink.description,
hintText: provider.checkBookmark?.metadata?.description,
floatingLabelBehavior: FloatingLabelBehavior.always,
helperText: t.links.addLink.leaveEmptyUseWebsiteDescription,
),
),
),

View File

@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:linkdy/i18n/strings.g.dart';
class ErrorSaveLink extends StatelessWidget {
const ErrorSaveLink({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text(t.generic.error),
content: Text(t.links.addLink.errorSavingLink),
actions: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
onPressed: () => Navigator.pop(context),
child: Text(t.generic.close),
),
],
),
],
);
}
}