Pegatinas de Discourse

Discourse Stickers v2.0

Esta versión representa una modernización bastante significativa del componente. Además de varias mejoras internas, la configuración de los stickers ha sido rediseñada para facilitar mucho la gestión de colecciones de stickers más grandes.

:artist_palette: Configuración de stickers completamente rediseñada

El cambio más importante en la v2.0 es la propia configuración de los stickers.

La versión anterior almacenaba los stickers como una configuración JSON que contenía valores como:

  • title

  • emoji

  • previewUrl

  • markdownUrl

En la v2.0, esto ha sido reemplazado por el tipo de configuración objects nativo de Discourse.

Cada sticker es ahora un objeto configurable con sus propios campos:

  • Título - el nombre del sticker / texto del tooltip

  • Grupo - opcionalmente organiza los stickers en grupos

  • Insignia de emoji - opcionalmente muestra un pequeño emoji en la esquina

  • Imagen - carga el sticker directamente a través de la configuración

  • Categorías - opcionalmente restringe los stickers a categorías específicas

  • Ocultar en mensajes directos - controla si un sticker está disponible en mensajes directos

  • Canales de chat - opcionalmente restringe los stickers a canales de chat públicos específicos

Esto hace que la configuración de los stickers sea mucho más fácil de entender y mantener, especialmente para colecciones más grandes.

:bento_box: Grupos de stickers y filtrado

Ahora puedes asignar stickers a un Grupo.

Cuando hay varios grupos disponibles, el selector de stickers muestra automáticamente una barra de filtros en la parte superior.

Puedes cambiar entre:

  • Todos

  • grupos individuales

  • Otros para stickers sin grupo

El filtro se genera dinámicamente a partir de los stickers disponibles actualmente para el usuario.

:label: Stickers específicos por categoría

Los stickers ahora pueden asignarse opcionalmente a categorías específicas de Discourse.

Si un sticker tiene categorías configuradas, solo aparecerá en el compositor habitual de publicaciones/respuestas cuando se seleccione una de esas categorías.

Si no se configuran categorías, el sticker sigue estando disponible en todas partes.

:speech_balloon: Más control sobre los stickers de Chat

La v2.0 añade más control sobre la disponibilidad de stickers en Discourse Chat.

Ahora puedes:

  • ocultar stickers individuales de los mensajes directos;

  • restringir stickers a canales de chat públicos específicos;

  • dejar el ajuste de canal vacío para que un sticker esté disponible en todos los canales de chat públicos/de categoría.

Esto permite a los administradores mantener diferentes conjuntos de stickers para diferentes partes de su comunidad.

:prohibited: Los stickers publicados ya no son clicables

Los stickers publicados ahora se tratan como imágenes no interactivas.

Ya no abren la lightbox de Discourse al hacer clic.

Esto aplica tanto a:

  • stickers en publicaciones normales;

  • stickers publicados en Chat.

El objetivo es que los stickers se comporten más como contenido real de sticker/reacción en lugar de imágenes cargadas normales.

:empty_nest: Mejor estado vacío

Si no hay stickers disponibles para el contexto actual, el selector ahora muestra un estado vacío adecuado en lugar de simplemente mostrar un selector vacío.

Por ejemplo, esto puede ocurrir cuando las restricciones de categoría o de Chat impiden que cualquier sticker esté disponible.

:counterclockwise_arrows_button: Las configuraciones de stickers existentes se migran

Una de las partes más importantes de la v2.0 es que las instalaciones existentes no necesitan recrear su colección de stickers.

La antigua configuración JSON sticker_images se migra automáticamente al nuevo formato objects cuando se actualiza el componente.

Se conservan los títulos y valores de emoji de los stickers existentes.

Lo más importante es que las imágenes de stickers cargadas existentes también se migran automáticamente.

Así que si ya tienes docenas de stickers configurados, actualizar a la v2.0 no debería requerir que vuelvas a cargarlos todos.

La antigua propiedad markdownUrl ya no es necesaria y no se transfiere porque el nuevo campo Image representa la carga real de Discourse.


3 Me gusta