2019-11-16 17:24:03 +00:00
|
|
|
import socket from "../socket";
|
|
|
|
import upload from "../upload";
|
2022-06-19 00:25:21 +00:00
|
|
|
import {store} from "../store";
|
2017-11-04 17:32:18 +00:00
|
|
|
|
2020-03-21 20:55:36 +00:00
|
|
|
socket.once("configuration", function (data) {
|
2019-11-02 19:40:59 +00:00
|
|
|
store.commit("serverConfiguration", data);
|
2017-11-04 17:32:18 +00:00
|
|
|
|
2019-11-05 20:51:55 +00:00
|
|
|
// 'theme' setting depends on serverConfiguration.themes so
|
|
|
|
// settings cannot be applied before this point
|
2022-06-19 00:25:21 +00:00
|
|
|
void store.dispatch("settings/applyAll");
|
2019-11-05 20:51:55 +00:00
|
|
|
|
2018-09-03 07:30:05 +00:00
|
|
|
if (data.fileUpload) {
|
2019-11-12 11:09:12 +00:00
|
|
|
upload.initialize();
|
2018-09-03 07:30:05 +00:00
|
|
|
}
|
|
|
|
|
2018-04-02 04:25:45 +00:00
|
|
|
// If localStorage contains a theme that does not exist on this server, switch
|
|
|
|
// back to its default theme.
|
2019-11-03 18:05:19 +00:00
|
|
|
const currentTheme = data.themes.find((t) => t.name === store.state.settings.theme);
|
2019-07-22 16:50:04 +00:00
|
|
|
|
|
|
|
if (currentTheme === undefined) {
|
2022-06-19 00:25:21 +00:00
|
|
|
void store.dispatch("settings/update", {
|
|
|
|
name: "theme",
|
|
|
|
value: data.defaultTheme,
|
|
|
|
sync: true,
|
|
|
|
});
|
2019-07-22 16:50:04 +00:00
|
|
|
} else if (currentTheme.themeColor) {
|
2022-06-19 00:25:21 +00:00
|
|
|
(document.querySelector('meta[name="theme-color"]') as HTMLMetaElement).content =
|
|
|
|
currentTheme.themeColor;
|
2018-04-02 04:25:45 +00:00
|
|
|
}
|
|
|
|
|
2019-11-12 11:09:12 +00:00
|
|
|
if (document.body.classList.contains("public")) {
|
2019-12-18 09:28:39 +00:00
|
|
|
window.addEventListener("beforeunload", (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
e.returnValue = "Are you sure you want to navigate away from this page?";
|
|
|
|
});
|
2018-06-19 15:00:07 +00:00
|
|
|
}
|
|
|
|
});
|