✨ Post reactions
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:solian/exts.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/router.dart';
|
||||
import 'package:solian/services.dart';
|
||||
@ -29,7 +30,7 @@ class _SignInScreenState extends State<SignInScreen> {
|
||||
if (messages.last.contains('risk')) {
|
||||
final ticketId = RegExp(r'ticketId=(\d+)').firstMatch(messages.last);
|
||||
if (ticketId == null) {
|
||||
Get.snackbar('errorHappened'.tr, 'Requested to multi-factor authenticate, but the ticket id was not found');
|
||||
context.showErrorDialog('Requested to multi-factor authenticate, but the ticket id was not found');
|
||||
}
|
||||
showDialog(
|
||||
context: context,
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:solian/exts.dart';
|
||||
import 'package:solian/router.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
@ -54,7 +55,7 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
||||
AppRouter.instance.replaceNamed('auth.sign-in');
|
||||
});
|
||||
} else {
|
||||
Get.snackbar('errorHappened'.tr, resp.bodyString!);
|
||||
context.showErrorDialog(resp.bodyString);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_animate/flutter_animate.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:solian/exts.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/router.dart';
|
||||
import 'package:solian/services.dart';
|
||||
import 'package:solian/widgets/account/account_avatar.dart';
|
||||
import 'package:solian/shells/nav_shell.dart' as shell;
|
||||
import 'package:solian/widgets/attachments/attachment_publish.dart';
|
||||
|
||||
class PostPublishingScreen extends StatefulWidget {
|
||||
const PostPublishingScreen({super.key});
|
||||
@ -19,6 +21,19 @@ class _PostPublishingScreenState extends State<PostPublishingScreen> {
|
||||
|
||||
bool _isSubmitting = false;
|
||||
|
||||
List<String> _attachments = List.empty();
|
||||
|
||||
void showAttachments(BuildContext context) {
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
builder: (context) => AttachmentPublishingPopup(
|
||||
usage: 'i.attachment',
|
||||
current: _attachments,
|
||||
onUpdate: (value) => _attachments = value,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void applyPost() async {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
@ -32,9 +47,10 @@ class _PostPublishingScreenState extends State<PostPublishingScreen> {
|
||||
|
||||
final resp = await client.post('/api/posts', {
|
||||
'content': _contentController.value.text,
|
||||
'attachments': _attachments,
|
||||
});
|
||||
if (resp.statusCode != 200) {
|
||||
Get.snackbar('errorHappened'.tr, resp.bodyString!);
|
||||
context.showErrorDialog(resp.bodyString);
|
||||
} else {
|
||||
AppRouter.instance.pop(resp.body);
|
||||
}
|
||||
@ -107,7 +123,7 @@ class _PostPublishingScreenState extends State<PostPublishingScreen> {
|
||||
TextButton(
|
||||
style: TextButton.styleFrom(shape: const CircleBorder()),
|
||||
child: const Icon(Icons.camera_alt),
|
||||
onPressed: () {},
|
||||
onPressed: () => showAttachments(context),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
Reference in New Issue
Block a user