Skip to content
Snippets Groups Projects
Commit 63b7b5a8 authored by Jonas Zohren's avatar Jonas Zohren
Browse files

Add form input checks for attach and broadcast

parent 35d75f83
Branches
No related tags found
No related merge requests found
...@@ -4,16 +4,36 @@ ...@@ -4,16 +4,36 @@
import { API_BASE_URL } from '../stores.js'; import { API_BASE_URL } from '../stores.js';
export let roomUrl = ""; export let roomUrl = "";
$: trimmedUrlInput = roomUrl.trim();
$: isValidBBBUrl = trimmedUrlInput.length > 0 && isValidUrl(trimmedUrlInput);
let createRoomRequestInProgress = false;
function isValidUrl(inputString) {
try {
const _ = new URL(inputString);
return true;
} catch (error) {
return (error instanceof TypeError) ? false : error;
}
}
async function requestAttachToRoom() { async function requestAttachToRoom() {
await fetch(API_BASE_URL+'/attach', { createRoomRequestInProgress = true;
method: 'POST', try {
headers: { await fetch(API_BASE_URL+'/attach', {
'Content-Type': 'application/json' method: 'POST',
}, headers: {
body: JSON.stringify({url: roomUrl}) 'Content-Type': 'application/json'
}) },
body: JSON.stringify({url: trimmedUrlInput})
})
} catch (error) {
console.error("Could not send request to attach to room", trimmedUrlInput);
console.error(error);
}
roomUrl = ''; roomUrl = '';
createRoomRequestInProgress = false;
} }
</script> </script>
...@@ -28,7 +48,7 @@ ...@@ -28,7 +48,7 @@
<br /> <br />
</div> </div>
<div class="panel-block"> <div class="panel-block">
<button class="button is-success is-outlined is-fullwidth" on:click={requestAttachToRoom}> <button type="submit" class:is-loading={createRoomRequestInProgress} class="button is-success is-outlined is-fullwidth" disabled={!isValidBBBUrl} on:click={requestAttachToRoom}>
Attach Attach
</button> </button>
</div> </div>
......
<script> <script>
import { API_BASE_URL } from '../stores.js'; import { API_BASE_URL } from '../stores.js';
let content = ""; let content = "";
$: hasContent = content.trim().length !== 0;
async function sendBroadcast() { async function sendBroadcast() {
try { try {
...@@ -34,8 +35,8 @@ ...@@ -34,8 +35,8 @@
<br /> <br />
</div> </div>
<div class="panel-block"> <div class="panel-block">
<button class="button is-link is-outlined is-fullwidth" on:click={sendBroadcast}> <button type="submit" class="button is-link is-outlined is-fullwidth" disabled={!hasContent} on:click={sendBroadcast}>
Send to all attached rooms Send to attached rooms
</button> </button>
</div> </div>
</nav> </nav>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment