/* Powermieter — Vertrag digital abschließen (fokussierter Signatur-Screen / Overlay) */ const { useState: useSgS, useRef: useSgR, useEffect: useSgE } = React; function SignaturePad({ onInk }) { const ref = useSgR(null); const drawing = useSgR(false); const last = useSgR(null); const inked = useSgR(false); useSgE(() => { const c = ref.current; if (!c) return; const dpr = window.devicePixelRatio || 1; const rect = c.getBoundingClientRect(); c.width = rect.width * dpr; c.height = rect.height * dpr; const ctx = c.getContext('2d'); ctx.scale(dpr, dpr); ctx.lineWidth = 2.4; ctx.lineCap = 'round'; ctx.lineJoin = 'round'; ctx.strokeStyle = getComputedStyle(c).getPropertyValue('--accent').trim() || '#0E7C86'; }, []); const pos = e => { const r = ref.current.getBoundingClientRect(); const p = e.touches ? e.touches[0] : e; return { x: p.clientX - r.left, y: p.clientY - r.top }; }; const start = e => { e.preventDefault(); drawing.current = true; last.current = pos(e); }; const move = e => { if (!drawing.current) return; e.preventDefault(); const ctx = ref.current.getContext('2d'); const p = pos(e); ctx.beginPath(); ctx.moveTo(last.current.x, last.current.y); ctx.lineTo(p.x, p.y); ctx.stroke(); last.current = p; if (!inked.current) { inked.current = true; onInk(true); } }; const end = () => { drawing.current = false; }; const clear = () => { const c = ref.current; const ctx = c.getContext('2d'); ctx.clearRect(0, 0, c.width, c.height); inked.current = false; onInk(false); }; return (
PowerHouse 360zwischen {LEGAL_ENTITY.name} (Betreiber) und dem nachstehenden Teilnehmer für die Versorgung im Objekt {OBJEKT.name}.
Mit der Unterzeichnung bestätigt der Teilnehmer die Geltung der beigefügten Vertragsdokumente und Preisinformationen. Das gesetzliche Widerrufsrecht von 14 Tagen bleibt unberührt.
Mit Maus oder Finger im Feld unterschreiben.
Die getippte Eingabe gilt als digitale Unterschrift.
Ihr {docName} wurde unterzeichnet und an {form.email || 'Ihre E-Mail-Adresse'} gesendet. Eine Kopie liegt in Ihrem Powermieter-Portal.