diff --git a/web/src/compose.js b/web/src/compose.js index 3700f43144..10b7c1c97e 100644 --- a/web/src/compose.js +++ b/web/src/compose.js @@ -368,7 +368,11 @@ function schedule_message_to_custom_date() { clear_compose_box(); const new_row_html = render_success_message_scheduled_banner({ scheduled_message_id: data.scheduled_message_id, + minimum_scheduled_message_delay_minutes: + scheduled_messages.MINIMUM_SCHEDULED_MESSAGE_DELAY_SECONDS / 60, deliver_at, + minimum_scheduled_message_delay_minutes_note: + scheduled_messages.show_minimum_scheduled_message_delay_minutes_note, }); compose_banner.clear_message_sent_banners(); compose_banner.append_compose_banner_to_banner_list($(new_row_html), $banner_container); diff --git a/web/src/compose_send_menu_popover.js b/web/src/compose_send_menu_popover.js index 027d1dc56e..fc9385dde0 100644 --- a/web/src/compose_send_menu_popover.js +++ b/web/src/compose_send_menu_popover.js @@ -74,9 +74,20 @@ export function open_send_later_menu() { current_time.getTime() + scheduled_messages.MINIMUM_SCHEDULED_MESSAGE_DELAY_SECONDS * 1000, ), - onClose() { + onClose(selectedDates, _dateStr, instance) { // Return to normal state. $send_later_modal_content.css("pointer-events", "all"); + const selected_date = selectedDates[0]; + + if (selected_date && selected_date < instance.config.minDate) { + scheduled_messages.set_minimum_scheduled_message_delay_minutes_note( + true, + ); + } else { + scheduled_messages.set_minimum_scheduled_message_delay_minutes_note( + false, + ); + } }, }, ); diff --git a/web/src/scheduled_messages.ts b/web/src/scheduled_messages.ts index 6a6e4492d1..6f1c3427d9 100644 --- a/web/src/scheduled_messages.ts +++ b/web/src/scheduled_messages.ts @@ -23,6 +23,11 @@ export const scheduled_messages_data = new Map(); let selected_send_later_timestamp: number | undefined; +// show_minimum_scheduled_message_delay_minutes_note is a flag to show the user a note in the +// confirmation banner if the message is scheduled for the minimal 5 minutes ahead time, +// regardless of whether the user tried to schedule it for sooner or not. +export let show_minimum_scheduled_message_delay_minutes_note = false; + function compute_send_times(now = new Date()): Record { const send_times: Record = {}; @@ -215,3 +220,7 @@ export function reset_selected_schedule_timestamp(): void { export function initialize(scheduled_messages_params: StateData["scheduled_messages"]): void { add_scheduled_messages(scheduled_messages_params.scheduled_messages); } + +export function set_minimum_scheduled_message_delay_minutes_note(flag: boolean): void { + show_minimum_scheduled_message_delay_minutes_note = flag; +} diff --git a/web/templates/compose_banner/success_message_scheduled_banner.hbs b/web/templates/compose_banner/success_message_scheduled_banner.hbs index c296b37752..c83029764e 100644 --- a/web/templates/compose_banner/success_message_scheduled_banner.hbs +++ b/web/templates/compose_banner/success_message_scheduled_banner.hbs @@ -2,8 +2,12 @@ class="main-view-banner success message_scheduled_success_compose_banner" data-scheduled-message-id="{{scheduled_message_id}}">
-