import React, { useState } from 'react'; import { Video, Heart, Users, Copy, Check, ExternalLink, Calendar, Lock, Trash2 } from 'lucide-react'; function HeartUnitedMeetings() { const [meetings, setMeetings] = useState([]); const [newMeeting, setNewMeeting] = useState({ name: '', password: '', scheduled: '' }); const [copied, setCopied] = useState(null); const DOMAIN = 'meet.heart-united.com'; const generateRoomId = () => { return Math.random().toString(36).substring(2, 10); }; const createMeeting = () => { if (!newMeeting.name) { alert('Bitte Meeting-Namen eingeben!'); return; } const roomId = generateRoomId(); const meeting = { id: roomId, name: newMeeting.name, url: `https://${DOMAIN}/${roomId}`, password: newMeeting.password || null, scheduled: newMeeting.scheduled || 'Sofort', created: new Date().toLocaleString('de-DE'), participants: 0 }; setMeetings([meeting, ...meetings]); setNewMeeting({ name: '', password: '', scheduled: '' }); }; const copyLink = (url, id) => { navigator.clipboard.writeText(url); setCopied(id); setTimeout(() => setCopied(null), 2000); }; const deleteMeeting = (id) => { if (confirm('Meeting wirklich löschen?')) { setMeetings(meetings.filter(m => m.id !== id)); } }; return (
{/* Header */}

Heart United Meetings

meet.heart-united.com

Deine eigene Video-Konferenz Plattform – sicher, privat, unbegrenzt

{/* Stats */}
{meetings.length}
Teilnehmer heute
{meetings.reduce((sum, m) => sum + m.participants, 0)}
Server-Status
Online
{/* Meeting erstellen */}

setNewMeeting({...newMeeting, name: e.target.value})} className="w-full bg-gray-800 bg-opacity-50 rounded-xl px-6 py-4 text-lg border border-gray-700 focus:border-purple-500 focus:outline-none" placeholder="z.B. Team-Meeting, Kundengespräch, Workshop..." />
setNewMeeting({...newMeeting, password: e.target.value})} className="w-full bg-gray-800 bg-opacity-50 rounded-xl px-6 py-4 border border-gray-700 focus:border-purple-500 focus:outline-none" placeholder="Leer lassen für öffentliches Meeting" />
setNewMeeting({...newMeeting, scheduled: e.target.value})} className="w-full bg-gray-800 bg-opacity-50 rounded-xl px-6 py-4 border border-gray-700 focus:border-purple-500 focus:outline-none" />
{/* Meetings Liste */}

Meine Meetings ({meetings.length})

{meetings.length === 0 ? (

Noch keine Meetings erstellt

Erstelle dein erstes Meeting oben

) : (
{meetings.map(meeting => (

{meeting.name}

{meeting.scheduled}
{meeting.password && (
Passwort: {meeting.password}
)}
{meeting.participants} Teilnehmer

Erstellt: {meeting.created}

Beitreten
))}
)}
{/* Info Box */}

Wie funktioniert's?

  • • Erstelle ein Meeting mit individuellem Namen
  • • Kopiere den Link und teile ihn mit Teilnehmern
  • • Teilnehmer brauchen keinen Account – nur den Link öffnen
  • • Optional: Setze ein Passwort für mehr Sicherheit
  • • Unbegrenzte Meeting-Dauer und Teilnehmer-Anzahl
); } export default HeartUnitedMeetings;