HellDots

Opciones

Cada campo de CommentOverlayOptions, agrupado por lo que gobierna.

Todas las opciones son opcionales. createCommentOverlay() sin ningún argumento monta un widget funcional.

import type { CommentOverlayOptions } from 'helldots';

Identidad

Propiedad

Tipo

Mira identidad y permisos.

Persistencia

Propiedad

Tipo

Mira persistencia.

Capturas

Propiedad

Tipo

Mira capturas.

Propiedad

Tipo

Mira enlaces directos y frameworks.

Interfaz

Propiedad

Tipo

Callbacks de ciclo de vida

Propiedad

Tipo

Callbacks de cambio

Un flujo, o diez manejadores específicos que llevan los mismos eventos en los mismos momentos. Suscríbete a unos, a otros, o a los dos.

Propiedad

Tipo

Los diez específicos están documentados por completo en eventos: onCommentCreated, onCommentEdited, onCommentDeleted, onCommentStatusChanged, onCommentUpdated, onAnchorLost, onReplyAdded, onReplyEdited, onReplyDeleted y onReactionToggled.

Un ejemplo completamente cableado

import { createCommentOverlay, type CommentOverlayOptions } from 'helldots';

const options: CommentOverlayOptions = {
  user: { name: session.name, id: session.userId },
  can: (action, target) => session.isAdmin || target.authorId === session.userId,

  locale: navigator.language,
  fastCapture: true,
  captureTimeout: 8000,

  navigate: (page) => router.push(page),
  autoDetectNavigation: true,

  transformScreenshot: async (dataUrl, { kind, commentId }) => {
    const blob = await (await fetch(dataUrl)).blob();
    const { url } = await api.upload(blob, { kind, commentId });
    return url;
  },

  onChange: (event) => {
    if (event.origin === 'host') return;
    api.post('/helldots-events', event);
  },
  onError: (error, context) => logger.warn({ context }, String(error)),
  onReady: async (overlay) => overlay.loadComments(await api.get('/comments')),
};

const overlay = createCommentOverlay(options);

En esta página