diff --git a/web/src/tippyjs.ts b/web/src/tippyjs.ts index cf9e5cdb44..11e70c45e8 100644 --- a/web/src/tippyjs.ts +++ b/web/src/tippyjs.ts @@ -7,11 +7,15 @@ import render_change_visibility_policy_button_tooltip from "../templates/change_ import render_org_logo_tooltip from "../templates/org_logo_tooltip.hbs"; import render_tooltip_templates from "../templates/tooltip_templates.hbs"; +import * as drafts from "./drafts.ts"; import {$t} from "./i18n.ts"; import * as people from "./people.ts"; +import * as scheduled_messages from "./scheduled_messages.ts"; import * as settings_config from "./settings_config.ts"; +import * as starred_messages from "./starred_messages.ts"; import * as stream_data from "./stream_data.ts"; import * as ui_util from "./ui_util.ts"; +import * as unread from "./unread.ts"; import {user_settings} from "./user_settings.ts"; import * as util from "./util.ts"; @@ -190,8 +194,71 @@ export function initialize(): void { appendTo: () => document.body, onShow(instance) { const $container = $(instance.popper).find(".views-tooltip-container"); - if ($container.attr("data-view-code") === user_settings.web_home_view) { - $container.find(".views-tooltip-home-view-note").removeClass("hide"); + let display_count = 0; + const sidebar_option = $container.attr("data-view-code"); + + switch (sidebar_option) { + case user_settings.web_home_view: + $container.find(".views-tooltip-home-view-note").removeClass("hide"); + display_count = unread.get_unread_message_count(); + $container.find(".views-message-count").text( + $t( + { + defaultMessage: + "You have {display_count, plural, =0 {no unread messages} one {# unread message} other {# unread messages}}.", + }, + {display_count}, + ), + ); + break; + case "mentions": + display_count = unread.unread_mentions_counter.size; + $container.find(".views-message-count").text( + $t( + { + defaultMessage: + "You have {display_count, plural, =0 {no unread mentions} one {# unread mention} other {# unread mentions}}.", + }, + {display_count}, + ), + ); + break; + case "starred_message": + display_count = starred_messages.get_count(); + $container.find(".views-message-count").text( + $t( + { + defaultMessage: + "You have {display_count, plural, =0 {no starred messages} one {# starred message} other {# starred messages}}.", + }, + {display_count}, + ), + ); + break; + case "drafts": + display_count = drafts.draft_model.getDraftCount(); + $container.find(".views-message-count").text( + $t( + { + defaultMessage: + "You have {display_count, plural, =0 {no drafts} one {# draft} other {# drafts}}.", + }, + {display_count}, + ), + ); + break; + case "scheduled_message": + display_count = scheduled_messages.get_count(); + $container.find(".views-message-count").text( + $t( + { + defaultMessage: + "You have {display_count, plural, =0 {no scheduled messages} one {# scheduled message} other {# scheduled messages}}.", + }, + {display_count}, + ), + ); + break; } // Since the tooltip is attached to the anchor tag which doesn't diff --git a/web/templates/left_sidebar.hbs b/web/templates/left_sidebar.hbs index 14c0660b99..f311a93adc 100644 --- a/web/templates/left_sidebar.hbs +++ b/web/templates/left_sidebar.hbs @@ -89,7 +89,7 @@
{{#if has_scheduled_messages }}