This is follow-up of #31359 that moves "Saved snippets" button from
"send_later" popover to message formatting buttons and adds support
to use saved snippets in message-edit UI.
Fixes#31830.
This serves as a way to escape the subjectively annoying
requirement of having to press Tab/Enter twice to complete
a stream typeahead, in cases where you only want
to mention a stream.
Consider you write `#des` and then press `Tab`
This will put `#**design>` in the textarea and
add trigger the topic typeahead menu.
Now if you continue writing text right after the ">"
like `#**design>my sample text` and press ESC key, it
will be converted to `#**design** my sample text`.
This provides convenience of not having to press Tab
twice in order to mention stream and write some text
or just a stream mention using the Tab + Esc combination.
Enable a consecutive topic typeahead after a user selects a stream via the
typeahead menu. Previously, users had to manually enter ">" after selecting
a stream.
Before, encountering ">" returned "topic_jump," which prevented the
topic list from triggering since "topic_jump" indicated the topic was
selected. The implementation is changed to slice the token and process it
in get_candidates to trigger the appropriate typeahead.
Adjustments include changes to regexes for accurate triggering of stream or
topic typeaheads based on the presence of ">" in the current token.
Removes hint for stream mentioning use of ">"
for topic suggestions, although that feature is
still functional.
The hideAfterSelect() function in composebox_typeahead.ts was modified.
This prevents closing the typeahead when a stream is completed.
The TopicSuggestion type is updated to show stream typeahead suggestion
as the first option in the topic list with a privacy icon and no description
in case when no character follows the '>' i.e. when the token ends with '>'.
The edge where stream and topic have the same name is also handled with
the help of a flag.
Add stream as the prefix to topic suggestions in the typeahead.
To make this happen, changes are made in the related handlebars
template.
Update topic list stream option label.
This changes the option label for stream in the topic
list from (mention channel) to (link to channel) as per
https://zulip.com/help/link-to-a-message-or-conversation.
Tests are updated, and a new test is added to validate the behavior.
Test coverage is added for the new `render_stream_topic` method.
Fixes: #32184.
This commit adds support to render long descriptions
on hovering over the narrow description.
Hides the title and associated privacy icon below
a particular screen to create more room to show
the extended description.
Sets a fixed width in case of bigger screens
for word-wrap to work.
Fixes#14729.
If the user is navigating via keyboard and the top / bottom of
the message is not visible, we scroll instead of selecting the
next message to allow user to completely see that message.
Made maybe_negated a required parameter in
check_not_both_channel_and_dm_narrow so that it doesn't raise error
when -is:dm is called with channels:public or
when -channels:public is called with is:dm
Fixes#33033
The invalid duration ‘0.2’ is ignored by browsers. Clearly ‘0.2s’ was
intended. But since this transition also violates
no-low-performance-animation-properties, let’s remove it without a
behavior change. Someone can rebuild it with an efficient
implementation later.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
Earlier, unread_count in home view tooltip was set to total unread
messages while we normally exclude muted messages from unread_count.
This commit changes this by setting it to `home_unread_messages`.
In order to avoid races with the user's device connecting to a
network after unsuspending, we ping the server settings endpoint
for a success response before initiating the reload of the app.
Fixes#33118.
Co-authored-by: Tim Abbott <tabbott@zulip.com>
Extracts message_fetch and get_events algorithms for calculating the
exponential backoff into a shared helper function.
These match the algorithm that were designed for the Python API, except
that we use a ratio of 2 rather than sqrt(2) in the message_fetch code
path.
Updates the selector for the channel narrow and combined feed
in this puppeteer test to be more specific than the message feed
container, which is what the check for the direct message view
already does in this test.
A disabled pill cannot be removed. It will not have the `x` sign inside
it's pill. Pressing backspace on the pill will not remove it. But it
will still be possible to shift focus on the disabled pill using the
backspace button.
We decided to keep disabled not as a property of `item` and instead of
the pill via `InputPill`. This means that a pill is disabled and not an
item. Also, since the item types vary so much between user, user group,
channel and other pills, adding disabled to `InputPill<ItemType>` makes
it much more simpler to add this capability to wherever needed one by
one.
We also need to pass this property to `generate_pill_html` so the
respective functions can respect that property and render the pill
accordingly.
While this feature is not in use at the immediate moment, we've kept it
around since it is likely to be useful in the future.
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Resolved a transition issue in the polls UI when switching between dark and light modes. This fixes visual inconsistencies and ensures smoother transitions, improving the overall user experience.
Fixes#30628.
Previously, Cmd + Return did not send messages in preview mode when
configured by the user.
This commit fixes the logic to allow sending messages in preview
mode with Cmd + Return as per user configuration.
Fixes: #32960.
This is helpful for info density, because `em` values change
depending on the font-size of the HTML element, and we want to
be able to reference `em` sizes for the placement of the message
header container when it's sticky.
This commit should have no functional changes because
`message-header-contents` is the only child of `message_header`
and doesn't itself use font size or line height.
This commit also changes the line height to unitless
https://chat.zulip.org/#narrow/channel/6-frontend/topic/navbar.20sticky.20header.20with.20em/near/2054561
This commit adds hardening such that if the invariant "no usermessage
row corresponding to a message exists if the user loses access to the
message" is violated due to some bug, user can't access the attachment
if they are not subscribed.
This commit updates the 'get_mentions_for_message_updates' function to
use the generic 'event_recipient_ids_for_action_on_messages' function
to determine users having access to the message and perform an
intersection with the mentioned users to filter out the users who
no longer can access the message.
It helps to add hardening such that if the invariant "no usermessage
row corresponding to a message exists if the user loses access to the
message" is violated due to some bug, it has minimal user impact.