From 50103301d6e0079fda7f7361ae0cd7afc79c8c46 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sat, 27 Dec 2025 13:42:10 -0500 Subject: [PATCH] Support matrix: uris --- README.md | 2 +- lib/widgets/chat_page/html/html.dart | 6 +-- pubspec.lock | 58 ++++++++++++++-------------- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 23c8293..359f7fc 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ A simple and user-friendly Matrix client made with Flutter and the Matrix Dart S - [x] Users - [x] Rooms - [ ] Plain text - - [ ] Matrix URIs + - [x] Matrix URIs - [x] Matrix.to links - [x] Custom emojis/stickers - [ ] Encrypted messages diff --git a/lib/widgets/chat_page/html/html.dart b/lib/widgets/chat_page/html/html.dart index 2ed5b1f..ce5318a 100644 --- a/lib/widgets/chat_page/html/html.dart +++ b/lib/widgets/chat_page/html/html.dart @@ -41,9 +41,9 @@ class Html extends ConsumerWidget { "blockquote" => Quoted(Html(element.innerHtml, client: client)), "a" => - Uri.tryParse(element.attributes["href"] ?? "")?.host == "matrix.to" - ? InlineCustomWidget(child: MentionChip(element.text)) - : null, + element.attributes["href"]?.parseIdentifierIntoParts() == null + ? null + : InlineCustomWidget(child: MentionChip(element.text)), "img" => element.attributes["src"] == null diff --git a/pubspec.lock b/pubspec.lock index cac3064..871bb6f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "91.0.0" + analysis_server_plugin: + dependency: transitive + description: + name: analysis_server_plugin + sha256: "44adba4d74a2541173bad4c11531d2a4d22810c29c5ddb458a38e9f4d0e5eac7" + url: "https://pub.dev" + source: hosted + version: "0.3.4" analyzer: dependency: "direct overridden" description: @@ -281,14 +289,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.8.1" - custom_lint_builder: - dependency: transitive - description: - name: custom_lint_builder - sha256: "1128db6f58e71d43842f3b9be7465c83f0c47f4dd8918f878dd6ad3b72a32072" - url: "https://pub.dev" - source: hosted - version: "0.8.1" custom_lint_core: dependency: transitive description: @@ -451,7 +451,7 @@ packages: description: path: "packages/flutter_chat_ui" ref: HEAD - resolved-ref: b98ad4ca4339f567c5f562ec8c9b582ba3457d5c + resolved-ref: "6cfbadbf364251dd3c6a986e20c9d97636ad3412" url: "https://github.com/Henry-Hiles/flutter_chat_ui" source: git version: "2.9.1" @@ -476,7 +476,7 @@ packages: description: path: "packages/flutter_link_previewer" ref: HEAD - resolved-ref: b98ad4ca4339f567c5f562ec8c9b582ba3457d5c + resolved-ref: "6cfbadbf364251dd3c6a986e20c9d97636ad3412" url: "https://github.com/Henry-Hiles/flutter_chat_ui" source: git version: "4.1.2" @@ -513,10 +513,10 @@ packages: dependency: "direct main" description: name: flutter_riverpod - sha256: "9e2d6907f12cc7d23a846847615941bddee8709bf2bfd274acdf5e80bcf22fde" + sha256: "38ec6c303e2c83ee84512f5fc2a82ae311531021938e63d7137eccc107bf3c02" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.1.0" flutter_rust_bridge: dependency: transitive description: @@ -596,7 +596,7 @@ packages: description: path: "packages/flyer_chat_text_message" ref: HEAD - resolved-ref: b98ad4ca4339f567c5f562ec8c9b582ba3457d5c + resolved-ref: "6cfbadbf364251dd3c6a986e20c9d97636ad3412" url: "https://github.com/Henry-Hiles/flutter_chat_ui" source: git version: "2.5.2" @@ -652,18 +652,10 @@ packages: dependency: "direct main" description: name: hooks_riverpod - sha256: ae4a2f6d82dd895379f9b95457e090ac2d2fef9446f9325f8d31b9c86cadc131 + sha256: b880efcd17757af0aa242e5dceac2fb781a014c22a32435a5daa8f17e9d5d8a9 url: "https://pub.dev" source: hosted - version: "3.0.3" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: bc167a1163807b03bada490bfe2df25b0d744df359227880220a5cbd04e5734b - url: "https://pub.dev" - source: hosted - version: "4.3.0" + version: "3.1.0" html: dependency: transitive description: @@ -1100,26 +1092,26 @@ packages: dependency: transitive description: name: riverpod - sha256: c406de02bff19d920b832bddfb8283548bfa05ce41c59afba57ce643e116aa59 + sha256: "16ff608d21e8ea64364f2b7c049c94a02ab81668f78845862b6e88b71dd4935a" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.1.0" riverpod_analyzer_utils: dependency: transitive description: name: riverpod_analyzer_utils - sha256: a0f68adb078b790faa3c655110a017f9a7b7b079a57bbd40f540e80dce5fcd29 + sha256: "947b05d04c52a546a2ac6b19ef2a54b08520ff6bdf9f23d67957a4c8df1c3bc0" url: "https://pub.dev" source: hosted - version: "1.0.0-dev.7" + version: "1.0.0-dev.8" riverpod_lint: dependency: "direct dev" description: name: riverpod_lint - sha256: "7ef9c43469e9b5ac4e4c3b24d7c30642e47ce1b12cd7dcdd643534db0a72ed13" + sha256: "4d2eb0d19bbe7e3323bd0ce4553b2e6170d161a13914bfdd85a3612329edcb43" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.1.0" rxdart: dependency: transitive description: @@ -1758,6 +1750,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.3" + yaml_edit: + dependency: transitive + description: + name: yaml_edit + sha256: ec709065bb2c911b336853b67f3732dd13e0336bd065cc2f1061d7610ddf45e3 + url: "https://pub.dev" + source: hosted + version: "2.2.3" sdks: dart: ">=3.9.2 <4.0.0" flutter: ">=3.35.0"