mirror of
https://github.com/Horizontal42/summarum.git
synced 2026-11-11 01:02:01 +03:00
extract UI bindings out of initUI
This commit is contained in:
parent
42f3611dca
commit
8ef2f8b445
1 changed files with 37 additions and 10 deletions
47
src/main.ts
47
src/main.ts
|
|
@ -804,13 +804,7 @@ async function initDataAndEngine(): Promise<void> {
|
|||
});
|
||||
}
|
||||
|
||||
async function initUI(): Promise<void> {
|
||||
|
||||
applySettings(); // sets the language before bindSettingsUI renders dynamic labels
|
||||
bindSettingsUI();
|
||||
renderDocList();
|
||||
syncTitleField();
|
||||
|
||||
function bindTitleUI(): void {
|
||||
const titleField = $<HTMLInputElement>("#doc-title");
|
||||
titleField.addEventListener("change", () => {
|
||||
const doc = activeDoc();
|
||||
|
|
@ -834,7 +828,9 @@ async function initUI(): Promise<void> {
|
|||
titleField.addEventListener("keydown", (e) => {
|
||||
if (e.key === "Enter" || e.key === "Escape") titleField.blur();
|
||||
});
|
||||
}
|
||||
|
||||
function bindMiscUI(): void {
|
||||
$("#total-line").addEventListener("click", () => {
|
||||
const v = $("#total-line").dataset.value;
|
||||
if (v) {
|
||||
|
|
@ -845,6 +841,10 @@ async function initUI(): Promise<void> {
|
|||
|
||||
$("#open-search").addEventListener("click", () => search.open());
|
||||
|
||||
window.addEventListener("focus", () => { lastWindowFocusAt = performance.now(); });
|
||||
}
|
||||
|
||||
async function bindWindowControls(): Promise<void> {
|
||||
if (isTauri()) {
|
||||
const { getCurrentWindow } = await import("@tauri-apps/api/window");
|
||||
const win = getCurrentWindow();
|
||||
|
|
@ -853,7 +853,9 @@ async function initUI(): Promise<void> {
|
|||
} else {
|
||||
$("#win-controls").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function bindSidebarUI(): void {
|
||||
$("#toggle-sidebar").addEventListener("click", () => {
|
||||
settings.sidebarVisible = !settings.sidebarVisible;
|
||||
$("#sidebar").classList.toggle("hidden", !settings.sidebarVisible);
|
||||
|
|
@ -873,7 +875,9 @@ async function initUI(): Promise<void> {
|
|||
$("#sidebar").classList.add("hidden");
|
||||
void saveSettings(settings);
|
||||
});
|
||||
}
|
||||
|
||||
function bindDividerUI(): void {
|
||||
const divider = $("#col-divider");
|
||||
const wrap = $("#editor-wrap");
|
||||
divider.addEventListener("mousedown", (e) => {
|
||||
|
|
@ -897,9 +901,9 @@ async function initUI(): Promise<void> {
|
|||
window.addEventListener("mousemove", onMove);
|
||||
window.addEventListener("mouseup", onUp);
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener("focus", () => { lastWindowFocusAt = performance.now(); });
|
||||
|
||||
function bindKeyboardShortcuts(): void {
|
||||
document.addEventListener("keydown", (e) => {
|
||||
if (e.ctrlKey && !e.shiftKey && e.key.toLowerCase() === "n") {
|
||||
e.preventDefault();
|
||||
|
|
@ -923,8 +927,9 @@ async function initUI(): Promise<void> {
|
|||
toast(t("copied"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// export button + dropdown
|
||||
function bindExportUI(): void {
|
||||
const exportBtn = $("#export-btn");
|
||||
const exportMenu = $("#export-menu");
|
||||
exportBtn.addEventListener("click", (e) => {
|
||||
|
|
@ -964,12 +969,16 @@ async function initUI(): Promise<void> {
|
|||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function bindRatesAndMarketUI(): void {
|
||||
$("#rates-info").addEventListener("click", () => void refreshRates(true));
|
||||
$("#market-info").addEventListener("click", () => void refreshMarket(true));
|
||||
setInterval(renderRatesInfo, 60_000);
|
||||
setInterval(renderMarketInfo, 60_000);
|
||||
}
|
||||
|
||||
async function bindLifecycle(): Promise<void> {
|
||||
void onFileDrop((content) => newDoc(content));
|
||||
|
||||
if (!(await registerHotkey(null, settings.hotkey))) toast(t("hotkeyFailed"));
|
||||
|
|
@ -1004,6 +1013,24 @@ async function initUI(): Promise<void> {
|
|||
setInterval(() => { if (settings.autoUpdateEnabled) void checkUpdate(); }, 6 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
async function initUI(): Promise<void> {
|
||||
|
||||
applySettings(); // sets the language before bindSettingsUI renders dynamic labels
|
||||
bindSettingsUI();
|
||||
renderDocList();
|
||||
syncTitleField();
|
||||
|
||||
bindTitleUI();
|
||||
bindMiscUI();
|
||||
await bindWindowControls();
|
||||
bindSidebarUI();
|
||||
bindDividerUI();
|
||||
bindKeyboardShortcuts();
|
||||
bindExportUI();
|
||||
bindRatesAndMarketUI();
|
||||
await bindLifecycle();
|
||||
}
|
||||
|
||||
async function boot(): Promise<void> {
|
||||
await initSettings();
|
||||
await initDataAndEngine();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue