Blog
Feature
3 novembre 20256 min

Editor rich text e checklist collaborative — TipTap in React Native

Un memo non è solo testo semplice. È titoli, grassetto, elenchi, checklist. E in un contesto collaborativo, una checklist è uno strumento di coordinamento.

TipTap in React Native

TipTap è fantastico sul web. Su React Native, è un'altra storia. Nessun DOM. La soluzione: una WebView che incorpora l'editor con un bridge bidirezionale. Il contenuto viene serializzato in JSON, inviato tramite il bridge e memorizzato in HTML.

L'editor supporta: titoli, grassetto/corsivo, elenchi, blocchi di codice e checklist interattive. La parte più difficile: gestire la tastiera mobile e lo scorrimento automatico del cursore.

Checklist: singolo vs tutti

Singolo: un solo membro deve spuntare per convalidare. "Compra il caffè" — il primo che lo fa, va bene.

Tutti: ogni membro deve spuntare individualmente. "Leggi il verbale" — vogliamo assicurarci che tutti l'abbiano letto.

Nel database, una tabella di convalida memorizza lo stato per utente e per elemento.

La sincronizzazione in tempo reale

Utilizzo Supabase Realtime per le modifiche. L'unione avviene a livello dei singoli elementi, non dell'intero documento — il che riduce i conflitti. Non è CRDT ma è sufficiente per un uso collaborativo normale.