mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Add references support
This commit is contained in:
@ -27,3 +27,7 @@ bool validateUrl(String url) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// Validate user reference
|
||||
bool validateUserReference(String ref) =>
|
||||
RegExp(r'@[a-zA-Z0-9]+').hasMatch(ref);
|
||||
|
@ -1,5 +1,9 @@
|
||||
import 'package:comunic/helpers/virtual_directory_helper.dart';
|
||||
import 'package:comunic/ui/routes/home_route.dart';
|
||||
import 'package:comunic/ui/routes/single_post_route.dart';
|
||||
import 'package:comunic/ui/routes/user_page_route.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
@ -26,3 +30,41 @@ void openPostFullScreen(int postID, BuildContext context) {
|
||||
Navigator.of(context)
|
||||
.push(MaterialPageRoute(builder: (c) => SinglePostRoute(postID: postID)));
|
||||
}
|
||||
|
||||
/// Open a virtual directory
|
||||
void openVirtualDirectory(BuildContext context, String directory) async {
|
||||
if (directory.startsWith("@")) directory = directory.substring(1);
|
||||
|
||||
try {
|
||||
final result = await VirtualDirectoryHelper().find(directory);
|
||||
|
||||
switch (result.type) {
|
||||
case VirtualDirectoryType.USER:
|
||||
openUserPage(context: context, userID: result.id);
|
||||
break;
|
||||
|
||||
case VirtualDirectoryType.GROUP:
|
||||
HomeController.of(context).openGroup(result.id);
|
||||
break;
|
||||
|
||||
case VirtualDirectoryType.NONE:
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (c) => AlertDialog(
|
||||
title: Text(tr("Error")),
|
||||
content: Text(tr("Could not find related resource!")),
|
||||
actions: <Widget>[
|
||||
MaterialButton(
|
||||
child: Text(tr("OK")),
|
||||
onPressed: () => Navigator.of(c).pop(),
|
||||
)
|
||||
],
|
||||
));
|
||||
break;
|
||||
}
|
||||
} catch (e, stack) {
|
||||
print(e);
|
||||
print(stack);
|
||||
showSimpleSnack(context, tr("Could not search virtual directory!"));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user