Jacob Schmidt 603963c935 Refactor bank UI to bridge-driven single-page flow
- Replace separate bank/ATM pages with a unified `index.html` app bundle
- Split bank init into `initClass`, `initSessionService`, and `initUIBridge`
- Route UI events through `BankUIBridge` and refresh session payloads after sync
2026-03-14 12:11:34 -05:00

105 lines
4.3 KiB
JavaScript

(function () {
const BankApp = (window.BankApp = window.BankApp || {});
const { h } = BankApp.runtime;
const WindowTitleBar = window.SharedUI.componentFns.WindowTitleBar;
const store = BankApp.store;
const actions = BankApp.actions;
BankApp.componentFns = BankApp.componentFns || {};
BankApp.componentFns.NoticeLayer = function NoticeLayer() {
const notice = store.getNotice();
if (!notice.text) {
return null;
}
return h(
"div",
{ className: "bank-notice-stack" },
h(
"div",
{
className:
notice.type === "error"
? "bank-notice is-error"
: "bank-notice is-success",
},
notice.text,
),
);
};
BankApp.components = BankApp.components || {};
BankApp.components.App = function App() {
const mode = store.getMode();
return h(
"div",
{ className: mode === "atm" ? "bank-shell is-atm" : "bank-shell" },
mode === "atm"
? null
: WindowTitleBar({
kicker: "FORGE Finance",
title: "Global Banking Network",
onClose: () => actions.closeBank(),
closeLabel: "Close banking interface",
}),
h("div", { id: "bank-notice-root" }),
mode === "atm"
? h("div", { id: "bank-atm-root" })
: [
h(
"div",
{
className: "bank-scroll-shell",
"data-preserve-scroll-id": "bank-page-scroll",
},
[
h(
"div",
{ className: "bank-layout" },
h("div", { id: "bank-sidebar-root" }),
h(
"main",
{ className: "bank-main" },
h(
"div",
{ className: "bank-page" },
h("div", {
id: "bank-page-header-root",
}),
h(
"p",
{ className: "bank-page-copy" },
"Manage deposits, withdrawals, transfers, and earnings sweeps from the same shared financial console.",
),
h("div", {
className: "bank-page-divider",
}),
h(
"div",
{ className: "bank-page-body" },
h("div", {
id: "bank-summary-section-root",
}),
h("div", {
id: "bank-action-sections-root",
}),
h("div", {
id: "bank-support-section-root",
}),
h("div", {
id: "bank-history-section-root",
}),
),
),
),
),
h("div", { id: "bank-footer-root" }),
],
),
],
);
};
})();