import React from 'react'; import { Heading, Text, Spinner, Link, IconButton, StarIcon, Pane, TextInput, ListItem, UnorderedList, EditIcon, LockIcon, PhoneIcon, ApplicationIcon } from 'evergreen-ui' import './App.css'; const API_URL = 'https://api.jitsi.net/'; class Form extends React.Component { constructor() { super(); this.state = {}; this.handleSubmit = this.handleSubmit.bind(this); } async handleSubmit(event) { event.preventDefault(); this.setState({ loading: true, name: null }); if (!event.target.checkValidity()) { this.setState({ invalid: true, displayErrors: true, loading: false, }); return; } const form = event.target; const form_data = new FormData(form); let name = form_data.get('meeting-name'); let [data_id, data_numbers] = await Promise.all([ fetch(`${API_URL}conferenceMapper?conference=${name}@conference.meet.jit.si`).then(res => res.json()), fetch(`${API_URL}phoneNumberList?conference=${name}@conference.meet.jit.si`).then(res => res.json()), ]) console.log(data_id); console.log(data_numbers); this.setState({ invalid: false, displayErrors: false, name: name, meetingid: data_id.id, phone: data_numbers.numbers.UK, loading: false, }) } render() { const { name, meetingid, invalid, phone, loading, displayErrors } = this.state; return (
meeting name: {!loading && ( )}
{invalid && ( Form is not valid )} {loading && ( )} {!invalid && name && (

details for "{name}"

Notes: https://pad.riseup.net/p/{name} Computer / app: https://meet.jit.si/{name} Phone: {phone} PIN: {meetingid}
)}
); } } class App extends React.Component { onClick = () => { console.log("Foo"); }; render() { return (
horizonevent by @3wc. source ); } } export default App;