You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trade Portal — Toast on completion + Styled tooltips
🇬🇧 English
Trade completion toast
A toast notification now pops up the moment a trade transitions to finished, telling the user their received file is waiting for them.
EN:"Trade complete. Your file is now available in the Recent files tray."
ES:"Trade completado. Tu archivo esta disponible en la bandeja de Archivos recientes."
Triggered from maybeCelebrateTrade so it fires exactly once per trade (same de-duplication guard as the confetti + chime).
Uses the existing showToast component with type: 'info' and a longer 6.5 s duration since the message invites the user to take an action.
Translation keys (tradeFinishedFileSaved) added to both the ES and EN dictionaries — adding more languages later only requires translating this same key.
Styled tooltips for help & downloads buttons
Replaced the default browser-native title="..." tooltip (the unstyled black box that clashed with the dark theme) on the download (#download-button) and help (#guide-button) buttons.
Buttons now expose their label via aria-label (for screen readers) and data-tooltip (for the visible chip), with title stripped on render.
The data-i18n-title handler in TradePortal.js keeps both attributes synchronized with the active language and clears any leftover title.
New CSS tooltip chip in TradePortal.css:
Dark surface (--surface-2), hairline border, soft drop shadow, matching the toast / popover language.
Smooth 140 ms fade-in + lift animation on :hover and :focus-visible.
Side-aware anchoring so it never clips off-screen on narrow viewports:
Download button (left of viewport) → tooltip anchored to its left edge, expands rightward.
Help button (right of viewport) → tooltip anchored to its right edge, expands leftward.
Auto-hides while the matching popover is open (aria-expanded="true") to avoid redundant labels.
🇪🇸 Español
Toast al completar el trade
Aparece un toast en el momento en que un trade pasa al estado finished, indicando al usuario que su archivo recibido le está esperando.
ES:"Trade completado. Tu archivo esta disponible en la bandeja de Archivos recientes."
EN:"Trade complete. Your file is now available in the Recent files tray."
Disparado desde maybeCelebrateTrade, por lo que se muestra exactamente una vez por trade (mismo guard que el confeti y el sonido).
Usa el componente existente showToast con type: 'info' y una duración ampliada a 6.5 s, ya que el mensaje invita al usuario a realizar una acción.
Claves de traducción (tradeFinishedFileSaved) añadidas a los diccionarios ES y EN — añadir más idiomas en el futuro sólo requiere traducir esta misma clave.
Tooltips con estilo para los botones de ayuda y descargas
Reemplazado el tooltip nativo del navegador (title="...", esa cajita negra sin estilo que rompía el tema oscuro) en los botones de descargas (#download-button) y ayuda (#guide-button).
Los botones ahora exponen su etiqueta mediante aria-label (para lectores de pantalla) y data-tooltip (para el chip visible), eliminando el title al renderizar.
El handler data-i18n-title en TradePortal.js mantiene ambos atributos sincronizados con el idioma activo y limpia cualquier title residual.
Nuevo chip de tooltip en CSS (TradePortal.css):
Superficie oscura (--surface-2), borde fino, sombra suave — mismo lenguaje visual que los toasts y popovers.
Animación de fade-in + ligero desplazamiento vertical de 140 ms al pasar el ratón o al recibir foco con teclado.
Anclaje inteligente por lado para que nunca se salga de la pantalla en viewports estrechos:
Botón de descargas (izquierda del viewport) → tooltip alineado a su borde izquierdo, expande hacia la derecha.
Botón de ayuda (derecha del viewport) → tooltip alineado a su borde derecho, expande hacia la izquierda.
Se oculta automáticamente cuando el popover correspondiente está abierto (aria-expanded="true") para no duplicar la información.