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.
Navegación y enlaces
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);