custom emojis in names and no more markdown

This commit is contained in:
zoe 2022-10-01 17:19:22 +02:00
parent d98150007e
commit 6fe0f6967e
3 changed files with 55 additions and 10 deletions

View File

@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:loris/business_logic/notifications/notifs.dart';
import 'package:loris/dialogues/profile_view.dart';
import 'package:loris/partials/name.dart';
import 'package:loris/partials/post.dart';
import '../../global.dart' as global;
import 'package:loris/themes/themes.dart' as themes;
@ -49,9 +51,10 @@ class SingleNotif extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SelectableText(
model.account.displayName,
style: Theme.of(context).textTheme.displaySmall,
NameDisplay(
emoji: model.account.emojis,
content: model.account.displayName,
style: Theme.of(context).textTheme.displaySmall!,
),
SelectableText.rich(
TextSpan(

43
lib/partials/name.dart Normal file
View File

@ -0,0 +1,43 @@
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:loris/business_logic/emoji/emoji.dart';
class NameDisplay extends StatelessWidget {
const NameDisplay({
super.key,
required this.emoji,
required this.content,
required this.style,
});
final List<Emoji> emoji;
final String content;
final TextStyle style;
@override
Widget build(BuildContext context) {
String newtext = content;
newtext = newtext
.replaceAll("~", r"\~")
.replaceAll("_", r"\_")
.replaceAll("*", r"\*");
for (var e in emoji) {
newtext = insertEmojiInMd(newtext, e);
}
return MarkdownBody(
data: newtext,
styleSheet: MarkdownStyleSheet(p: style),
imageBuilder: (uri, title, alt) {
try {
return Image.network(
uri.toString(),
height: style.fontSize,
errorBuilder: (context, error, stackTrace) =>
SelectableText(alt ?? error.toString()),
);
} catch (e) {
return SelectableText(alt ?? "");
}
});
}
}

View File

@ -9,6 +9,7 @@ import 'package:loris/dialogues/makepost.dart';
import 'package:loris/dialogues/profile_view.dart';
import 'package:loris/partials/interaction_button.dart';
import 'package:loris/partials/media_attachment.dart';
import 'package:loris/partials/name.dart';
import 'package:loris/partials/post_options.dart';
import 'package:loris/partials/post_text_renderer.dart';
import 'package:url_launcher/url_launcher_string.dart';
@ -117,13 +118,11 @@ class DisplayName extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
MarkdownBody(
data: dname,
selectable: true,
imageBuilder: (uri, title, alt) => Image.network(
uri.toString(),
height: usernameStyle?.fontSize),
styleSheet: MarkdownStyleSheet(p: usernameStyle)),
NameDisplay(
emoji: account.emojis,
content: account.displayName,
style: usernameStyle!,
),
SelectableText(
account.acct,
style: Theme.of(context).textTheme.bodySmall,