ribaunt/widget-react, der dir typisierte Props, Callback-Props für jedes Widget-Event und ein imperatives Ref-Handle bietet – ohne manuelle DOM-Event-Verkabelung. Der Wrapper kümmert sich auch intern um den dynamischen Import, sodass du dich nie um SSR-Guard-Boilerplate kümmern musst, selbst wenn du ihn in einer Komponente des Next.js App Routers einsetzt.
Das Widget basiert auf der Web Crypto API und erfordert daher einen sicheren Kontext. Verwende
https:// in der Produktion und http://localhost während der lokalen Entwicklung. Einfache lokale Netzwerk-HTTP-URLs können in einigen Browsern fehlschlagen.Den React-Wrapper verwenden (empfohlen)
ImportiereRibauntWidget aus ribaunt/widget-react und platziere es an beliebiger Stelle in deinem JSX. Jede Konfigurationsoption ist als typisierte Prop verfügbar, und jedes Widget-Event wird auf einen on*-Callback abgebildet.
Wenn du den Next.js App Router verwendest, füge
'use client' am Anfang der Datei hinzu – Details findest du in der Next.js-Integrationsanleitung.Imperatives Handle (Ref)
Übergib eineref, die als RibauntWidgetHandle typisiert ist, um reset(), getState() oder startVerification() aus deinem eigenen Code aufzurufen – zum Beispiel, um die Verifizierung über einen eigenen Button auszulösen oder nach einer fehlgeschlagenen Formularübermittlung zurückzusetzen.
| Methode | Beschreibung |
|---|---|
startVerification() | Startet programmatisch das Proof-of-Work-Lösen. |
reset() | Setzt das Widget in seinen Ausgangszustand zurück. |
getState() | Gibt den aktuellen Widget-Status-String zurück oder '', wenn das Widget noch nicht montiert ist. |
Live-Prop-Updates
Der React-Wrapper synchronisiert die folgenden Props nach dem Mount mit der zugrunde liegenden Web-Komponente – du musst das Widget bei Änderungen dieser Werte nicht neu mounten (z. B. durch Ändern von
key):challengeEndpointverifyEndpointautoVerifyshowWarningwarningMessagesolveTimeoutdisabled
key ein Neumounten erzwang, sobald sich eine dieser Props änderte, kannst du diesen Workaround gefahrlos entfernen.Die rohe Web-Komponente verwenden
Für fortgeschrittene Fälle, in denen du die volle Kontrolle über DOM-Event-Listener wünschst, kannst du die Web-Komponente selbst mit einem Side-Effect-Import registrieren und<ribaunt-widget> direkt in JSX verwenden. Ribaunt liefert TypeScript-Deklarationen sowohl für HTMLElementTagNameMap als auch für JSX.IntrinsicElements, sodass du in beiden Fällen Typsicherheit erhältst.
Wenn du den Ansatz mit der rohen Web-Komponente in einer server-gerenderten Umgebung verwendest, musst du den Import selbst absichern (z. B. innerhalb eines
useEffect), um zu verhindern, dass er während SSR ausgeführt wird. Der ribaunt/widget-react-Wrapper erledigt dies automatisch, weshalb er der empfohlene Ansatz ist.