From 9c852e220c08346ff94f50fd7b35c06d57932d48 Mon Sep 17 00:00:00 2001 From: Parth-11 Date: Tue, 25 Mar 2025 00:57:22 +0530 Subject: [PATCH] Added pronouns to @-mentions autocomplete --- lib/widgets/autocomplete.dart | 13 +++++++ packages/zulip_plugin/pubspec.lock | 6 ++++ pubspec.lock | 56 +++++++++++++++--------------- 3 files changed, 47 insertions(+), 28 deletions(-) create mode 100644 packages/zulip_plugin/pubspec.lock diff --git a/lib/widgets/autocomplete.dart b/lib/widgets/autocomplete.dart index a31369c3d9..a3afb40c29 100644 --- a/lib/widgets/autocomplete.dart +++ b/lib/widgets/autocomplete.dart @@ -273,12 +273,16 @@ class _MentionAutocompleteItem extends StatelessWidget { Widget avatar; String label; String? sublabel; + String? pronouns; switch (option) { case UserMentionAutocompleteResult(:var userId): final user = store.getUser(userId)!; // must exist because UserMentionAutocompleteResult avatar = Avatar(userId: userId, size: 36, borderRadius: 4); label = user.fullName; sublabel = store.userDisplayEmail(user); + if(user.profileData !=null){ + pronouns = user.profileData![19]?.value; + } case WildcardMentionAutocompleteResult(:var wildcardOption): avatar = SizedBox.square(dimension: 36, child: const Icon(ZulipIcons.three_person, size: 24)); @@ -306,6 +310,14 @@ class _MentionAutocompleteItem extends StatelessWidget { overflow: TextOverflow.ellipsis, maxLines: 1); + final pronounWidget = pronouns == null ? null : Text( + pronouns, + style: TextStyle( + fontSize: 14, + height: 16 / 14, + color: designVariables.contextMenuItemMeta),); + + return Padding( padding: const EdgeInsetsDirectional.fromSTEB(4, 4, 8, 4), child: Row(children: [ @@ -318,6 +330,7 @@ class _MentionAutocompleteItem extends StatelessWidget { labelWidget, if (sublabelWidget != null) sublabelWidget, ])), + if(pronounWidget != null) pronounWidget, ])); } } diff --git a/packages/zulip_plugin/pubspec.lock b/packages/zulip_plugin/pubspec.lock new file mode 100644 index 0000000000..e4de75859b --- /dev/null +++ b/packages/zulip_plugin/pubspec.lock @@ -0,0 +1,6 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: {} +sdks: + dart: ">=3.4.0-256.0.dev <4.0.0" + flutter: ">=3.3.0" diff --git a/pubspec.lock b/pubspec.lock index 2a9993093f..49153da749 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: "direct dev" description: name: args - sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" async: dependency: transitive description: @@ -117,10 +117,10 @@ packages: dependency: transitive description: name: built_value - sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" + sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4 url: "https://pub.dev" source: hosted - version: "8.9.4" + version: "8.9.5" characters: dependency: transitive description: @@ -310,10 +310,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "7423298f08f6fc8cce05792bae329f9a93653fc9c08712831b1a55540127995d" + sha256: "127d84b954527b2a59208c5cba556d8fb9078538f41ec869a56651f72f212a4b" url: "https://pub.dev" source: hosted - version: "9.0.2" + version: "9.2.0" file_selector_linux: dependency: transitive description: @@ -446,10 +446,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "1c2b787f99bdca1f3718543f81d38aa1b124817dfeb9fb196201bea85b6134bf" + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" url: "https://pub.dev" source: hosted - version: "2.0.26" + version: "2.0.27" flutter_test: dependency: "direct dev" description: flutter @@ -533,10 +533,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: "82652a75e3dd667a91187769a6a2cc81bd8c111bbead698d8e938d2b63e5e89a" + sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9" url: "https://pub.dev" source: hosted - version: "0.8.12+21" + version: "0.8.12+22" image_picker_for_web: dependency: transitive description: @@ -557,10 +557,10 @@ packages: dependency: transitive description: name: image_picker_linux - sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9" url: "https://pub.dev" source: hosted - version: "0.2.1+1" + version: "0.2.1+2" image_picker_macos: dependency: transitive description: @@ -738,10 +738,10 @@ packages: dependency: transitive description: name: package_config - sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" package_info_plus: dependency: "direct main" description: @@ -778,10 +778,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" + sha256: "0ca7359dad67fd7063cb2892ab0c0737b2daafd807cf1acecd62374c8fae6c12" url: "https://pub.dev" source: hosted - version: "2.2.15" + version: "2.2.16" path_provider_foundation: dependency: transitive description: @@ -826,10 +826,10 @@ packages: dependency: "direct dev" description: name: pigeon - sha256: "1bab69b62617e5f31cf84dcab82c62aa21b7883055f0ca7ff93e76651eef8575" + sha256: "286b64a30967eac2edc4ca292132fb662b460dd57d085fef5436ed02dd7721e7" url: "https://pub.dev" source: hosted - version: "24.2.1" + version: "24.2.2" platform: dependency: transitive description: @@ -874,10 +874,10 @@ packages: dependency: transitive description: name: pub_semver - sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" pubspec_parse: dependency: transitive description: @@ -999,10 +999,10 @@ packages: dependency: "direct main" description: name: sqlite3 - sha256: "32b632dda27d664f85520093ed6f735ae5c49b5b75345afb8b19411bc59bb53d" + sha256: "310af39c40dd0bb2058538333c9d9840a2725ae0b9f77e4fd09ad6696aa8f66e" url: "https://pub.dev" source: hosted - version: "2.7.4" + version: "2.7.5" sqlite3_flutter_libs: dependency: "direct main" description: @@ -1119,10 +1119,10 @@ packages: dependency: "direct main" description: name: url_launcher_android - sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" + sha256: "1d0eae19bd7606ef60fe69ef3b312a437a16549476c42321d5dc1506c9ca3bf4" url: "https://pub.dev" source: hosted - version: "6.3.14" + version: "6.3.15" url_launcher_ios: dependency: transitive description: @@ -1199,10 +1199,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: "7018dbcb395e2bca0b9a898e73989e67c0c4a5db269528e1b036ca38bcca0d0b" + sha256: ae7d4f1b41e3ac6d24dd9b9d5d6831b52d74a61bdd90a7a6262a33d8bb97c29a url: "https://pub.dev" source: hosted - version: "2.7.17" + version: "2.8.2" video_player_avfoundation: dependency: transitive description: @@ -1303,10 +1303,10 @@ packages: dependency: transitive description: name: win32 - sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef + sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f url: "https://pub.dev" source: hosted - version: "5.11.0" + version: "5.12.0" win32_registry: dependency: transitive description: