prepare settings modal

This commit is contained in:
marlon-erler
2026-04-08 20:39:12 +00:00
parent b1030f2630
commit b94216e4c0
5 changed files with 49 additions and 3 deletions
+17 -2
View File
@@ -2934,6 +2934,7 @@
yourNamePlaceholder: "Max Mustermann",
setNameButtonAudioLabel: "Name speichern",
firstDayOfWeekLabel: "Erster Wochentag",
settingsButton: "Einstellungen",
manageStorageButton: "Daten verwalten",
transferDataButton: "Daten\xFCbertragung",
scrollToChatButton: "Chats",
@@ -3112,6 +3113,7 @@
yourNamePlaceholder: "Juan P\xE9rez",
setNameButtonAudioLabel: "establecer nombre",
firstDayOfWeekLabel: "Primer d\xEDa de la semana",
settingsButton: "Ajustes",
manageStorageButton: "Gestionar almacenamiento",
transferDataButton: "Transferencia de datos",
scrollToChatButton: "Chats",
@@ -6093,7 +6095,7 @@
i.toString() == settingsViewModel2.firstDayOfWeekInput.value
)
)), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("hr", null), HomePageButton(
fileTransferViewModel2.showDirectionSelectionModal,
settingsViewModel2.showSettingsModal,
translations.homePage.settingsButton,
"settings"
), HomePageButton(
@@ -6191,6 +6193,7 @@
this.username = new State("");
this.usernameInput = new State("");
this.firstDayOfWeekInput = new State("0");
this.isShowingSettingsModal = new State(false);
// guards
this.cannotSetName = createProxyState(
[this.usernameInput],
@@ -6205,6 +6208,12 @@
this.setFirstDayofWeek = () => {
this.settingsModel.setFirstDayOfWeek(this.firstDayOfWeekInput.value);
};
this.showSettingsModal = () => {
this.isShowingSettingsModal.value = true;
};
this.hideSettingsModal = () => {
this.isShowingSettingsModal.value = false;
};
this.settingsModel = settingsModel2;
this.username.value = settingsModel2.username;
this.usernameInput.value = settingsModel2.username;
@@ -6563,6 +6572,11 @@
return true;
}
// src/View/Modals/settingsModal.tsx
function SettingsModal(settingsViewModel2) {
return /* @__PURE__ */ createElement("div", { class: "modal", "toggle:open": settingsViewModel2.isShowingSettingsModal }, /* @__PURE__ */ createElement("div", { style: "max-width: 64rem" }, /* @__PURE__ */ createElement("main", { class: "padding-0" }), /* @__PURE__ */ createElement("button", { "on:click": settingsViewModel2.hideSettingsModal }, translations.general.closeButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "close"))));
}
// src/index.tsx
var storageModel = new StorageModel();
var settingsModel = new SettingsModel(storageModel);
@@ -6613,6 +6627,7 @@
ChatPageWrapper(chatListViewModel),
ConnectionModal(connectionViewModel),
DataTransferModalWrapper(connectionViewModel, fileTransferViewModel),
StorageModal(storageViewModel)
StorageModal(storageViewModel),
SettingsModal(settingsViewModel)
);
})();
+20
View File
@@ -0,0 +1,20 @@
import * as React from "bloatless-react";
import { FileBrowser } from "../Components/fileBrowser";
import StorageViewModel from "../../ViewModel/Global/storageViewModel";
import { translations } from "../translations";
import SettingsViewModel from "../../ViewModel/Global/settingsViewModel";
export function SettingsModal(settingsViewModel: SettingsViewModel) {
return (
<div class="modal" toggle:open={settingsViewModel.isShowingSettingsModal}>
<div style="max-width: 64rem">
<main class="padding-0"></main>
<button on:click={settingsViewModel.hideSettingsModal}>
{translations.general.closeButton}
<span class="icon">close</span>
</button>
</div>
</div>
);
}
+1 -1
View File
@@ -131,7 +131,7 @@ export function HomePage(
<hr></hr>
{HomePageButton(
fileTransferViewModel.showDirectionSelectionModal,
settingsViewModel.showSettingsModal,
translations.homePage.settingsButton,
"settings",
)}
@@ -10,6 +10,7 @@ export default class SettingsViewModel {
username: React.State<string> = new React.State("");
usernameInput: React.State<string> = new React.State("");
firstDayOfWeekInput: React.State<string> = new React.State("0");
isShowingSettingsModal: React.State<boolean> = new React.State(false);
// guards
cannotSetName: React.State<boolean> = React.createProxyState(
@@ -30,6 +31,14 @@ export default class SettingsViewModel {
this.settingsModel.setFirstDayOfWeek(this.firstDayOfWeekInput.value);
};
showSettingsModal = (): void => {
this.isShowingSettingsModal.value = true;
}
hideSettingsModal = (): void => {
this.isShowingSettingsModal.value = false;
}
// init
constructor(
public coreViewModel: CoreViewModel,
+2
View File
@@ -21,6 +21,7 @@ import { StorageModal } from "./View/Modals/storageModal";
import StorageModel from "./Model/Global/storageModel";
import StorageViewModel from "./ViewModel/Global/storageViewModel";
import v1Upgrader from "./Upgrader/v1";
import { SettingsModal } from "./View/Modals/settingsModal";
// models
const storageModel = new StorageModel();
@@ -86,4 +87,5 @@ document
ConnectionModal(connectionViewModel),
DataTransferModalWrapper(connectionViewModel, fileTransferViewModel),
StorageModal(storageViewModel),
SettingsModal(settingsViewModel),
);