Skip to content

Commit 49a7fbe

Browse files
committed
new_dm: Add UI for starting new DM conversations
Add a modal bottom sheet UI for starting direct messages: - Search and select users from global list - Support single and group DMs - Navigate to message list after selection Design reference: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=4903-31879&p=f&t=pQP4QcxpccllCF7g-0 Fixes: #127
1 parent 5764366 commit 49a7fbe

14 files changed

+784
-12
lines changed

assets/l10n/app_en.arb

+24
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,30 @@
345345
"@composeBoxGenericContentHint": {
346346
"description": "Hint text for content input when sending a message."
347347
},
348+
"newDmSheetBackButtonLabel": "Back",
349+
"@newDmSheetBackButtonLabel": {
350+
"description": "Label for the back button in the new DM sheet, allowing the user to return to the previous screen."
351+
},
352+
"newDmSheetNextButtonLabel": "Next",
353+
"@newDmSheetNextButtonLabel": {
354+
"description": "Label for the front button in the new DM sheet, if applicable, for navigation or action."
355+
},
356+
"newDmSheetScreenTitle": "New DM",
357+
"@newDmSheetScreenTitle": {
358+
"description": "Title displayed at the top of the new DM screen."
359+
},
360+
"newDmFabButtonLabel": "New DM",
361+
"@newDmFabButtonLabel": {
362+
"description": "Label for the floating action button (FAB) that opens the new DM sheet."
363+
},
364+
"newDmSheetSearchHintEmpty": "Add one or more users",
365+
"@newDmSheetSearchHintEmpty": {
366+
"description": "Hint text for the search bar when no users are selected"
367+
},
368+
"newDmSheetSearchHintSomeSelected": "Add another user…",
369+
"@newDmSheetSearchHintSomeSelected": {
370+
"description": "Hint text for the search bar when at least one user is selected"
371+
},
348372
"composeBoxDmContentHint": "Message @{user}",
349373
"@composeBoxDmContentHint": {
350374
"description": "Hint text for content input when sending a message to one other person.",

lib/generated/l10n/zulip_localizations.dart

+36
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,42 @@ abstract class ZulipLocalizations {
567567
/// **'Type a message'**
568568
String get composeBoxGenericContentHint;
569569

570+
/// Label for the back button in the new DM sheet, allowing the user to return to the previous screen.
571+
///
572+
/// In en, this message translates to:
573+
/// **'Back'**
574+
String get newDmSheetBackButtonLabel;
575+
576+
/// Label for the front button in the new DM sheet, if applicable, for navigation or action.
577+
///
578+
/// In en, this message translates to:
579+
/// **'Next'**
580+
String get newDmSheetNextButtonLabel;
581+
582+
/// Title displayed at the top of the new DM screen.
583+
///
584+
/// In en, this message translates to:
585+
/// **'New DM'**
586+
String get newDmSheetScreenTitle;
587+
588+
/// Label for the floating action button (FAB) that opens the new DM sheet.
589+
///
590+
/// In en, this message translates to:
591+
/// **'New DM'**
592+
String get newDmFabButtonLabel;
593+
594+
/// Hint text for the search bar when no users are selected
595+
///
596+
/// In en, this message translates to:
597+
/// **'Add one or more users'**
598+
String get newDmSheetSearchHintEmpty;
599+
600+
/// Hint text for the search bar when at least one user is selected
601+
///
602+
/// In en, this message translates to:
603+
/// **'Add another user…'**
604+
String get newDmSheetSearchHintSomeSelected;
605+
570606
/// Hint text for content input when sending a message to one other person.
571607
///
572608
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Message @$user';

lib/generated/l10n/zulip_localizations_en.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Message @$user';

lib/generated/l10n/zulip_localizations_ja.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Message @$user';

lib/generated/l10n/zulip_localizations_nb.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Message @$user';

lib/generated/l10n/zulip_localizations_pl.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Wpisz wiadomość';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Napisz do @$user';

lib/generated/l10n/zulip_localizations_ru.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Ввести сообщение';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Сообщение для @$user';

lib/generated/l10n/zulip_localizations_sk.dart

+18
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,24 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
276294
@override
277295
String composeBoxDmContentHint(String user) {
278296
return 'Message @$user';

0 commit comments

Comments
 (0)