Skip to content

Commit 5c40618

Browse files
committed
compose: Support save snippets
We sort the saved snippets by title to be consistent with the web implementation. An UX improvement would be preserving the inputs on the saved snippet compose box after the user has navigated away. Signed-off-by: Zixuan James Li <[email protected]>
1 parent 61c8bdb commit 5c40618

14 files changed

+732
-0
lines changed

assets/l10n/app_en.arb

+24
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,30 @@
337337
"@composeBoxAttachFromCameraTooltip": {
338338
"description": "Tooltip for compose box icon to attach an image from the camera to the message."
339339
},
340+
"composeBoxShowSavedSnippetsTooltip": "Show saved snippets",
341+
"@composeBoxShowSavedSnippetsTooltip": {
342+
"description": "Tooltip for compose box icon to show a list of saved snippets."
343+
},
344+
"noSavedSnippets": "No saved snippets",
345+
"@noSavedSnippets": {
346+
"description": "Text to show on the saved snippets bottom sheet when there are no saved snippets."
347+
},
348+
"newSavedSnippetButton": "New",
349+
"@newSavedSnippetButton": {
350+
"description": "Label for adding a new saved snippet."
351+
},
352+
"newSavedSnippetTitle": "New snippet",
353+
"@newSavedSnippetTitle": {
354+
"description": "Title for the bottom sheet to add a new saved snippet."
355+
},
356+
"newSavedSnippetTitleHint": "Title",
357+
"@newSavedSnippetTitleHint": {
358+
"description": "Hint text for the title input when adding a new saved snippet."
359+
},
360+
"newSavedSnippetMessageHint": "Message",
361+
"@newSavedSnippetMessageHint": {
362+
"description": "Hint text for the content input when adding a new saved snippet."
363+
},
340364
"composeBoxGenericContentHint": "Type a message",
341365
"@composeBoxGenericContentHint": {
342366
"description": "Hint text for content input when sending a message."

lib/generated/l10n/zulip_localizations.dart

+36
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,42 @@ abstract class ZulipLocalizations {
555555
/// **'Take a photo'**
556556
String get composeBoxAttachFromCameraTooltip;
557557

558+
/// Tooltip for compose box icon to show a list of saved snippets.
559+
///
560+
/// In en, this message translates to:
561+
/// **'Show saved snippets'**
562+
String get composeBoxShowSavedSnippetsTooltip;
563+
564+
/// Text to show on the saved snippets bottom sheet when there are no saved snippets.
565+
///
566+
/// In en, this message translates to:
567+
/// **'No saved snippets'**
568+
String get noSavedSnippets;
569+
570+
/// Label for adding a new saved snippet.
571+
///
572+
/// In en, this message translates to:
573+
/// **'New'**
574+
String get newSavedSnippetButton;
575+
576+
/// Title for the bottom sheet to add a new saved snippet.
577+
///
578+
/// In en, this message translates to:
579+
/// **'New snippet'**
580+
String get newSavedSnippetTitle;
581+
582+
/// Hint text for the title input when adding a new saved snippet.
583+
///
584+
/// In en, this message translates to:
585+
/// **'Title'**
586+
String get newSavedSnippetTitleHint;
587+
588+
/// Hint text for the content input when adding a new saved snippet.
589+
///
590+
/// In en, this message translates to:
591+
/// **'Message'**
592+
String get newSavedSnippetMessageHint;
593+
558594
/// Hint text for content input when sending a message.
559595
///
560596
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Take a photo';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Type a message';
272290

lib/generated/l10n/zulip_localizations_en.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Take a photo';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Type a message';
272290

lib/generated/l10n/zulip_localizations_ja.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Take a photo';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Type a message';
272290

lib/generated/l10n/zulip_localizations_nb.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Take a photo';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Type a message';
272290

lib/generated/l10n/zulip_localizations_pl.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Zrób zdjęcie';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Wpisz wiadomość';
272290

lib/generated/l10n/zulip_localizations_ru.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Сделать снимок';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Ввести сообщение';
272290

lib/generated/l10n/zulip_localizations_sk.dart

+18
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
267267
@override
268268
String get composeBoxAttachFromCameraTooltip => 'Take a photo';
269269

270+
@override
271+
String get composeBoxShowSavedSnippetsTooltip => 'Show saved snippets';
272+
273+
@override
274+
String get noSavedSnippets => 'No saved snippets';
275+
276+
@override
277+
String get newSavedSnippetButton => 'New';
278+
279+
@override
280+
String get newSavedSnippetTitle => 'New snippet';
281+
282+
@override
283+
String get newSavedSnippetTitleHint => 'Title';
284+
285+
@override
286+
String get newSavedSnippetMessageHint => 'Message';
287+
270288
@override
271289
String get composeBoxGenericContentHint => 'Type a message';
272290

0 commit comments

Comments
 (0)