2022-01-18 03:42:55 -08:00
|
|
|
import { joinSession } from "./watch-session.mjs?v=7";
|
2021-11-09 05:21:14 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLInputElement} field
|
|
|
|
*/
|
|
|
|
const loadNickname = (field) => {
|
|
|
|
try {
|
|
|
|
const savedNickname = localStorage.getItem("watch-party-nickname");
|
|
|
|
field.value = savedNickname;
|
|
|
|
} catch (_err) {
|
|
|
|
// Sometimes localStorage is blocked from use
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLInputElement} field
|
|
|
|
*/
|
|
|
|
const saveNickname = (field) => {
|
|
|
|
try {
|
|
|
|
localStorage.setItem("watch-party-nickname", field.value);
|
|
|
|
} catch (_err) {
|
|
|
|
// see loadNickname
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-01-18 03:42:55 -08:00
|
|
|
/**
|
|
|
|
* @param {HTMLInputElement} field
|
|
|
|
*/
|
|
|
|
const loadColour = (field) => {
|
|
|
|
try {
|
|
|
|
const savedColour = localStorage.getItem("watch-party-colour");
|
|
|
|
if (savedColour != null && savedColour != "") {
|
|
|
|
field.value = savedColour;
|
|
|
|
}
|
|
|
|
} catch (_err) {
|
|
|
|
// Sometimes localStorage is blocked from use
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLInputElement} field
|
|
|
|
*/
|
|
|
|
const saveColour = (field) => {
|
|
|
|
try {
|
|
|
|
localStorage.setItem("watch-party-colour", field.value);
|
|
|
|
} catch (_err) {
|
|
|
|
// see loadColour
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2021-11-11 09:26:30 -08:00
|
|
|
const displayPostCreateMessage = () => {
|
|
|
|
const params = new URLSearchParams(window.location.search);
|
|
|
|
if (params.get("created") == "true") {
|
|
|
|
document.querySelector("#post-create-message").style["display"] = "block";
|
|
|
|
window.history.replaceState({}, document.title, `/${window.location.hash}`);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2021-11-09 05:21:14 -08:00
|
|
|
export const setupJoinSessionForm = () => {
|
2021-11-11 09:26:30 -08:00
|
|
|
displayPostCreateMessage();
|
|
|
|
|
2021-11-09 05:21:14 -08:00
|
|
|
const form = document.querySelector("#join-session-form");
|
|
|
|
const nickname = form.querySelector("#join-session-nickname");
|
2022-01-18 03:42:55 -08:00
|
|
|
const colour = form.querySelector("#join-session-colour");
|
2021-11-09 05:21:14 -08:00
|
|
|
const sessionId = form.querySelector("#join-session-id");
|
2021-12-03 11:37:16 -08:00
|
|
|
const button = form.querySelector("#join-session-button");
|
2021-11-09 05:21:14 -08:00
|
|
|
|
|
|
|
loadNickname(nickname);
|
2022-01-18 03:42:55 -08:00
|
|
|
loadColour(colour);
|
2021-11-09 05:21:14 -08:00
|
|
|
|
|
|
|
if (window.location.hash.match(/#[0-9a-f\-]+/)) {
|
|
|
|
sessionId.value = window.location.hash.substring(1);
|
|
|
|
}
|
|
|
|
|
2021-12-03 11:37:16 -08:00
|
|
|
form.addEventListener("submit", (event) => {
|
|
|
|
event.preventDefault();
|
2021-11-09 05:21:14 -08:00
|
|
|
|
2021-12-03 11:37:16 -08:00
|
|
|
button.disabled = true;
|
|
|
|
|
|
|
|
saveNickname(nickname);
|
2022-01-18 03:42:55 -08:00
|
|
|
saveColour(colour);
|
2022-01-18 04:06:57 -08:00
|
|
|
joinSession(nickname.value, sessionId.value, colour.value.replace(/^#/, ""));
|
2021-12-03 11:37:16 -08:00
|
|
|
});
|
2021-11-09 05:21:14 -08:00
|
|
|
};
|