zulip/web
Maneesh Shukla 0eea85446b tooltips: Group tooltips for a smooth transition.
This commit introduces the use of createSingleton from the Tippy.js
library to group the tooltips of compose box formatting buttons. The
main benefit is that the hover delay only applies when you move the
cursor into the group for the first time — after that, tooltips show up
instantly as you move between buttons. It makes the whole experience
feel a lot smoother.

We store the singleton instance in a variable to avoid creating multiple
instances unnecessarily. Before initializing a new singleton, we destroy
the previous one to prevent memory leaks and ensure correct behavior.

Previously, each formatting button had its own independent tooltip with
separate delays, which made the experience feel sluggish and disjointed
when hovering across buttons.

Now, by sharing a delay timer across the grouped tooltips, the
transition feels more natural.

Fixes: #24825.

Co-authored-by: Sayam Samal <sayam@zulip.com>
2025-07-10 17:20:41 -07:00
..
e2e-tests search_suggestion: Show pills in search suggestions. 2025-07-08 10:02:34 -07:00
generated
html web: Sync content of Django and nginx error pages. 2025-04-03 17:09:46 -07:00
images icons: Let the system using the icons specify the fill-rule color. 2025-05-27 10:00:21 -07:00
server katex_server: Fix import/no-named-as-default. 2024-09-25 15:41:01 -07:00
shared icons: Increase "check" icon size. 2025-07-08 10:05:51 -07:00
src tooltips: Group tooltips for a smooth transition. 2025-07-10 17:20:41 -07:00
styles message_row: Correctly align bot icon in message area. 2025-07-10 12:22:34 -07:00
templates compose-buttons: Add compose_button_tooltip class to all the control buttons. 2025-07-10 17:06:02 -07:00
tests tooltips: Group tooltips for a smooth transition. 2025-07-10 17:20:41 -07:00
third alerts: Restore alert-success colors. 2025-07-09 14:04:52 -07:00
.browserslistrc browserslist: Add support for logical props. 2025-05-21 15:19:08 -07:00
.gitignore emoji: Convert spritesheets to webp. 2024-09-11 09:03:47 -07:00
babel.config.js dependencies: Upgrade JavaScript dependencies. 2025-06-25 16:53:17 -07:00
debug-require-webpack-plugin.ts debug-require: Rename to *.cjs. 2024-11-13 09:18:56 -08:00
debug-require.cjs debug-require: Rename to *.cjs. 2024-11-13 09:18:56 -08:00
postcss.config.js postcss: Work around postcss-extend-rule incompatibility with :is(). 2025-05-23 22:25:38 -07:00
webpack.assets.json confirm_email_change: Use redirect-to-POST trick. 2025-07-07 17:15:08 -07:00
webpack.config.ts webpack: Disable cross-origin-header-check middleware. 2025-04-15 16:18:06 -07:00
webpack.dev-assets.json showroom: Standardize "showroom" name for UI components testing pages. 2025-01-13 17:46:15 -08:00