app delete

This commit is contained in:
DASHU
2024-09-27 09:32:06 +08:00
parent 95c178a675
commit 1b04d52f14
6 changed files with 81 additions and 3 deletions

View File

@@ -32,4 +32,9 @@ class AuthLogDB {
db = await DB.getDB(db); db = await DB.getDB(db);
return await db.insert("auth_log", o.toJson()); return await db.insert("auth_log", o.toJson());
} }
static Future<void> deleteByAppId(int appId, {DatabaseExecutor? db}) async {
db = await DB.getDB(db);
db.execute("delete from auth_log where app_id = ?", [appId]);
}
} }

View File

@@ -4,6 +4,7 @@ import 'package:nowser/const/app_type.dart';
import 'package:nowser/const/auth_type.dart'; import 'package:nowser/const/auth_type.dart';
import 'package:nowser/const/connect_type.dart'; import 'package:nowser/const/connect_type.dart';
import 'package:nowser/data/app_db.dart'; import 'package:nowser/data/app_db.dart';
import 'package:nowser/data/auth_log_db.dart';
import '../const/auth_result.dart'; import '../const/auth_result.dart';
import '../data/app.dart'; import '../data/app.dart';
@@ -118,6 +119,19 @@ class AppProvider extends ChangeNotifier {
} }
} }
Future<void> deleteApp(App app) async {
await AppDB.delete(app.id!);
reload();
try {
await AuthLogDB.deleteByAppId(app.id!);
} catch (e) {
print(e.toString());
}
notifyListeners();
}
App? getAppById(int appId) { App? getAppById(int appId) {
return _appMap[appId]; return _appMap[appId];
} }

View File

@@ -1,5 +1,7 @@
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:nostr_sdk/client_utils/keys.dart'; import 'package:nostr_sdk/client_utils/keys.dart';
import 'package:nostr_sdk/nip19/nip19.dart'; import 'package:nostr_sdk/nip19/nip19.dart';
import 'package:nostr_sdk/utils/string_util.dart'; import 'package:nostr_sdk/utils/string_util.dart';
@@ -43,14 +45,62 @@ class _AppsRouter extends CustState<AppsRouter> {
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
var app = appList[i]; var app = appList[i];
widgets.add(Container( widgets.add(Container(
child: MeRouterAppItemComponent(app), child: Slidable(
child: MeRouterAppItemComponent(app),
endActionPane: ActionPane(
motion: ScrollMotion(),
extentRatio: 0.25,
children: [
// GestureDetector(
// onTap: () {},
// child: Container(
// color: Colors.red,
// alignment: Alignment.center,
// padding: EdgeInsets.only(
// left: Base.BASE_PADDING,
// right: Base.BASE_PADDING,
// top: 3,
// bottom: 3,
// ),
// child: Row(
// // mainAxisSize: MainAxisSize.min,
// children: [
// Icon(
// Icons.delete_forever,
// color: Colors.white,
// ),
// Text(
// "Delete",
// style: TextStyle(color: Colors.white),
// )
// ],
// ),
// ),
// ),
SlidableAction(
onPressed: (context) {
var cancelFunc = BotToast.showLoading();
try {
appProvider.deleteApp(app);
} catch (e) {
} finally {
cancelFunc.call();
}
},
backgroundColor: Color(0xFFFE4A49),
foregroundColor: Colors.white,
icon: Icons.delete,
),
],
),
),
)); ));
if (i + 1 < length) { if (i + 1 < length) {
widgets.add(Divider()); widgets.add(Divider());
} }
} }
if (widgets.isNotEmpty) { if (widgets.isNotEmpty) {
var listWidget = Container( Widget listWidget = Container(
padding: EdgeInsets.all(Base.BASE_PADDING), padding: EdgeInsets.all(Base.BASE_PADDING),
decoration: BoxDecoration( decoration: BoxDecoration(
color: themeData.cardColor, color: themeData.cardColor,

View File

@@ -403,6 +403,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
flutter_slidable:
dependency: "direct main"
description:
name: flutter_slidable
sha256: "2c5611c0b44e20d180e4342318e1bbc28b0a44ad2c442f5df16962606fd3e8e3"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
flutter_socks_proxy: flutter_socks_proxy:
dependency: transitive dependency: transitive
description: description:

View File

@@ -48,6 +48,7 @@ dependencies:
flutter_secure_storage: ^9.2.2 flutter_secure_storage: ^9.2.2
pretty_qr_code: ^3.3.0 pretty_qr_code: ^3.3.0
qr_code_scanner: ^1.0.1 qr_code_scanner: ^1.0.1
flutter_slidable: ^3.1.1
dev_dependencies: dev_dependencies:
flutter_launcher_icons: ^0.13.1 flutter_launcher_icons: ^0.13.1