From 603963c9356dae4fe5886cab5d5a5351e6457086 Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Sat, 14 Mar 2026 12:11:34 -0500 Subject: [PATCH] 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 --- arma/client/addons/bank/XEH_PREP.hpp | 4 +- .../client/addons/bank/XEH_postInitClient.sqf | 10 +- arma/client/addons/bank/config.cpp | 1 + .../bank/functions/fnc_handleUIEvents.sqf | 109 +- .../bank/functions/fnc_initBankClass.sqf | 69 - .../addons/bank/functions/fnc_initClass.sqf | 62 + .../bank/functions/fnc_initSessionService.sqf | 80 + .../bank/functions/fnc_initUIBridge.sqf | 134 ++ .../addons/bank/functions/fnc_openUI.sqf | 10 +- arma/client/addons/bank/ui/_site/atm.css | 192 -- arma/client/addons/bank/ui/_site/atm.html | 45 - arma/client/addons/bank/ui/_site/atm.js | 490 ----- arma/client/addons/bank/ui/_site/bank-ui.css | 591 ++++++ arma/client/addons/bank/ui/_site/bank-ui.js | 1650 +++++++++++++++++ arma/client/addons/bank/ui/_site/bank.css | 444 ----- arma/client/addons/bank/ui/_site/bank.html | 45 - arma/client/addons/bank/ui/_site/bank.js | 575 ------ arma/client/addons/bank/ui/_site/index.html | 64 + .../addons/bank/ui/_site/public/fdic.png | Bin 1051164 -> 0 bytes .../addons/bank/ui/_site/public/fdic_co.paa | Bin 75410 -> 0 bytes .../addons/bank/ui/_site/public/fms.png | Bin 67744 -> 0 bytes .../addons/bank/ui/_site/public/fms_co.paa | Bin 60684 -> 0 bytes .../addons/bank/ui/_site/public/gms.png | Bin 111440 -> 0 bytes .../addons/bank/ui/_site/public/gms_co.paa | Bin 75595 -> 0 bytes arma/client/addons/bank/ui/_site/store.js | 305 --- arma/client/addons/bank/ui/src/bootstrap.js | 116 ++ arma/client/addons/bank/ui/src/bridge.js | 51 + .../addons/bank/ui/src/components/AppShell.js | 104 ++ .../bank/ui/src/components/BankSidebar.js | 91 + .../addons/bank/ui/src/components/Footer.js | 72 + .../addons/bank/ui/src/components/common.js | 189 ++ arma/client/addons/bank/ui/src/data.js | 44 + .../addons/bank/ui/src/pages/ATMView.js | 238 +++ .../addons/bank/ui/src/pages/BankView.js | 321 ++++ .../addons/bank/ui/src/registry/events.js | 343 ++++ .../addons/bank/ui/src/registry/store.js | 63 + arma/client/addons/bank/ui/src/runtime.js | 6 + arma/client/addons/bank/ui/src/styles.css | 590 ++++++ arma/client/addons/bank/ui/ui.config.mjs | 38 + .../addons/garage/ui/_site/garage-ui.css | 8 +- .../addons/garage/ui/_site/garage-ui.js | 76 +- .../garage/ui/src/components/AppShell.js | 76 +- arma/client/addons/garage/ui/src/styles.css | 8 +- arma/client/addons/org/ui/_site/org-ui.js | 4 +- .../addons/org/ui/src/components/AppShell.js | 4 +- arma/client/addons/store/ui/_site/store-ui.js | 74 +- .../store/ui/src/components/AppShell.js | 74 +- 47 files changed, 5089 insertions(+), 2381 deletions(-) delete mode 100644 arma/client/addons/bank/functions/fnc_initBankClass.sqf create mode 100644 arma/client/addons/bank/functions/fnc_initClass.sqf create mode 100644 arma/client/addons/bank/functions/fnc_initSessionService.sqf create mode 100644 arma/client/addons/bank/functions/fnc_initUIBridge.sqf delete mode 100644 arma/client/addons/bank/ui/_site/atm.css delete mode 100644 arma/client/addons/bank/ui/_site/atm.html delete mode 100644 arma/client/addons/bank/ui/_site/atm.js create mode 100644 arma/client/addons/bank/ui/_site/bank-ui.css create mode 100644 arma/client/addons/bank/ui/_site/bank-ui.js delete mode 100644 arma/client/addons/bank/ui/_site/bank.css delete mode 100644 arma/client/addons/bank/ui/_site/bank.html delete mode 100644 arma/client/addons/bank/ui/_site/bank.js create mode 100644 arma/client/addons/bank/ui/_site/index.html delete mode 100644 arma/client/addons/bank/ui/_site/public/fdic.png delete mode 100644 arma/client/addons/bank/ui/_site/public/fdic_co.paa delete mode 100644 arma/client/addons/bank/ui/_site/public/fms.png delete mode 100644 arma/client/addons/bank/ui/_site/public/fms_co.paa delete mode 100644 arma/client/addons/bank/ui/_site/public/gms.png delete mode 100644 arma/client/addons/bank/ui/_site/public/gms_co.paa delete mode 100644 arma/client/addons/bank/ui/_site/store.js create mode 100644 arma/client/addons/bank/ui/src/bootstrap.js create mode 100644 arma/client/addons/bank/ui/src/bridge.js create mode 100644 arma/client/addons/bank/ui/src/components/AppShell.js create mode 100644 arma/client/addons/bank/ui/src/components/BankSidebar.js create mode 100644 arma/client/addons/bank/ui/src/components/Footer.js create mode 100644 arma/client/addons/bank/ui/src/components/common.js create mode 100644 arma/client/addons/bank/ui/src/data.js create mode 100644 arma/client/addons/bank/ui/src/pages/ATMView.js create mode 100644 arma/client/addons/bank/ui/src/pages/BankView.js create mode 100644 arma/client/addons/bank/ui/src/registry/events.js create mode 100644 arma/client/addons/bank/ui/src/registry/store.js create mode 100644 arma/client/addons/bank/ui/src/runtime.js create mode 100644 arma/client/addons/bank/ui/src/styles.css create mode 100644 arma/client/addons/bank/ui/ui.config.mjs diff --git a/arma/client/addons/bank/XEH_PREP.hpp b/arma/client/addons/bank/XEH_PREP.hpp index c6ce19a..f1a55dc 100644 --- a/arma/client/addons/bank/XEH_PREP.hpp +++ b/arma/client/addons/bank/XEH_PREP.hpp @@ -1,3 +1,5 @@ PREP(handleUIEvents); -PREP(initBankClass); +PREP(initClass); +PREP(initSessionService); +PREP(initUIBridge); PREP(openUI); diff --git a/arma/client/addons/bank/XEH_postInitClient.sqf b/arma/client/addons/bank/XEH_postInitClient.sqf index 2c874f5..a4cf8d6 100644 --- a/arma/client/addons/bank/XEH_postInitClient.sqf +++ b/arma/client/addons/bank/XEH_postInitClient.sqf @@ -1,6 +1,8 @@ #include "script_component.hpp" -if (isNil QGVAR(BankClass)) then { call FUNC(initBankClass); }; +if (isNil QGVAR(BankClass)) then { call FUNC(initClass); }; +if (isNil QGVAR(BankSessionService)) then { call FUNC(initSessionService); }; +if (isNil QGVAR(BankUIBridge)) then { call FUNC(initUIBridge); }; [QGVAR(initBank), { GVAR(BankClass) call ["init", []]; @@ -10,12 +12,18 @@ if (isNil QGVAR(BankClass)) then { call FUNC(initBankClass); }; params [["_data", createHashMap, [createHashMap]]]; GVAR(BankClass) call ["sync", [_data, true]]; + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["refreshSession", []]; + }; }] call CFUNC(addEventHandler); [QGVAR(responseSyncBank), { params [["_data", createHashMap, [createHashMap]], ["_jip", false, [false]]]; GVAR(BankClass) call ["sync", [_data, _jip]]; + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["refreshSession", []]; + }; }] call CFUNC(addEventHandler); [{ diff --git a/arma/client/addons/bank/config.cpp b/arma/client/addons/bank/config.cpp index bce4c33..87ad980 100644 --- a/arma/client/addons/bank/config.cpp +++ b/arma/client/addons/bank/config.cpp @@ -8,6 +8,7 @@ class CfgPatches { name = COMPONENT_NAME; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { + "forge_client_common", "forge_client_main" }; units[] = {}; diff --git a/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf b/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf index c9472fd..b2fcd53 100644 --- a/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf +++ b/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf @@ -28,90 +28,49 @@ private _alert = fromJSON _message; private _event = _alert get "event"; private _data = _alert get "data"; -private _uid = GVAR(BankClass) get "uid"; -private _account = GVAR(BankClass) get "account"; -private _bank = _account get "bank"; -private _cash = _account get "cash"; -private _earnings = _account get "earnings"; -private _pin = _account get "pin"; -private _funds = EGVAR(org,OrgClass) get "funds"; - diag_log format ["[FORGE:Client:Bank] Handling UI event: %1 with data: %2", _event, _data]; switch (_event) do { - // ======================================================================== - // DATA REQUESTS - // ======================================================================== - case "bank::sync": { - private _players = SREG(bank,IndexRegistry); - private _accountData = createHashMapFromArray [ - ["uid", _uid], - ["bank", _bank], - ["cash", _cash], - ["earnings", _earnings], - ["org", _funds], - ["pin", _pin], - ["players", _players] - ]; - - _control ctrlWebBrowserAction ["ExecJS", format ["syncDataFromArma(%1)", toJSON _accountData]]; - }; - - // ======================================================================== - // BANK OPERATIONS - // ======================================================================== - case "bank::deposit": { - private _amount = _data get "amount"; - if (_amount > _cash) exitWith { hint "Insufficient cash!"; }; - - [SRPC(bank,requestDeposit), [_uid, _amount]] call CFUNC(serverEvent); - }; - case "bank::withdraw": { - private _amount = _data get "amount"; - if (_amount > _bank) exitWith { hint "Insufficient funds!"; }; - - [SRPC(bank,requestWithdraw), [_uid, _amount]] call CFUNC(serverEvent); - }; - case "bank::transfer": { - private _amount = _data get "amount"; - private _from = _data get "from"; - private _target = _data get "target"; - - if (_target isEqualTo _uid) exitWith { - hint "Cannot transfer to yourself!"; - diag_log "[FORGE:Client:Bank] Attempted self-transfer blocked"; + case "bank::close": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleClose", []]; }; - private _fromAmount = _account get _from; - if (_amount > _fromAmount) exitWith { hint "Insufficient funds!"; }; - - [SRPC(bank,requestTransfer), [_uid, _target, _from, _amount]] call CFUNC(serverEvent); + closeDialog 1; }; - case "bank::depositEarnings": { - private _amount = _data get "amount"; - if (_amount > _earnings) exitWith { hint "Insufficient earnings!"; }; - - [SRPC(bank,requestDepositEarnings), [_uid, _amount]] call CFUNC(serverEvent); + case "bank::ready": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleReady", [_control, _data]]; + }; }; - case "bank::close": { closeDialog 1; }; - - // ======================================================================== - // ATM OPERATIONS - // ======================================================================== - case "atm::withdraw": { - private _amount = _data get "amount"; - if (_amount > _bank) exitWith { hint "Insufficient funds!"; }; - - [SRPC(bank,requestWithdraw), [_uid, _amount]] call CFUNC(serverEvent); + case "bank::refresh": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["refreshSession", []]; + }; }; - case "atm::deposit": { - private _amount = _data get "amount"; - if (_amount > _cash) exitWith { hint "Insufficient cash!"; }; - - [SRPC(bank,requestDeposit), [_uid, _amount]] call CFUNC(serverEvent); + case "bank::deposit::request": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleDepositRequest", [_data]]; + }; + }; + case "bank::withdraw::request": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleWithdrawRequest", [_data]]; + }; + }; + case "bank::transfer::request": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleTransferRequest", [_data]]; + }; + }; + case "bank::depositEarnings::request": { + if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["handleDepositEarningsRequest", [_data]]; + }; + }; + default { + hint format ["Unhandled bank UI event: %1", _event]; }; - case "atm::close": { closeDialog 1; }; - default { diag_log format ["[FORGE:Client:Bank] Unhandled UI event: %1", _event]; }; }; true; diff --git a/arma/client/addons/bank/functions/fnc_initBankClass.sqf b/arma/client/addons/bank/functions/fnc_initBankClass.sqf deleted file mode 100644 index bf7b8e4..0000000 --- a/arma/client/addons/bank/functions/fnc_initBankClass.sqf +++ /dev/null @@ -1,69 +0,0 @@ -#include "..\script_component.hpp" - -/* - * File: fnc_initBankClass.sqf - * Author: IDSolutions - * Date: 2025-12-16 - * Last Update: 2026-02-13 - * Public: No - * - * Description: - * Initializes the bank class. - * - * Arguments: - * None - * - * Return Value: - * Bank class object [HASHMAP OBJECT] - * - * Example: - * call forge_client_bank_fnc_initBankClass - */ - -#pragma hemtt ignore_variables ["_self"] -GVAR(BankBaseClass) = compileFinal createHashMapFromArray [ - ["#type", "BankBaseClass"], - ["#create", compileFinal { - _self set ["uid", getPlayerUID player]; - _self set ["account", createHashMap]; - _self set ["isLoaded", false]; - _self set ["lastSave", time]; - }], - ["init", compileFinal { - private _uid = _self get "uid"; - - [SRPC(bank,requestInitBank), [_uid]] call CFUNC(serverEvent); - - systemChat format ["Bank loaded for %1", (name player)]; - diag_log "[FORGE:Client:Bank] Bank Class Initialized!"; - }], - ["save", compileFinal { - params [["_sync", false, [false]]]; - - private _uid = _self get "uid"; - [SRPC(bank,requestSaveBank), [_uid, _sync]] call CFUNC(serverEvent); - - _self set ["lastSave", time]; - }], - ["sync", compileFinal { - params [["_data", createHashMap, [createHashMap]], ["_jip", false, [false]]]; - - private _account = _self get "account"; - private _isLoaded = _self get "isLoaded"; - - { _account set [_x, _y]; } forEach _data; - _self set ["account", _account]; - - if !(_isLoaded) then { _self set ["isLoaded", true]; }; - diag_log "[FORGE:Client:Bank] Sync completed"; - }], - ["get", compileFinal { - params [["_key", "", [""]], ["_default", nil, [[], "", 0, false, createHashMap]]]; - - private _account = _self get "account"; - _account getOrDefault [_key, _default]; - }] -]; - -GVAR(BankClass) = createHashMapObject [GVAR(BankBaseClass)]; -GVAR(BankClass) diff --git a/arma/client/addons/bank/functions/fnc_initClass.sqf b/arma/client/addons/bank/functions/fnc_initClass.sqf new file mode 100644 index 0000000..ede4cc8 --- /dev/null +++ b/arma/client/addons/bank/functions/fnc_initClass.sqf @@ -0,0 +1,62 @@ +#include "..\script_component.hpp" + +/* + * File: fnc_initClass.sqf + * Author: IDSolutions + * Public: No + * + * Description: + * Initializes the bank class for account sync and access helpers. + */ + +#pragma hemtt ignore_variables ["_self"] +GVAR(BankBaseClass) = compileFinal createHashMapFromArray [ + ["#type", "BankBaseClass"], + ["#create", compileFinal { + _self set ["uid", getPlayerUID player]; + _self set ["account", createHashMapFromArray [ + ["bank", 0], + ["cash", 0], + ["earnings", 0], + ["pin", 1234], + ["transactions", []] + ]]; + _self set ["isLoaded", false]; + _self set ["lastSave", time]; + }], + ["getAccountState", compileFinal { + _self getOrDefault ["account", createHashMap] + }], + ["get", compileFinal { + params [["_key", "", [""]], ["_default", nil, [[], "", 0, false, createHashMap]]]; + + private _account = _self getOrDefault ["account", createHashMap]; + _account getOrDefault [_key, _default] + }], + ["init", compileFinal { + [SRPC(bank,requestInitBank), [getPlayerUID player]] call CFUNC(serverEvent); + _self set ["lastSave", time]; + }], + ["save", compileFinal { + [SRPC(bank,requestSaveBank), [getPlayerUID player]] call CFUNC(serverEvent); + _self set ["lastSave", time]; + }], + ["sync", compileFinal { + params [["_data", createHashMap, [createHashMap]], ["_jip", false, [false]]]; + + private _account = _self getOrDefault ["account", createHashMap]; + { + _account set [_x, _y]; + } forEach _data; + + _self set ["account", _account]; + if !(_self getOrDefault ["isLoaded", false]) then { + _self set ["isLoaded", true]; + }; + + true + }] +]; + +GVAR(BankClass) = createHashMapObject [GVAR(BankBaseClass)]; +GVAR(BankClass) diff --git a/arma/client/addons/bank/functions/fnc_initSessionService.sqf b/arma/client/addons/bank/functions/fnc_initSessionService.sqf new file mode 100644 index 0000000..155652b --- /dev/null +++ b/arma/client/addons/bank/functions/fnc_initSessionService.sqf @@ -0,0 +1,80 @@ +#include "..\script_component.hpp" + +/* + * File: fnc_initSessionService.sqf + * Author: IDSolutions + * Public: No + * + * Description: + * Initializes the bank session service that shapes the browser payload. + */ + +#pragma hemtt ignore_variables ["_self"] +GVAR(BankSessionServiceBaseClass) = compileFinal createHashMapFromArray [ + ["#type", "BankSessionServiceBaseClass"], + ["buildTransferTargets", compileFinal { + private _targets = []; + + { + if (isNull _x || { _x isEqualTo player }) then { + continue; + }; + + private _uid = getPlayerUID _x; + private _name = name _x; + if (_uid isEqualTo "" || { _name isEqualTo "" }) then { + continue; + }; + + _targets pushBack (createHashMapFromArray [ + ["name", _name], + ["uid", _uid] + ]); + } forEach allPlayers; + + private _targetPairs = _targets apply { + [toLowerANSI (_x getOrDefault ["name", ""]), _x] + }; + _targetPairs sort true; + _targetPairs apply { + _x param [1, createHashMap] + } + }], + ["buildPayload", compileFinal { + params [["_mode", "bank", [""]]]; + + private _account = if (isNil QGVAR(BankClass)) then { + createHashMap + } else { + GVAR(BankClass) call ["getAccountState", []] + }; + + private _orgFunds = 0; + private _orgName = ""; + if !(isNil QEGVAR(org,OrgClass)) then { + _orgFunds = EGVAR(org,OrgClass) call ["get", ["funds", 0]]; + _orgName = EGVAR(org,OrgClass) call ["get", ["name", ""]]; + }; + + createHashMapFromArray [ + ["session", createHashMapFromArray [ + ["mode", ["bank", "atm"] select (toLowerANSI _mode isEqualTo "atm")], + ["orgFunds", _orgFunds], + ["orgName", _orgName], + ["playerName", name player], + ["transferTargets", _self call ["buildTransferTargets", []]], + ["uid", getPlayerUID player] + ]], + ["account", createHashMapFromArray [ + ["bank", _account getOrDefault ["bank", 0]], + ["cash", _account getOrDefault ["cash", 0]], + ["earnings", _account getOrDefault ["earnings", 0]], + ["pin", str (_account getOrDefault ["pin", 1234])], + ["transactions", _account getOrDefault ["transactions", []]] + ]] + ] + }] +]; + +GVAR(BankSessionService) = createHashMapObject [GVAR(BankSessionServiceBaseClass)]; +GVAR(BankSessionService) diff --git a/arma/client/addons/bank/functions/fnc_initUIBridge.sqf b/arma/client/addons/bank/functions/fnc_initUIBridge.sqf new file mode 100644 index 0000000..32e1b0b --- /dev/null +++ b/arma/client/addons/bank/functions/fnc_initUIBridge.sqf @@ -0,0 +1,134 @@ +#include "..\script_component.hpp" + +/* + * File: fnc_initUIBridge.sqf + * Author: IDSolutions + * Public: No + * + * Description: + * Initializes the bank web UI bridge. + */ + +#pragma hemtt ignore_variables ["_self"] +private _webUIDeclarations = call EFUNC(common,initWebUIBridge); +private _webUIBridgeDeclaration = _webUIDeclarations get "bridgeDeclaration"; + +GVAR(BankUIBridgeBaseClass) = compileFinal createHashMapFromArray [ + ["#base", _webUIBridgeDeclaration], + ["#type", "BankUIBridgeBaseClass"], + ["#create", compileFinal { + _self set ["mode", "bank"]; + }], + ["buildPayload", compileFinal { + GVAR(BankSessionService) call ["buildPayload", [_self call ["getMode", []]]] + }], + ["getActiveBrowserControl", compileFinal { + private _display = uiNamespace getVariable ["RscBank", displayNull]; + if (isNull _display) exitWith { + _self call ["setActiveBrowserControl", [controlNull]]; + controlNull + }; + + private _control = _display displayCtrl 1002; + _self call ["setActiveBrowserControl", [_control]]; + _control + }], + ["getMode", compileFinal { + _self getOrDefault ["mode", "bank"] + }], + ["handleDepositEarningsRequest", compileFinal { + params [["_data", createHashMap, [createHashMap]]]; + + private _amount = floor (_data getOrDefault ["amount", 0]); + if (_amount <= 0) exitWith { + _self call ["sendNotice", ["error", "No earnings are available to deposit."]]; + }; + + [SRPC(bank,requestDepositEarnings), [getPlayerUID player, _amount]] call CFUNC(serverEvent); + true + }], + ["handleDepositRequest", compileFinal { + params [["_data", createHashMap, [createHashMap]]]; + + private _amount = floor (_data getOrDefault ["amount", 0]); + if (_amount <= 0) exitWith { + _self call ["sendNotice", ["error", "Enter a valid deposit amount."]]; + }; + + [SRPC(bank,requestDeposit), [getPlayerUID player, _amount]] call CFUNC(serverEvent); + true + }], + ["handleReady", compileFinal { + params [["_control", controlNull, [controlNull]], ["_data", createHashMap, [createHashMap]]]; + + private _screen = _self call ["getScreen", []]; + _screen call ["setControl", [_control]]; + _screen call ["markReady", [true]]; + + _self call ["flushPendingEvents", []]; + _self call ["sendEvent", ["bank::hydrate", _self call ["buildPayload", []], _control]]; + }], + ["handleTransferRequest", compileFinal { + params [["_data", createHashMap, [createHashMap]]]; + + private _amount = floor (_data getOrDefault ["amount", 0]); + private _target = _data getOrDefault ["target", ""]; + private _from = toLowerANSI (_data getOrDefault ["from", "bank"]); + + if (_target isEqualTo "") exitWith { + _self call ["sendNotice", ["error", "Select a transfer recipient."]]; + }; + + if (_target isEqualTo getPlayerUID player) exitWith { + _self call ["sendNotice", ["error", "You cannot transfer funds to yourself."]]; + }; + + if (_amount <= 0) exitWith { + _self call ["sendNotice", ["error", "Enter a valid transfer amount."]]; + }; + + [SRPC(bank,requestTransfer), [getPlayerUID player, _target, _from, _amount]] call CFUNC(serverEvent); + true + }], + ["handleWithdrawRequest", compileFinal { + params [["_data", createHashMap, [createHashMap]]]; + + private _amount = floor (_data getOrDefault ["amount", 0]); + if (_amount <= 0) exitWith { + _self call ["sendNotice", ["error", "Enter a valid withdrawal amount."]]; + }; + + [SRPC(bank,requestWithdraw), [getPlayerUID player, _amount]] call CFUNC(serverEvent); + true + }], + ["refreshSession", compileFinal { + private _control = _self call ["getActiveBrowserControl", []]; + if (isNull _control) exitWith { false }; + + _self call ["sendEvent", ["bank::sync", _self call ["buildPayload", []], _control]] + }], + ["sendNotice", compileFinal { + params [["_type", "error", [""]], ["_message", "", [""]], ["_control", controlNull, [controlNull]]]; + + if (_message isEqualTo "") exitWith { false }; + + _self call ["sendEvent", ["bank::notice", createHashMapFromArray [ + ["message", _message], + ["type", _type] + ], _control]] + }], + ["setMode", compileFinal { + params [["_mode", "bank", [""]]]; + + private _finalMode = toLowerANSI _mode; + if !(_finalMode in ["bank", "atm"]) then { + _finalMode = "bank"; + }; + + _self set ["mode", _finalMode]; + _finalMode + }] +]; + +GVAR(BankUIBridge) = createHashMapObject [GVAR(BankUIBridgeBaseClass)]; +GVAR(BankUIBridge) diff --git a/arma/client/addons/bank/functions/fnc_openUI.sqf b/arma/client/addons/bank/functions/fnc_openUI.sqf index bfce578..9a82824 100644 --- a/arma/client/addons/bank/functions/fnc_openUI.sqf +++ b/arma/client/addons/bank/functions/fnc_openUI.sqf @@ -31,11 +31,11 @@ _ctrl ctrlAddEventHandler ["JSDialog", { [_control, _isConfirmDialog, _message] call FUNC(handleUIEvents); }]; -if (_isATM) then { - _ctrl ctrlWebBrowserAction ["LoadFile", QPATHTOF2(ui\_site\atm.html)]; -} else { - _ctrl ctrlWebBrowserAction ["LoadFile", QPATHTOF2(ui\_site\bank.html)]; +if !(isNil QGVAR(BankUIBridge)) then { + GVAR(BankUIBridge) call ["setMode", [["bank", "atm"] select _isATM]]; + GVAR(BankUIBridge) call ["setActiveBrowserControl", [_ctrl]]; }; -// _ctrl ctrlWebBrowserAction ["OpenDevConsole"]; + +_ctrl ctrlWebBrowserAction ["LoadFile", QPATHTOF2(ui\_site\index.html)]; true; diff --git a/arma/client/addons/bank/ui/_site/atm.css b/arma/client/addons/bank/ui/_site/atm.css deleted file mode 100644 index 06e429c..0000000 --- a/arma/client/addons/bank/ui/_site/atm.css +++ /dev/null @@ -1,192 +0,0 @@ -:root { - --bg-app: #fdfcf8; - --bg-surface: #ffffff; - --bg-surface-hover: #f1f5f9; - --primary: #475569; - --primary-hover: #1e293b; - --text-main: #1f2937; - --text-muted: #64748b; - --text-inverse: #f8fafc; - --border: #e2e8f0; - --radius: 8px; - --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --footer-bg: #1e293b; -} - -body { - font-family: - "Inter", - system-ui, - -apple-system, - sans-serif; - margin: 0; - padding: 0; - background: transparent; - color: var(--text-main); - line-height: 1.6; -} - -#app { - min-height: 100vh; -} - -main { - display: flex; - flex-direction: column; - min-height: 100vh; - padding: 3rem 0; - box-sizing: border-box; -} - -.container { - max-width: 800px; - width: 100%; - background: #f1f5f9; - margin: 0 auto; - padding: 2rem; - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - box-sizing: border-box; -} - -/* Header */ -.header { - text-align: center; - margin-bottom: 3rem; - padding-bottom: 2rem; - border-bottom: 1px solid var(--border); - - h1 { - font-size: 2.5rem; - font-weight: 700; - margin-bottom: 0.5rem; - letter-spacing: -0.025em; - color: var(--primary-hover); - } - - p { - color: var(--text-muted); - font-size: 1.1rem; - margin: 0; - } -} - -/* Cards */ -.card { - background: var(--bg-surface); - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 2rem; - margin-bottom: 2rem; - box-shadow: var(--shadow); - text-align: center; - - h2 { - margin-top: 0; - font-size: 1.8rem; - color: var(--primary-hover); - } -} - -/* PIN Display */ -.pin-display { - font-size: 2.5rem; - letter-spacing: 0.5rem; - text-align: center; - margin-bottom: 2rem; - font-family: monospace; - color: var(--primary); -} - -/* Numpad */ -.numpad { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - max-width: 300px; - margin: 0 auto; - - button { - padding: 1.5rem; - font-size: 1.5rem; - background: var(--bg-surface); - color: var(--text-main); - border: 1px solid var(--border); - box-shadow: var(--shadow); - margin: 0; - - &:hover { - background: var(--primary); - color: white; - border-color: var(--primary); - } - } -} - -/* Kiosk Content */ -.kiosk-content { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; -} - -/* Kiosk Grid */ -.kiosk-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 1.5rem; - margin-top: 2rem; - width: 100%; - max-width: 600px; -} - -/* Kiosk Menu Stack */ -.kiosk-menu-stack { - display: flex; - flex-direction: column; - gap: 1.5rem; - margin-top: 2rem; - width: 100%; - max-width: 600px; -} - -/* Kiosk Button */ -.kiosk-btn { - padding: 2rem; - font-size: 1.25rem; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 0.5rem; - height: 100%; - min-height: 120px; - margin: 0; -} - -/* Buttons */ -button { - background: var(--primary); - color: white; - border: none; - padding: 0.75rem 1.5rem; - border-radius: var(--radius); - cursor: pointer; - font-size: 1rem; - font-weight: 500; - font-family: inherit; - transition: all 0.2s ease; - - &:hover { - background: var(--primary-hover); - transform: translateY(-1px); - box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); - } - - & + & { - margin-left: 1rem; - } -} diff --git a/arma/client/addons/bank/ui/_site/atm.html b/arma/client/addons/bank/ui/_site/atm.html deleted file mode 100644 index 19c28f5..0000000 --- a/arma/client/addons/bank/ui/_site/atm.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - ATM - - - - - - -
- - - - diff --git a/arma/client/addons/bank/ui/_site/atm.js b/arma/client/addons/bank/ui/_site/atm.js deleted file mode 100644 index b5632dc..0000000 --- a/arma/client/addons/bank/ui/_site/atm.js +++ /dev/null @@ -1,490 +0,0 @@ -/** - * ATM App - Vanilla JS Kiosk Implementation - */ - -//============================================================================= -// #region LIBRARY - DOM Helper -//============================================================================= - -function h(tag, props = {}, ...children) { - const el = document.createElement(tag); - if (props) { - Object.entries(props).forEach(([key, value]) => { - if (key.startsWith("on") && typeof value === "function") { - el.addEventListener(key.substring(2).toLowerCase(), value); - } else if (key === "className") { - el.className = value; - } else if (key === "style" && typeof value === "object") { - Object.assign(el.style, value); - } else { - el.setAttribute(key, value); - } - }); - } - children.forEach((child) => { - if (typeof child === "string" || typeof child === "number") { - el.appendChild(document.createTextNode(child)); - } else if (child instanceof Node) { - el.appendChild(child); - } else if (Array.isArray(child)) { - child.forEach((c) => { - if (c instanceof Node) el.appendChild(c); - }); - } - }); - return el; -} - -let _rootContainer = null; -let _rootComponent = null; - -function render(component, container) { - _rootContainer = container; - _rootComponent = component; - _render(); -} - -function _render() { - if (_rootContainer && _rootComponent) { - _rootContainer.innerHTML = ""; - _rootContainer.appendChild(_rootComponent()); - } -} - -const createSignal = (initialValue) => { - let _val = initialValue; - const getValue = () => _val; - const setValue = (newValue) => { - _val = typeof newValue === "function" ? newValue(_val) : newValue; - _render(); - }; - return [getValue, setValue]; -}; - -//============================================================================= -// #region STATE -//============================================================================= - -const [getView, setView] = createSignal("pin"); // 'pin', 'menu', 'withdraw', 'custom_withdraw', 'balance' -const [getPin, setPin] = createSignal(""); -const [getCustomAmount, setCustomAmount] = createSignal(""); -const [getMessage, setMessage] = createSignal(""); - -//============================================================================= -// #region UI COMPONENTS -//============================================================================= - -function Header() { - return h( - "div", - { className: "header", style: { marginBottom: "2rem" } }, - h("h1", null, "ATM TERMINAL"), - h("p", null, "Global Financial Network"), - ); -} - -function PinView() { - const currentPin = getPin(); - - const handleNumClick = (num) => { - if (currentPin.length < 4) { - setPin((prev) => prev + num); - } - }; - - const handleClear = () => setPin(""); - - const handleEnter = () => { - if (currentPin.length === 4) { - const state = - typeof store !== "undefined" - ? store.getState() - : { pin: "1234" }; - if (currentPin === state.pin) { - setView("menu"); - } else { - setMessage("Incorrect PIN"); - setPin(""); - setTimeout(() => setMessage(""), 2000); - } - } else { - setMessage("Invalid PIN Length"); - setTimeout(() => setMessage(""), 2000); - } - }; - - return h( - "div", - { className: "card", style: { padding: "3rem 2rem" } }, - h("h2", null, "Enter Security PIN"), - h( - "div", - { className: "pin-display" }, - currentPin.replace(/./g, String.fromCharCode(8226)) || "----", - ), - h( - "p", - { - style: { - color: "#ef4444", - height: "1.5rem", - textAlign: "center", - }, - }, - getMessage(), - ), - h( - "div", - { className: "numpad" }, - ["1", "2", "3", "4", "5", "6", "7", "8", "9"].map((num) => - h("button", { onClick: () => handleNumClick(num) }, num), - ), - h( - "button", - { - style: { background: "#ef4444", color: "white" }, - onClick: handleClear, - }, - "C", - ), - h("button", { onClick: () => handleNumClick("0") }, "0"), - h( - "button", - { - style: { background: "#10b981", color: "white" }, - onClick: handleEnter, - }, - String.fromCharCode(8629), - ), - ), - ); -} - -function MenuView() { - return h( - "div", - { className: "kiosk-content" }, - h( - "h2", - { style: { textAlign: "center", marginBottom: "1rem" } }, - "Select Transaction", - ), - h( - "div", - { className: "kiosk-menu-stack" }, - h( - "button", - { className: "kiosk-btn", onClick: () => setView("withdraw") }, - "Withdraw Cash", - ), - h( - "button", - { className: "kiosk-btn", onClick: () => setView("balance") }, - "Check Balance", - ), - h( - "button", - { - className: "kiosk-btn", - style: { - background: "var(--bg-surface)", - color: "var(--text-main)", - border: "1px solid var(--border)", - }, - onClick: () => { - setPin(""); - setView("pin"); - sendEvent("atm::close", {}); - }, - }, - "Cancel Transaction", - ), - ), - ); -} - -function WithdrawView() { - const state = - typeof store !== "undefined" - ? store.getState() - : { accounts: { bank: 0 } }; - const bankBalance = state.accounts?.bank || 0; - - const handleWithdraw = (amount) => { - if (bankBalance >= amount) { - if (typeof store !== "undefined") { - store.dispatch(withdraw(amount)); - } - sendEvent("atm::withdraw", { amount }); - setMessage(`Please take your cash: $${amount.toLocaleString()}`); - setTimeout(() => { - setMessage(""); - setView("menu"); - }, 3000); - } else { - setMessage("Insufficient Funds"); - setTimeout(() => setMessage(""), 2000); - } - }; - - if (getMessage()) { - return h( - "div", - { - className: "card", - style: { padding: "4rem", textAlign: "center" }, - }, - h("h2", { style: { color: "var(--primary)" } }, getMessage()), - ); - } - - return h( - "div", - { className: "kiosk-content" }, - h( - "h2", - { style: { textAlign: "center", marginBottom: "1rem" } }, - "Select Amount", - ), - h( - "div", - { className: "kiosk-grid" }, - h( - "button", - { className: "kiosk-btn", onClick: () => handleWithdraw(20) }, - "$20", - ), - h( - "button", - { className: "kiosk-btn", onClick: () => handleWithdraw(50) }, - "$50", - ), - h( - "button", - { className: "kiosk-btn", onClick: () => handleWithdraw(100) }, - "$100", - ), - h( - "button", - { - className: "kiosk-btn", - onClick: () => { - setCustomAmount(""); - setView("custom_withdraw"); - }, - }, - "Other Amount", - ), - h( - "button", - { - className: "kiosk-btn", - style: { - gridColumn: "span 2", - background: "var(--text-muted)", - }, - onClick: () => setView("menu"), - }, - "Cancel", - ), - ), - ); -} - -function CustomWithdrawView() { - const currentAmount = getCustomAmount(); - const state = - typeof store !== "undefined" - ? store.getState() - : { accounts: { bank: 0 } }; - const bankBalance = state.accounts?.bank || 0; - - const handleNumClick = (num) => { - if (currentAmount.length < 5) { - setCustomAmount((prev) => prev + num); - } - }; - - const handleClear = () => setCustomAmount(""); - - const handleEnter = () => { - const amount = parseInt(currentAmount, 10); - if (amount > 0) { - if (bankBalance >= amount) { - if (typeof store !== "undefined") { - store.dispatch(withdraw(amount)); - } - sendEvent("atm::withdraw", { amount }); - setMessage( - `Please take your cash: $${amount.toLocaleString()}`, - ); - setTimeout(() => { - setMessage(""); - setView("menu"); - }, 3000); - } else { - setMessage("Insufficient Funds"); - setTimeout(() => setMessage(""), 2000); - } - } else { - setMessage("Invalid Amount"); - setTimeout(() => setMessage(""), 2000); - } - }; - - if (getMessage()) { - return h( - "div", - { - className: "card", - style: { padding: "4rem", textAlign: "center" }, - }, - h("h2", { style: { color: "var(--primary)" } }, getMessage()), - ); - } - - return h( - "div", - { className: "card", style: { padding: "3rem 2rem" } }, - h("h2", null, "Enter Amount"), - h( - "div", - { className: "pin-display" }, - currentAmount ? `$${currentAmount}` : "$0", - ), - h( - "div", - { className: "numpad" }, - ["1", "2", "3", "4", "5", "6", "7", "8", "9"].map((num) => - h("button", { onClick: () => handleNumClick(num) }, num), - ), - h( - "button", - { - style: { background: "#ef4444", color: "white" }, - onClick: handleClear, - }, - "C", - ), - h("button", { onClick: () => handleNumClick("0") }, "0"), - h( - "button", - { - style: { background: "#10b981", color: "white" }, - onClick: handleEnter, - }, - String.fromCharCode(8629), - ), - ), - h( - "button", - { - style: { - width: "100%", - marginTop: "2rem", - padding: "1rem", - background: "var(--text-muted)", - }, - onClick: () => setView("withdraw"), - }, - "Cancel", - ), - ); -} - -function BalanceView() { - const state = - typeof store !== "undefined" - ? store.getState() - : { accounts: { bank: 0 } }; - const bankBalance = state.accounts?.bank || 0; - - return h( - "div", - { className: "card", style: { textAlign: "center", padding: "3rem" } }, - h("h2", { style: { color: "var(--text-muted)" } }, "Available Balance"), - h( - "div", - { - style: { - fontSize: "4rem", - fontWeight: "800", - margin: "2rem 0", - color: "var(--primary-hover)", - }, - }, - "$" + bankBalance.toLocaleString(), - ), - h( - "button", - { - className: "kiosk-btn", - style: { width: "100%", maxWidth: "300px", margin: "0 auto" }, - onClick: () => setView("menu"), - }, - "Return to Menu", - ), - ); -} - -function App() { - const view = getView(); - - let mainContent; - if (view === "pin") { - mainContent = PinView(); - } else if (view === "menu") { - mainContent = MenuView(); - } else if (view === "withdraw") { - mainContent = WithdrawView(); - } else if (view === "custom_withdraw") { - mainContent = CustomWithdrawView(); - } else if (view === "balance") { - mainContent = BalanceView(); - } - - return h( - "main", - null, - h("div", { className: "container" }, Header(), mainContent), - ); -} - -//============================================================================= -// #region ARMA 3 INTEGRATION -//============================================================================= - -function sendEvent(event, data) { - if (typeof A3API !== "undefined") { - A3API.SendAlert(JSON.stringify({ event, data })); - } else { - console.log("Event:", event, "Data:", data); - } -} - -//============================================================================= -// #region INITIALIZATION -//============================================================================= - -let initialized = false; - -function initATM() { - if (initialized) return; - - const root = document.getElementById("app"); - if (root) { - if (typeof store !== "undefined") { - store.subscribe(() => _render()); - } - - render(App, root); - initialized = true; - console.log("[ATM] Interface initialized"); - } -} - -if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initATM); -} else { - initATM(); -} diff --git a/arma/client/addons/bank/ui/_site/bank-ui.css b/arma/client/addons/bank/ui/_site/bank-ui.css new file mode 100644 index 0000000..e8d03f2 --- /dev/null +++ b/arma/client/addons/bank/ui/_site/bank-ui.css @@ -0,0 +1,591 @@ +/* Generated by tools/build-webui.mjs for Bank UI styles. Do not edit directly. */ +:root { + --bank-shell-bg: #f6f4ee; + --bank-surface: linear-gradient(180deg, #ffffff 0%, #f4f8fd 100%); + --bank-border: rgba(18, 54, 93, 0.12); + --bank-border-strong: rgba(18, 54, 93, 0.18); + --bank-text-main: #142f52; + --bank-text-muted: #6f86a3; + --bank-text-subtle: #8ea2bb; + --bank-accent: #275a8c; + --bank-accent-soft: #dfeaf9; + --bank-accent-line: rgba(39, 90, 140, 0.12); + --bank-shadow: 0 16px 30px rgba(18, 36, 57, 0.08); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body, +#app { + width: 100%; + height: 100%; + margin: 0; +} + +body { + overflow: hidden; + background: transparent; + color: var(--bank-text-main); + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; +} + +button, +input, +select { + font: inherit; +} + +.bank-shell { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + background: var(--bank-shell-bg); +} + +.bank-scroll-shell { + flex: 1; + min-height: 0; + overflow: auto; + display: flex; + flex-direction: column; +} + +.bank-layout { + min-height: 100%; + width: min(100%, 1600px); + margin: 0 auto; + display: grid; + grid-template-columns: 320px minmax(0, 1fr); + gap: 1.25rem; + padding: 1.25rem; + flex: 1 0 auto; +} + +.bank-sidebar, +.bank-main { + min-height: 0; + display: flex; + flex-direction: column; + gap: 1rem; +} + +.bank-main { + overflow: visible; +} + +.bank-module, +.bank-card, +.bank-atm-panel { + background: var(--bank-surface); + border: 1px solid var(--bank-border); + border-radius: 1.3rem; + box-shadow: var(--bank-shadow); +} + +.bank-module, +.bank-card, +.bank-atm-panel { + padding: 1rem; + display: flex; + flex-direction: column; +} + +.bank-module-header, +.bank-card-header, +.bank-section-header, +.bank-page-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 1rem; +} + +.bank-module-header, +.bank-card-header { + margin-bottom: 0.9rem; +} + +.bank-page { + display: grid; + gap: 1.35rem; + padding: 0.1rem 0 0; +} + +.bank-page-header { + padding-top: 0.4rem; +} + +.bank-page-copy { + margin: 0; + color: var(--bank-text-muted); + line-height: 1.5; + max-width: 48rem; +} + +.bank-page-divider { + border-top: 1px solid var(--bank-accent-line); +} + +.bank-page-body { + display: grid; + gap: 1.25rem; + padding-bottom: 1.25rem; +} + +.bank-page-section { + display: grid; + gap: 1rem; + padding: 1.15rem 1.2rem 1.25rem; + border: 1px solid var(--bank-border); + border-radius: 1.3rem; + background: rgba(255, 255, 255, 0.72); + box-shadow: none; +} + +.bank-title, +.bank-section-title { + margin: 0; + color: var(--bank-text-main); + letter-spacing: -0.02em; +} + +.bank-title { + font-size: 1.7rem; +} + +.bank-section-title { + font-size: 1.1rem; +} + +.bank-eyebrow, +.bank-footer-title, +.bank-stat-label { + display: block; + font-size: 0.68rem; + letter-spacing: 0.16em; + text-transform: uppercase; + font-weight: 700; + color: var(--bank-text-subtle); +} + +.bank-pill { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.48rem 0.8rem; + border-radius: 999px; + background: var(--bank-accent-soft); + color: var(--bank-accent); + font-size: 0.74rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + white-space: nowrap; +} + +.bank-summary-grid, +.bank-profile-stack { + display: grid; + gap: 0.8rem; +} + +.bank-summary-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.bank-stat-card, +.bank-metric-card { + min-width: 0; + display: flex; + flex-direction: column; + gap: 0.25rem; + padding: 0.9rem; + border-radius: 0.95rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.6); +} + +.bank-stat-card.is-accent, +.bank-metric-card.is-accent { + background: linear-gradient(180deg, #edf4fe 0%, #dfeaf9 100%); +} + +.bank-stat-card.is-success, +.bank-metric-card.is-success { + background: linear-gradient(180deg, #edf9f4 0%, #dff4ea 100%); +} + +.bank-stat-card.is-warning, +.bank-metric-card.is-warning { + background: linear-gradient(180deg, #fdf7ea 0%, #f7edd4 100%); +} + +.bank-stat-value, +.bank-metric-value { + min-width: 0; + color: var(--bank-text-main); + font-weight: 700; + overflow-wrap: anywhere; +} + +.bank-stat-value { + font-size: 1rem; +} + +.bank-metric-value { + font-size: 1.8rem; + letter-spacing: -0.03em; +} + +.bank-metric-copy, +.bank-card-copy, +.bank-empty-copy, +.bank-footer-copy, +.bank-history-meta { + color: var(--bank-text-muted); + line-height: 1.45; +} + +.bank-card-copy { + margin: 0 0 0.9rem; +} + +.bank-summary-band { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.85rem; +} + +.bank-action-sections { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1rem; +} + +.bank-support-sections { + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 1rem; +} + +.bank-form-stack { + display: grid; + gap: 0.75rem; +} + +.bank-input, +.bank-select { + width: 100%; + min-width: 0; + height: 2.9rem; + padding: 0 0.95rem; + border-radius: 0.8rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.82); + color: var(--bank-text-main); +} + +.bank-action-row { + display: flex; + gap: 0.75rem; +} + +.bank-btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 2.85rem; + padding: 0.75rem 1rem; + border-radius: 0.8rem; + border: 1px solid var(--bank-border); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + cursor: pointer; + transition: + background-color 160ms ease, + color 160ms ease, + border-color 160ms ease; +} + +.bank-btn:disabled { + opacity: 0.55; + cursor: default; +} + +.bank-btn-primary { + background: #455a77; + border-color: #455a77; + color: #fff; +} + +.bank-btn-primary:hover:not(:disabled) { + background: #354863; + border-color: #354863; +} + +.bank-btn-secondary { + background: rgba(255, 255, 255, 0.82); + color: var(--bank-accent); +} + +.bank-btn-secondary:hover:not(:disabled) { + background: #eef4fd; +} + +.bank-history-list { + display: grid; + gap: 0.75rem; +} + +.bank-history-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + padding: 0.85rem 0.95rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.6); +} + +.bank-history-copy { + min-width: 0; + display: grid; + gap: 0.18rem; +} + +.bank-history-title, +.bank-empty-title { + color: var(--bank-text-main); + font-weight: 700; +} + +.bank-history-value { + white-space: nowrap; + font-weight: 700; + color: var(--bank-accent); +} + +.bank-empty-state { + display: grid; + gap: 0.35rem; + padding: 1rem 0; +} + +.bank-notice-stack { + position: fixed; + top: 1.2rem; + right: 1.5rem; + z-index: 12; + display: grid; + gap: 0.65rem; +} + +.bank-notice { + max-width: 24rem; + padding: 0.85rem 1rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: #fff; + box-shadow: 0 14px 28px rgba(16, 34, 56, 0.14); + font-size: 0.92rem; +} + +.bank-notice.is-success { + background: #ecfdf5; + border-color: #bbf7d0; + color: #166534; +} + +.bank-notice.is-error { + background: #fef2f2; + border-color: #fecaca; + color: #991b1b; +} + +.bank-footer-bar { + width: 100%; + margin-top: auto; + background: #1e293b; + color: #f8fafc; +} + +.bank-footer { + width: min(100%, 1600px); + margin: 0 auto; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 4rem; + padding: 3rem 1.25rem; +} + +.bank-footer-block { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.bank-footer-title { + margin: 0; + color: #f8fafc; + font-size: 0.85rem; + text-transform: uppercase; + letter-spacing: 0.1em; + font-weight: 700; + padding-bottom: 0.5rem; + border-bottom: 1px solid #475569; +} + +.bank-footer-list { + margin: 0; + padding: 0; + list-style: none; +} + +.bank-atm-shell { + flex: 1; + min-height: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 2rem 1rem; +} + +.bank-atm-panel { + width: min(100%, 560px); + display: grid; + gap: 1rem; +} + +.bank-atm-stack { + display: grid; + gap: 1rem; +} + +.bank-pin-display, +.bank-balance-display { + display: flex; + align-items: center; + justify-content: center; + min-height: 5rem; + padding: 1rem; + border-radius: 1rem; + border: 1px solid var(--bank-border-strong); + background: rgba(255, 255, 255, 0.68); + color: var(--bank-text-main); + text-align: center; +} + +.bank-pin-display { + font-size: 2rem; +} + +.bank-balance-display { + font-size: 2.5rem; + font-weight: 800; + letter-spacing: -0.03em; +} + +.bank-pin-indicators { + display: flex; + align-items: center; + justify-content: center; + gap: 0.9rem; +} + +.bank-pin-indicator { + width: 1rem; + height: 1rem; + border-radius: 999px; + border: 2px solid var(--bank-accent); + background: transparent; +} + +.bank-pin-indicator.is-filled { + background: var(--bank-accent); +} + +.bank-keypad { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 0.75rem; +} + +.bank-key { + min-height: 3.2rem; + padding: 0.9rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.82); + color: var(--bank-text-main); + font-weight: 700; +} + +.bank-key.is-muted { + background: #eef2f8; + color: var(--bank-text-muted); +} + +.bank-key.is-accent { + background: #455a77; + border-color: #455a77; + color: #fff; +} + +.bank-key.is-wide { + grid-column: span 3; +} + +.bank-atm-action-grid { + display: grid; + gap: 0.75rem; +} + +.bank-shell.is-atm { + background: transparent; + min-height: 100%; + justify-content: center; +} + +.bank-shell.is-atm .bank-atm-shell { + flex: 1; + width: 100%; + min-height: 100%; + max-width: 100%; +} + +.bank-footer-copy { + color: #cbd5e1; + line-height: 1.5; + margin: 0 0 0.75rem; +} + +@media (max-width: 1200px) { + .bank-layout { + grid-template-columns: 1fr; + } + + .bank-main { + overflow: visible; + } +} + +@media (max-width: 900px) { + .bank-summary-band, + .bank-action-sections, + .bank-footer { + grid-template-columns: 1fr; + } + + .bank-summary-grid { + grid-template-columns: 1fr; + } +} diff --git a/arma/client/addons/bank/ui/_site/bank-ui.js b/arma/client/addons/bank/ui/_site/bank-ui.js new file mode 100644 index 0000000..5203cfd --- /dev/null +++ b/arma/client/addons/bank/ui/_site/bank-ui.js @@ -0,0 +1,1650 @@ +/* Generated by tools/build-webui.mjs for Bank UI app. Do not edit directly. */ +(function () { + const runtime = window.ForgeWebUI; + const BankApp = (window.BankApp = window.BankApp || {}); + BankApp.runtime = runtime; + window.AppRuntime = runtime; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + + const defaultSession = { + mode: "bank", + orgFunds: 0, + orgName: "", + playerName: "", + transferTargets: [], + uid: "", + }; + + const defaultAccount = { + bank: 0, + cash: 0, + earnings: 0, + pin: "1234", + transactions: [], + }; + + function cloneValue(value) { + return JSON.parse(JSON.stringify(value)); + } + + function replaceObject(target, source) { + Object.keys(target).forEach((key) => delete target[key]); + Object.assign(target, cloneValue(source)); + } + + BankApp.data = { + account: Object.assign({}, defaultAccount), + session: Object.assign({}, defaultSession), + applyHydratePayload(payload) { + replaceObject( + this.session, + Object.assign({}, defaultSession, payload?.session || {}), + ); + replaceObject( + this.account, + Object.assign({}, defaultAccount, payload?.account || {}), + ); + }, + }; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { createSignal } = BankApp.runtime; + + class BankStore { + constructor() { + [this.getMode, this.setMode] = createSignal("bank"); + [this.getNotice, this.setNotice] = createSignal({ + text: "", + type: "", + }); + [this.getPendingAction, this.setPendingAction] = createSignal(""); + [this.getAtmView, this.setAtmView] = createSignal("pin"); + [this.getEnteredPin, this.setEnteredPin] = createSignal(""); + [this.getCustomAmount, this.setCustomAmount] = createSignal(""); + [this.getAccountVersion, this.setAccountVersion] = createSignal(0); + [this.getSessionVersion, this.setSessionVersion] = createSignal(0); + } + + finishAction() { + this.setPendingAction(""); + } + + hydrateFromPayload(payload) { + const mode = String(payload?.session?.mode || "bank") + .trim() + .toLowerCase(); + const currentMode = this.getMode(); + const currentAtmView = this.getAtmView(); + + this.setMode(mode === "atm" ? "atm" : "bank"); + this.setPendingAction(""); + this.setNotice({ text: "", type: "" }); + this.setEnteredPin(""); + this.setCustomAmount(""); + this.setAccountVersion(this.getAccountVersion() + 1); + this.setSessionVersion(this.getSessionVersion() + 1); + + if (mode === "atm") { + this.setAtmView(currentMode === "atm" ? currentAtmView : "pin"); + return; + } + + this.setAtmView("dashboard"); + } + + resetAtm() { + this.setEnteredPin(""); + this.setCustomAmount(""); + this.setAtmView("pin"); + } + + startAction(action) { + this.setPendingAction( + String(action || "") + .trim() + .toLowerCase(), + ); + } + } + + BankApp.store = new BankStore(); +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const store = BankApp.store; + const bridge = window.ForgeWebUI.createBridge({ + closeEvent: "bank::close", + globalName: "ForgeBridge", + readyEvent: "bank::ready", + }); + + function hydrate(payloadData) { + BankApp.data.applyHydratePayload(payloadData); + store.hydrateFromPayload(payloadData); + } + + bridge.on("bank::hydrate", hydrate); + bridge.on("bank::sync", hydrate); + bridge.on("bank::notice", (payloadData) => { + if (BankApp.actions) { + BankApp.actions.showNotice( + payloadData.type || "error", + payloadData.message || "Bank notice received.", + ); + } + }); + + BankApp.bridge = { + notifyReady() { + return bridge.ready({ loaded: true }); + }, + receive: bridge.receive, + requestClose() { + return bridge.close({}); + }, + requestDeposit(payload) { + return bridge.send("bank::deposit::request", payload); + }, + requestDepositEarnings(payload) { + return bridge.send("bank::depositEarnings::request", payload); + }, + requestRefresh() { + return bridge.send("bank::refresh", {}); + }, + requestTransfer(payload) { + return bridge.send("bank::transfer::request", payload); + }, + requestWithdraw(payload) { + return bridge.send("bank::withdraw::request", payload); + }, + sendEvent: bridge.send, + }; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const store = BankApp.store; + + let noticeTimer = null; + + function getAccount() { + return BankApp.data?.account || {}; + } + + function getSession() { + return BankApp.data?.session || {}; + } + + function normalizeAmount(value) { + const amount = Math.floor(Number(value || 0)); + return Number.isFinite(amount) ? amount : 0; + } + + function showNotice(type, text) { + store.setNotice({ type, text }); + + if (noticeTimer) { + clearTimeout(noticeTimer); + } + + noticeTimer = setTimeout(() => { + store.setNotice({ text: "", type: "" }); + noticeTimer = null; + }, 3200); + } + + function closeBank() { + const bridge = BankApp.bridge; + if (bridge && typeof bridge.requestClose === "function") { + const sent = bridge.requestClose(); + if (sent) { + return true; + } + } + + showNotice("error", "Bank bridge is unavailable."); + return false; + } + + function refreshBank() { + const bridge = BankApp.bridge; + if (bridge && typeof bridge.requestRefresh === "function") { + const sent = bridge.requestRefresh(); + if (sent) { + return true; + } + } + + showNotice("error", "Bank refresh bridge is unavailable."); + return false; + } + + function requestDeposit(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "Enter a valid deposit amount."); + return false; + } + + if (amount > Number(account.cash || 0)) { + showNotice("error", "Cash on hand cannot cover that deposit."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestDeposit !== "function") { + showNotice("error", "Deposit bridge is unavailable."); + return false; + } + + store.startAction("deposit"); + const sent = bridge.requestDeposit({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Deposit bridge is unavailable."); + return false; + } + + return true; + } + + function requestWithdraw(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "Enter a valid withdrawal amount."); + return false; + } + + if (amount > Number(account.bank || 0)) { + showNotice("error", "Bank balance cannot cover that withdrawal."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestWithdraw !== "function") { + showNotice("error", "Withdraw bridge is unavailable."); + return false; + } + + store.startAction("withdraw"); + const sent = bridge.requestWithdraw({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Withdraw bridge is unavailable."); + return false; + } + + return true; + } + + function requestTransfer(targetUid, amountValue) { + const amount = normalizeAmount(amountValue); + const session = getSession(); + const account = getAccount(); + const targetId = String(targetUid || "").trim(); + + if (!targetId) { + showNotice("error", "Select a transfer recipient."); + return false; + } + + if (targetId === String(session.uid || "")) { + showNotice("error", "You cannot transfer funds to yourself."); + return false; + } + + if (amount <= 0) { + showNotice("error", "Enter a valid transfer amount."); + return false; + } + + if (amount > Number(account.bank || 0)) { + showNotice("error", "Bank balance cannot cover that transfer."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestTransfer !== "function") { + showNotice("error", "Transfer bridge is unavailable."); + return false; + } + + store.startAction("transfer"); + const sent = bridge.requestTransfer({ + amount, + from: "bank", + target: targetId, + }); + if (!sent) { + store.finishAction(); + showNotice("error", "Transfer bridge is unavailable."); + return false; + } + + return true; + } + + function requestDepositEarnings(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "No earnings are available to deposit."); + return false; + } + + if (amount > Number(account.earnings || 0)) { + showNotice( + "error", + "Pending earnings cannot cover that deposit request.", + ); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestDepositEarnings !== "function") { + showNotice("error", "Earnings bridge is unavailable."); + return false; + } + + store.startAction("depositearnings"); + const sent = bridge.requestDepositEarnings({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Earnings bridge is unavailable."); + return false; + } + + return true; + } + + function appendPinDigit(digit) { + const nextDigit = String(digit || "").trim(); + if (!nextDigit) { + return; + } + + const currentPin = String(store.getEnteredPin() || ""); + if (currentPin.length >= 4) { + return; + } + + store.setEnteredPin(currentPin + nextDigit); + } + + function backspacePin() { + const currentPin = String(store.getEnteredPin() || ""); + store.setEnteredPin(currentPin.slice(0, -1)); + } + + function clearPin() { + store.setEnteredPin(""); + } + + function submitPin() { + const enteredPin = String(store.getEnteredPin() || ""); + const actualPin = String(getAccount().pin || "1234"); + + if (enteredPin.length !== 4) { + showNotice("error", "Enter your four-digit access PIN."); + return false; + } + + if (enteredPin !== actualPin) { + clearPin(); + showNotice("error", "Incorrect PIN."); + return false; + } + + clearPin(); + store.setAtmView("menu"); + return true; + } + + function selectAtmView(view) { + const nextView = String(view || "").trim(); + if (!nextView) { + return false; + } + + if (nextView === "pin") { + store.resetAtm(); + return true; + } + + store.setCustomAmount(""); + store.setAtmView(nextView); + return true; + } + + function appendCustomAmountDigit(digit) { + const nextDigit = String(digit || "").trim(); + if (!nextDigit) { + return; + } + + const currentValue = String(store.getCustomAmount() || ""); + if (currentValue.length >= 7) { + return; + } + + store.setCustomAmount(currentValue + nextDigit); + } + + function backspaceCustomAmount() { + const currentValue = String(store.getCustomAmount() || ""); + store.setCustomAmount(currentValue.slice(0, -1)); + } + + function clearCustomAmount() { + store.setCustomAmount(""); + } + + function submitCustomAmount(kind) { + const amount = normalizeAmount(store.getCustomAmount()); + const nextKind = String(kind || "") + .trim() + .toLowerCase(); + + if (amount <= 0) { + showNotice("error", "Enter a valid transaction amount."); + return false; + } + + const success = + nextKind === "deposit" + ? requestDeposit(amount) + : requestWithdraw(amount); + + if (success) { + store.setCustomAmount(""); + store.setAtmView("menu"); + } + + return success; + } + + function requestAtmAmount(kind, amount) { + const nextKind = String(kind || "") + .trim() + .toLowerCase(); + const success = + nextKind === "deposit" + ? requestDeposit(amount) + : requestWithdraw(amount); + + if (success) { + store.setAtmView("menu"); + } + + return success; + } + + BankApp.actions = { + appendCustomAmountDigit, + appendPinDigit, + backspaceCustomAmount, + backspacePin, + clearCustomAmount, + clearPin, + closeBank, + refreshBank, + requestAtmAmount, + requestDeposit, + requestDepositEarnings, + requestTransfer, + requestWithdraw, + selectAtmView, + showNotice, + submitCustomAmount, + submitPin, + }; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const { account } = BankApp.data; + + function formatCurrency(value) { + return `$${Math.round(Number(value || 0)).toLocaleString()}`; + } + + function pending(actionName) { + return store.getPendingAction() === actionName; + } + + function statCard(label, value, tone = "") { + return h( + "div", + { + className: tone + ? `bank-stat-card is-${tone}` + : "bank-stat-card", + }, + h("span", { className: "bank-stat-label" }, label), + h("span", { className: "bank-stat-value" }, value), + ); + } + + function metricCard(label, value, copy, tone = "") { + return h( + "div", + { + className: tone + ? `bank-metric-card is-${tone}` + : "bank-metric-card", + }, + h("span", { className: "bank-eyebrow" }, label), + h("span", { className: "bank-metric-value" }, value), + h("span", { className: "bank-metric-copy" }, copy), + ); + } + + function pinIndicators(value) { + const pin = String(value || ""); + + return h( + "div", + { className: "bank-pin-indicators" }, + [0, 1, 2, 3].map((index) => + h("span", { + className: + index < pin.length + ? "bank-pin-indicator is-filled" + : "bank-pin-indicator", + }), + ), + ); + } + + function readInputValue(id) { + return document.getElementById(id)?.value || ""; + } + + function clearInputValue(id) { + const input = document.getElementById(id); + if (input) { + input.value = ""; + } + } + + function keypad(onDigit, onBackspace, onClear, onEnter) { + const keys = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]; + + return h( + "div", + { className: "bank-keypad" }, + keys.map((digit) => + h( + "button", + { + type: "button", + className: "bank-key", + onClick: () => onDigit(digit), + }, + digit, + ), + ), + h( + "button", + { + type: "button", + className: "bank-key is-muted", + onClick: onClear, + }, + "C", + ), + h( + "button", + { + type: "button", + className: "bank-key", + onClick: () => onDigit("0"), + }, + "0", + ), + h( + "button", + { + type: "button", + className: "bank-key is-accent", + onClick: onEnter, + }, + "Enter", + ), + h( + "button", + { + type: "button", + className: "bank-key is-wide", + onClick: onBackspace, + }, + "Backspace", + ), + ); + } + + function transactionRows() { + const transactions = Array.isArray(account.transactions) + ? account.transactions + : []; + + if (transactions.length === 0) { + return h( + "div", + { className: "bank-empty-state" }, + h("h3", { className: "bank-empty-title" }, "No transactions"), + h( + "p", + { className: "bank-empty-copy" }, + "Deposits, withdrawals, and transfers will appear here after the account begins moving funds.", + ), + ); + } + + return h( + "div", + { className: "bank-history-list" }, + transactions + .slice(0, 8) + .map((entry) => + h( + "div", + { className: "bank-history-row" }, + h( + "div", + { className: "bank-history-copy" }, + h( + "span", + { className: "bank-history-title" }, + entry.type || "Transaction", + ), + h( + "span", + { className: "bank-history-meta" }, + entry.date || "Pending timestamp", + ), + ), + h( + "span", + { className: "bank-history-value" }, + formatCurrency(entry.amount || 0), + ), + ), + ), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + Object.assign(BankApp.componentFns, { + clearInputValue, + formatCurrency, + keypad, + metricCard, + pending, + pinIndicators, + readInputValue, + statCard, + transactionRows, + }); +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account, session } = BankApp.data; + const { formatCurrency, statCard } = BankApp.componentFns; + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankSidebar = function BankSidebar() { + store.getAccountVersion(); + store.getSessionVersion(); + + return h( + "aside", + { className: "bank-sidebar" }, + h( + "section", + { className: "bank-module" }, + h( + "div", + { className: "bank-module-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Account"), + h( + "h2", + { className: "bank-section-title" }, + "Balances", + ), + ), + h("span", { className: "bank-pill" }, "Live"), + ), + h( + "div", + { className: "bank-summary-grid" }, + statCard("Bank", formatCurrency(account.bank), "accent"), + statCard("Cash", formatCurrency(account.cash)), + statCard( + "Earnings", + formatCurrency(account.earnings), + account.earnings > 0 ? "warning" : "", + ), + statCard( + "Org Funds", + formatCurrency(session.orgFunds), + session.orgFunds > 0 ? "success" : "", + ), + ), + ), + h( + "section", + { className: "bank-module" }, + h( + "div", + { className: "bank-module-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Profile"), + h( + "h2", + { className: "bank-section-title" }, + "Account Holder", + ), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.refreshBank(), + }, + "Refresh", + ), + ), + h( + "div", + { className: "bank-profile-stack" }, + statCard("Name", session.playerName || "Unknown"), + statCard("UID", session.uid || "-"), + statCard( + "Organization", + session.orgName || "No active organization", + ), + ), + ), + ); + }; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const { account, session } = BankApp.data; + const { formatCurrency } = BankApp.componentFns; + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankFooter = function BankFooter() { + store.getAccountVersion(); + store.getSessionVersion(); + + const sections = [ + { + title: "Banking Resources", + items: [ + "Account Access Policy", + "Transfer & Wire Guidelines", + "Cash Handling Schedule", + "Terminal Security Notice", + ], + }, + { + title: "Bank Support", + items: session.orgName + ? [ + `Organization: ${session.orgName}`, + `Treasury Reference: ${formatCurrency(session.orgFunds)}`, + `${session.transferTargets.length} transfer recipient(s) currently visible.`, + `Primary Ledger: ${formatCurrency(account.bank)}`, + ] + : [ + "Organization: No active treasury link", + `${session.transferTargets.length} transfer recipient(s) currently visible.`, + `Primary Ledger: ${formatCurrency(account.bank)}`, + `Cash On Hand: ${formatCurrency(account.cash)}`, + ], + }, + ]; + + return h( + "footer", + { className: "bank-footer-bar" }, + h( + "div", + { className: "bank-footer" }, + ...sections.map((section) => + h( + "div", + { className: "bank-footer-block" }, + h( + "h3", + { className: "bank-footer-title" }, + section.title, + ), + h( + "ul", + { className: "bank-footer-list" }, + ...(section.items || []).map((item) => + h( + "li", + { className: "bank-footer-copy" }, + item, + ), + ), + ), + ), + ), + ), + ); + }; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account, session } = BankApp.data; + const { + clearInputValue, + formatCurrency, + metricCard, + pending, + readInputValue, + transactionRows, + } = BankApp.componentFns; + + function trackAccount() { + store.getAccountVersion(); + } + + function trackSession() { + store.getSessionVersion(); + } + + function pageHeader() { + trackSession(); + + return h( + "div", + { className: "bank-page-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Treasury Desk"), + h("h1", { className: "bank-title" }, "Personal Banking"), + ), + h( + "span", + { className: "bank-pill" }, + session.playerName || "Account Holder", + ), + ); + } + + function summarySection() { + trackAccount(); + trackSession(); + + return h( + "section", + { className: "bank-page-section bank-summary-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Overview"), + h( + "h2", + { className: "bank-section-title" }, + "Financial Position", + ), + ), + h("span", { className: "bank-pill" }, "Banking Desk"), + ), + h( + "div", + { className: "bank-summary-band" }, + metricCard( + "Primary Balance", + formatCurrency(account.bank), + "Available for transfers and withdrawals.", + "accent", + ), + metricCard( + "Cash On Hand", + formatCurrency(account.cash), + "Funds currently carried by the player.", + ), + metricCard( + "Pending Earnings", + formatCurrency(account.earnings), + "Ready to sweep into the main account ledger.", + account.earnings > 0 ? "warning" : "", + ), + metricCard( + "Org Snapshot", + formatCurrency(session.orgFunds), + "Reference value pulled from the organization treasury.", + session.orgFunds > 0 ? "success" : "", + ), + ), + ); + } + + function actionSections() { + trackSession(); + + return h( + "div", + { className: "bank-action-sections" }, + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Movement"), + h( + "h2", + { className: "bank-section-title" }, + "Deposit / Withdraw", + ), + ), + ), + h( + "div", + { className: "bank-form-stack" }, + h("input", { + id: "bank-amount-input", + className: "bank-input", + type: "number", + min: "1", + placeholder: "Enter amount", + }), + h( + "div", + { className: "bank-action-row" }, + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: pending("deposit"), + onClick: () => { + const sent = actions.requestDeposit( + readInputValue("bank-amount-input"), + ); + if (sent) { + clearInputValue("bank-amount-input"); + } + }, + }, + pending("deposit") ? "Depositing..." : "Deposit", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + disabled: pending("withdraw"), + onClick: () => { + const sent = actions.requestWithdraw( + readInputValue("bank-amount-input"), + ); + if (sent) { + clearInputValue("bank-amount-input"); + } + }, + }, + pending("withdraw") ? "Withdrawing..." : "Withdraw", + ), + ), + ), + ), + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Transfer"), + h( + "h2", + { className: "bank-section-title" }, + "Wire Funds", + ), + ), + ), + h( + "div", + { className: "bank-form-stack" }, + h( + "select", + { + id: "bank-transfer-target", + className: "bank-select", + }, + h( + "option", + { value: "" }, + session.transferTargets.length > 0 + ? "Select recipient" + : "No available recipients", + ), + session.transferTargets.map((entry) => + h( + "option", + { value: entry.uid }, + entry.name || entry.uid, + ), + ), + ), + h("input", { + id: "bank-transfer-amount", + className: "bank-input", + type: "number", + min: "1", + placeholder: "Enter transfer amount", + }), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: + pending("transfer") || + session.transferTargets.length === 0, + onClick: () => { + const sent = actions.requestTransfer( + readInputValue("bank-transfer-target"), + readInputValue("bank-transfer-amount"), + ); + if (sent) { + clearInputValue("bank-transfer-amount"); + } + }, + }, + pending("transfer") + ? "Transferring..." + : "Transfer Funds", + ), + ), + ), + ); + } + + function supportSection() { + trackAccount(); + + return h( + "div", + { className: "bank-support-sections" }, + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Sweep"), + h( + "h2", + { className: "bank-section-title" }, + "Deposit Earnings", + ), + ), + ), + h( + "p", + { className: "bank-card-copy" }, + "Sweep pending earnings into the primary account when you want them reflected in the main balance.", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: + pending("depositearnings") || + Number(account.earnings || 0) <= 0, + onClick: () => + actions.requestDepositEarnings(account.earnings), + }, + pending("depositearnings") + ? "Depositing..." + : "Deposit Earnings", + ), + ), + ); + } + + function historySection() { + trackAccount(); + + return h( + "section", + { className: "bank-page-section bank-history-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "History"), + h( + "h2", + { className: "bank-section-title" }, + "Recent Transactions", + ), + ), + ), + transactionRows(), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankPageHeader = pageHeader; + BankApp.componentFns.BankSummarySection = summarySection; + BankApp.componentFns.BankActionSections = actionSections; + BankApp.componentFns.BankSupportSection = supportSection; + BankApp.componentFns.BankHistorySection = historySection; +})(); + +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account } = BankApp.data; + const { formatCurrency, keypad, pinIndicators } = BankApp.componentFns; + + function atmMenuCard() { + return h( + "div", + { className: "bank-atm-action-grid" }, + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("withdraw"), + }, + "Withdraw Cash", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("deposit"), + }, + "Deposit Cash", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("balance"), + }, + "Check Balance", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.closeBank(), + }, + "Exit Terminal", + ), + ); + } + + function atmAmountMenu(kind) { + const label = kind === "deposit" ? "Deposit" : "Withdraw"; + const amounts = [20, 50, 100, 500]; + + return h( + "div", + { className: "bank-atm-action-grid" }, + amounts.map((amount) => + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.requestAtmAmount(kind, amount), + }, + `${label} ${formatCurrency(amount)}`, + ), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => + actions.selectAtmView( + kind === "deposit" + ? "customDeposit" + : "customWithdraw", + ), + }, + "Custom Amount", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("menu"), + }, + "Back", + ), + ); + } + + function atmCustomAmount(kind) { + const label = kind === "deposit" ? "Deposit" : "Withdraw"; + + return h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-pin-display" }, + store.getCustomAmount() + ? formatCurrency(store.getCustomAmount()) + : "$0", + ), + keypad( + actions.appendCustomAmountDigit, + actions.backspaceCustomAmount, + actions.clearCustomAmount, + () => actions.submitCustomAmount(kind), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("menu"), + }, + `Cancel ${label}`, + ), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.ATMView = function ATMView() { + store.getAccountVersion(); + const atmViewName = store.getAtmView(); + const enteredPin = String(store.getEnteredPin() || ""); + let title = "Terminal Access"; + let copy = + "Authenticate with the four-digit account PIN before using the terminal."; + let content = null; + + switch (atmViewName) { + case "menu": + title = "ATM Menu"; + copy = + "Select a banking action. The ATM can deposit, withdraw, and show the live account balance."; + content = atmMenuCard(); + break; + case "withdraw": + title = "Withdraw Cash"; + copy = + "Choose a preset amount or enter a custom amount for withdrawal."; + content = atmAmountMenu("withdraw"); + break; + case "deposit": + title = "Deposit Cash"; + copy = + "Move cash on hand back into the main bank balance from the terminal."; + content = atmAmountMenu("deposit"); + break; + case "customWithdraw": + title = "Custom Withdraw"; + copy = "Enter the exact withdrawal amount."; + content = atmCustomAmount("withdraw"); + break; + case "customDeposit": + title = "Custom Deposit"; + copy = "Enter the exact deposit amount."; + content = atmCustomAmount("deposit"); + break; + case "balance": + title = "Available Balance"; + copy = "Current bank balance available at this terminal."; + content = h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-balance-display" }, + formatCurrency(account.bank), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("menu"), + }, + "Return to Menu", + ), + ); + break; + default: + content = h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-pin-display" }, + pinIndicators(enteredPin), + ), + keypad( + actions.appendPinDigit, + actions.backspacePin, + actions.clearPin, + actions.submitPin, + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.closeBank(), + }, + "Exit Terminal", + ), + ); + break; + } + + return h( + "div", + { className: "bank-atm-shell" }, + h( + "section", + { className: "bank-atm-panel" }, + h( + "div", + { className: "bank-panel-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "ATM"), + h("h1", { className: "bank-title" }, title), + ), + h("span", { className: "bank-pill" }, "Secure Terminal"), + ), + h("p", { className: "bank-panel-copy" }, copy), + content, + ), + ); + }; +})(); + +(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" }), + ], + ), + ], + ); + }; +})(); + +(function () { + const ForgeWebUI = window.ForgeWebUI; + const BankApp = window.BankApp; + const islandDefinitions = [ + { + id: "bank-notice-root", + preserveScroll: false, + render: () => BankApp.componentFns.NoticeLayer(), + }, + { + id: "bank-sidebar-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSidebar(), + }, + { + id: "bank-page-header-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankPageHeader(), + }, + { + id: "bank-summary-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSummarySection(), + }, + { + id: "bank-action-sections-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankActionSections(), + }, + { + id: "bank-support-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSupportSection(), + }, + { + id: "bank-history-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankHistorySection(), + }, + { + id: "bank-atm-root", + preserveScroll: false, + render: () => BankApp.componentFns.ATMView(), + }, + { + id: "bank-footer-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankFooter(), + }, + ]; + + function createIslandManager() { + const mounts = new Map(); + + function sync() { + islandDefinitions.forEach((definition) => { + const container = document.getElementById(definition.id); + const current = mounts.get(definition.id); + + if (!container) { + if (current) { + current.handle.dispose(); + mounts.delete(definition.id); + } + return; + } + + if (current && current.container === container) { + return; + } + + if (current) { + current.handle.dispose(); + } + + const handle = ForgeWebUI.mount(container, definition.render, { + preserveScroll: definition.preserveScroll, + }); + mounts.set(definition.id, { + container, + handle, + }); + }); + } + + return { + sync, + }; + } + + const app = ForgeWebUI.createApp({ + name: "bank", + root: "#app", + setup({ root }) { + const islandManager = createIslandManager(); + + ForgeWebUI.mount(root, () => BankApp.components.App(), { + preserveScroll: false, + }); + + if (BankApp.bridge) { + BankApp.bridge.notifyReady(); + } + + ForgeWebUI.effect(() => { + BankApp.store.getMode(); + + requestAnimationFrame(() => { + islandManager.sync(); + }); + }); + }, + }); + + app.start(); +})(); diff --git a/arma/client/addons/bank/ui/_site/bank.css b/arma/client/addons/bank/ui/_site/bank.css deleted file mode 100644 index ff6e649..0000000 --- a/arma/client/addons/bank/ui/_site/bank.css +++ /dev/null @@ -1,444 +0,0 @@ -:root { - --bg-app: #fdfcf8; - --bg-surface: #ffffff; - --bg-surface-hover: #f1f5f9; - --primary: #475569; - --primary-hover: #1e293b; - --window-blue: #12325b; - --window-blue-border: #214978; - --window-blue-highlight: #d7e5f8; - --text-main: #1f2937; - --text-muted: #64748b; - --text-inverse: #f8fafc; - --border: #e2e8f0; - --radius: 8px; - --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --footer-bg: #1e293b; -} - -html, -body { - height: 100%; -} - -body { - font-family: - "Inter", - system-ui, - -apple-system, - sans-serif; - margin: 0; - padding: 0; - background: var(--bg-app); - color: var(--text-main); - line-height: 1.6; - overflow: hidden; -} - -#app { - height: 100vh; - overflow: hidden; -} - -.app-shell { - height: 100vh; - display: flex; - flex-direction: column; - overflow: hidden; -} - -main { - display: flex; - flex-direction: column; - flex: 1 1 auto; - min-height: 0; - overflow: auto; - overscroll-behavior: contain; -} - -.window-titlebar { - display: flex; - align-items: center; - justify-content: space-between; - gap: 1rem; - padding: 0.8rem 1.25rem; - background: linear-gradient(180deg, var(--window-blue) 0%, #0d2643 100%); - border-bottom: 1px solid var(--window-blue-border); - color: var(--text-inverse); - box-shadow: 0 10px 24px rgb(18 50 91 / 0.24); - position: sticky; - top: 0; - z-index: 30; - flex-shrink: 0; -} - -.window-titlebar-brand { - display: flex; - flex-direction: column; - gap: 0.1rem; -} - -.window-titlebar-kicker { - font-size: 0.68rem; - font-weight: 700; - letter-spacing: 0.16em; - text-transform: uppercase; - color: rgb(215 229 248 / 0.78); -} - -.window-titlebar-title { - font-size: 0.95rem; - font-weight: 700; - letter-spacing: 0.04em; - color: var(--text-inverse); -} - -.window-titlebar-controls { - display: flex; - align-items: center; - gap: 0.5rem; -} - -.window-control-btn { - min-width: 2.5rem; - padding: 0.45rem 0.7rem; - border-radius: 6px; - border: 1px solid rgb(215 229 248 / 0.22); - background: rgb(255 255 255 / 0.08); - color: var(--window-blue-highlight); - font-size: 0.82rem; - font-weight: 700; - letter-spacing: 0.08em; - text-transform: uppercase; - cursor: not-allowed; - box-shadow: none; - transform: none; -} - -.window-control-btn:hover { - background: rgb(255 255 255 / 0.08); - box-shadow: none; - transform: none; -} - -.window-control-btn:disabled { - opacity: 0.55; -} - -.window-control-btn.is-close { - cursor: pointer; - opacity: 1; - border-color: rgb(255 255 255 / 0.24); -} - -.window-control-btn.is-close:hover { - background: rgb(255 255 255 / 0.18); -} - -.container { - max-width: 1200px; - width: 100%; - margin: 0 auto; - padding: 2rem; - flex: 1; - display: flex; - flex-direction: column; - box-sizing: border-box; -} - -/* Navbar */ -.navbar { - background: var(--bg-surface); - border-bottom: 1px solid var(--border); - box-shadow: var(--shadow); -} - -.navbar-inner { - display: flex; - justify-content: space-between; - align-items: center; - max-width: 1200px; - width: 100%; - margin: 0 auto; - padding: 1rem 2rem; - box-sizing: border-box; -} - -.navbar-brand { - display: flex; - align-items: center; - gap: 0.75rem; -} - -.navbar-title { - font-size: 1.25rem; - font-weight: 700; - color: var(--primary-hover); - letter-spacing: -0.025em; -} - -.navbar-profile { - display: flex; - align-items: center; - gap: 1.5rem; -} - -.profile-info { - display: flex; - flex-direction: column; - align-items: flex-end; - gap: 0.125rem; -} - -.profile-label { - font-size: 0.7rem; - text-transform: uppercase; - letter-spacing: 0.05em; - color: var(--text-muted); - font-weight: 500; -} - -.profile-id { - font-size: 0.9rem; - font-weight: 600; - color: var(--text-main); - font-family: "Consolas", "Monaco", monospace; -} - -.content { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 2rem; - margin-bottom: 2rem; -} - -/* Cards */ -.card { - background: var(--bg-surface); - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 2rem; - margin-bottom: 2rem; - box-shadow: var(--shadow); - text-align: center; - - h2 { - margin-top: 0; - font-size: 1.8rem; - color: var(--primary-hover); - } -} - -/* Buttons */ -button { - background: var(--primary); - color: white; - border: none; - padding: 0.75rem 1.5rem; - border-radius: var(--radius); - cursor: pointer; - font-size: 1rem; - font-weight: 500; - font-family: inherit; - transition: all 0.2s ease; - - &:hover { - background: var(--primary-hover); - transform: translateY(-1px); - box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); - } - - & + & { - margin-left: 1rem; - } -} - -/* Forms */ -form { - display: flex; - flex-direction: column; - gap: 1rem; - text-align: left; - - label { - display: block; - margin-bottom: 0.5rem; - color: var(--text-muted); - font-weight: 500; - font-size: 0.9rem; - } - - input, - select { - width: 100%; - padding: 0.75rem; - border-radius: var(--radius); - border: 1px solid var(--border); - background: var(--bg-app); - color: var(--text-main); - font-family: inherit; - font-size: 1rem; - box-sizing: border-box; - transition: border-color 0.2s; - - &:focus { - outline: none; - border-color: var(--primary); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); - } - } - - .form-actions { - margin-top: 1rem; - display: flex; - flex-direction: column; - gap: 1rem; - align-items: center; - } -} - -/* Deposit/Withdraw Form */ -.balance-info { - display: flex; - justify-content: space-around; - margin-bottom: 1.5rem; - padding: 1rem; - background: var(--bg-surface-hover); - border-radius: var(--radius); -} - -.balance-info-item { - display: flex; - flex-direction: column; - align-items: center; - gap: 0.25rem; -} - -.balance-info-label { - font-size: 0.75rem; - text-transform: uppercase; - letter-spacing: 0.05em; - color: var(--text-muted); - font-weight: 500; -} - -.balance-info-value { - font-size: 1.25rem; - font-weight: 700; - color: var(--primary-hover); - - &.cash { - color: #fbbf24; - } -} - -.deposit-withdraw-form { - display: flex; - flex-direction: column; - gap: 1rem; - - input { - text-align: center; - font-size: 1.25rem; - padding: 1rem; - } -} - -.deposit-withdraw-buttons { - display: flex; - gap: 0.75rem; - - button { - flex: 1; - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - - &:hover { - background: var(--primary); - transform: none; - box-shadow: none; - } - } - } -} - -.deposit-earnings-button { - display: flex; - gap: 0.75rem; - width: 50%; - margin: 0 auto; - - button { - flex: 1; - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - - &:hover { - background: var(--primary); - transform: none; - box-shadow: none; - } - } - } -} - -/* Footer */ -.footer { - margin-top: auto; - background: var(--footer-bg); - color: var(--text-inverse); - display: block; - - .wrapper { - max-width: 1200px; - width: 100%; - margin: 0 auto; - padding: 3rem 2rem; - box-sizing: border-box; - display: grid; - grid-template-columns: 1fr 1fr; - gap: 4rem; - } - - h3 { - color: var(--text-inverse); - font-size: 0.85rem; - text-transform: uppercase; - letter-spacing: 0.1em; - font-weight: 700; - margin-bottom: 1.5rem; - border-bottom: 1px solid #475569; - padding-bottom: 0.5rem; - margin-right: 1rem; - } - - ul { - li { - color: #cbd5e1; - font-size: 0.95rem; - margin-bottom: 0.75rem; - cursor: pointer; - transition: color 0.2s; - - &:hover { - color: white; - } - } - } -} - -@media (max-width: 720px) { - .window-titlebar { - flex-direction: column; - align-items: flex-start; - } - - .window-titlebar-controls { - width: 100%; - justify-content: flex-end; - } -} diff --git a/arma/client/addons/bank/ui/_site/bank.html b/arma/client/addons/bank/ui/_site/bank.html deleted file mode 100644 index a2e2b94..0000000 --- a/arma/client/addons/bank/ui/_site/bank.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - FDIC - Global Financial Network - - - - - - -
- - - - diff --git a/arma/client/addons/bank/ui/_site/bank.js b/arma/client/addons/bank/ui/_site/bank.js deleted file mode 100644 index 01f0acc..0000000 --- a/arma/client/addons/bank/ui/_site/bank.js +++ /dev/null @@ -1,575 +0,0 @@ -/** - * Bank App - Vanilla JS Implementation matching WIP UI - */ - -//============================================================================= -// #region LIBRARY - DOM Helper -//============================================================================= - -function h(tag, props = {}, ...children) { - const el = document.createElement(tag); - if (props) { - Object.entries(props).forEach(([key, value]) => { - if (key.startsWith("on") && typeof value === "function") { - el.addEventListener(key.substring(2).toLowerCase(), value); - } else if (key === "className") { - el.className = value; - } else if (key === "style" && typeof value === "object") { - Object.assign(el.style, value); - } else if ( - key === "disabled" || - key === "checked" || - key === "selected" || - key === "readonly" - ) { - if (value) el[key] = true; - } else { - el.setAttribute(key, value); - } - }); - } - children.forEach((child) => { - if (typeof child === "string" || typeof child === "number") { - el.appendChild(document.createTextNode(child)); - } else if (child instanceof Node) { - el.appendChild(child); - } else if (Array.isArray(child)) { - child.forEach((c) => { - if (c instanceof Node) el.appendChild(c); - }); - } - }); - return el; -} - -let _rootContainer = null; -let _rootComponent = null; - -function render(component, container) { - _rootContainer = container; - _rootComponent = component; - _render(); -} - -function _render() { - if (_rootContainer && _rootComponent) { - _rootContainer.innerHTML = ""; - _rootContainer.appendChild(_rootComponent()); - } -} - -//============================================================================= -// #region UI COMPONENTS -//============================================================================= - -function Navbar() { - const state = store.getState(); - const uid = state.uid || "Unknown"; - - return h( - "nav", - { className: "navbar" }, - h( - "div", - { className: "navbar-inner" }, - h( - "div", - { className: "navbar-brand" }, - h( - "span", - { className: "navbar-title" }, - "FDIC - Global Financial Network", - ), - ), - h( - "div", - { className: "navbar-profile" }, - h( - "div", - { className: "profile-info" }, - h("span", { className: "profile-label" }, "Account"), - h("span", { className: "profile-id" }, uid), - ), - ), - ), - ); -} - -function WindowTitleBar() { - return h( - "div", - { className: "window-titlebar" }, - h( - "div", - { className: "window-titlebar-brand" }, - h( - "span", - { className: "window-titlebar-kicker" }, - "FDIC Workspace", - ), - h( - "span", - { className: "window-titlebar-title" }, - "Global Financial Network", - ), - ), - h( - "div", - { className: "window-titlebar-controls" }, - h( - "button", - { - type: "button", - className: "window-control-btn", - disabled: true, - title: "Minimize unavailable", - "aria-label": "Minimize unavailable", - }, - "-", - ), - h( - "button", - { - type: "button", - className: "window-control-btn", - disabled: true, - title: "Maximize unavailable", - "aria-label": "Maximize unavailable", - }, - "[ ]", - ), - h( - "button", - { - type: "button", - className: "window-control-btn is-close", - onClick: () => sendEvent("bank::close", {}), - title: "Close", - "aria-label": "Close banking interface", - }, - "X", - ), - ), - ); -} - -function TransactionHistory() { - const state = store.getState(); - const transactions = state.transactions || []; - - return h( - "div", - { className: "card" }, - h( - "h3", - { - style: { - textAlign: "left", - borderBottom: "1px solid var(--border)", - paddingBottom: "1rem", - marginBottom: "1rem", - }, - }, - "Recent Transactions", - ), - transactions.length === 0 - ? h( - "p", - { style: { color: "var(--text-muted)" } }, - "No transactions yet", - ) - : h( - "ul", - { style: { listStyle: "none", padding: 0, margin: 0 } }, - transactions.slice(0, 10).map((tx) => { - const isCredit = tx.type === "Deposit"; - return h( - "li", - { - style: { - display: "flex", - justifyContent: "space-between", - padding: "0.75rem 0", - borderBottom: - "1px solid var(--bg-surface-hover)", - }, - }, - h( - "div", - { style: { textAlign: "left" } }, - h( - "div", - { style: { fontWeight: "500" } }, - tx.type, - ), - h( - "div", - { - style: { - fontSize: "0.85rem", - color: "var(--text-muted)", - }, - }, - tx.date, - ), - ), - h( - "div", - { - style: { - fontWeight: "700", - color: isCredit ? "#10b981" : "#ef4444", - }, - }, - (isCredit ? "+" : "-") + - "$" + - Math.abs(tx.amount).toLocaleString(), - ), - ); - }), - ), - ); -} - -function DepositWithdrawForm() { - const state = store.getState(); - const bankBalance = state.accounts.bank; - const cashBalance = state.accounts.cash; - - const getAmount = () => { - const input = document.getElementById("deposit-withdraw-amount"); - return parseFloat(input?.value) || 0; - }; - - const clearInput = () => { - const input = document.getElementById("deposit-withdraw-amount"); - if (input) input.value = ""; - }; - - const handleDeposit = () => { - const amount = getAmount(); - if (!amount || amount <= 0) { - console.log("Please enter a valid amount"); - return; - } - if (amount > cashBalance) { - console.log("Insufficient cash"); - return; - } - sendEvent("bank::deposit", { amount }); - store.dispatch(deposit(amount)); - clearInput(); - }; - - const handleWithdraw = () => { - const amount = getAmount(); - if (!amount || amount <= 0) { - console.log("Please enter a valid amount"); - return; - } - if (amount > bankBalance) { - console.log("Insufficient funds"); - return; - } - sendEvent("bank::withdraw", { amount }); - store.dispatch(withdraw(amount)); - clearInput(); - }; - - return h( - "div", - { className: "card" }, - h("h2", null, "Deposit / Withdraw"), - h( - "div", - { className: "balance-info" }, - h( - "div", - { className: "balance-info-item" }, - h("span", { className: "balance-info-label" }, "Cash"), - h( - "span", - { className: "balance-info-value cash" }, - "$" + cashBalance.toLocaleString(), - ), - ), - h( - "div", - { className: "balance-info-item" }, - h("span", { className: "balance-info-label" }, "Bank"), - h( - "span", - { className: "balance-info-value" }, - "$" + bankBalance.toLocaleString(), - ), - ), - ), - h( - "div", - { className: "deposit-withdraw-form" }, - h("input", { - id: "deposit-withdraw-amount", - type: "number", - placeholder: "Enter amount...", - min: "1", - }), - h( - "div", - { className: "deposit-withdraw-buttons" }, - h( - "button", - { onClick: handleDeposit, disabled: cashBalance <= 0 }, - "Deposit", - ), - h( - "button", - { onClick: handleWithdraw, disabled: bankBalance <= 0 }, - "Withdraw", - ), - ), - ), - ); -} - -function TransferForm() { - const state = store.getState(); - const players = state.accounts.players || {}; - const currentUid = state.uid; - - const handleSubmit = (e) => { - e.preventDefault(); - const formData = new FormData(e.target); - const amount = parseFloat(formData.get("amount")); - const playerId = formData.get("playerId"); - - if (!amount || amount <= 0) { - console.log("Please enter a valid amount"); - return; - } - - const currentState = store.getState(); - - if (!playerId) { - console.log("Please select a recipient"); - return; - } - - if (amount > currentState.accounts.bank) { - console.log("Insufficient funds"); - return; - } - - sendEvent("bank::transfer", { from: "bank", amount, target: playerId }); - store.dispatch(transfer("bank", amount, "player")); - e.target.reset(); - }; - - // Build player options - const playerOptions = [ - h( - "option", - { value: "", disabled: true, selected: true }, - "Select player...", - ), - ]; - Object.keys(players).forEach((uid) => { - if (uid !== currentUid && players[uid]?.name) { - playerOptions.push(h("option", { value: uid }, players[uid].name)); - } - }); - - return h( - "div", - { className: "card" }, - h("h2", null, "Wire Transfer"), - h( - "form", - { onSubmit: handleSubmit }, - h( - "div", - null, - h("label", null, "Recipient"), - h("select", { name: "playerId" }, playerOptions), - ), - h( - "div", - null, - h("label", null, "Amount"), - h("input", { - name: "amount", - type: "number", - placeholder: "0.00", - }), - ), - h("button", { type: "submit" }, "Send Funds"), - ), - ); -} - -function BankDashboard() { - const state = store.getState(); - const bankBalance = state.accounts.bank; - const earnings = state.accounts.earnings; - - return h( - "div", - { className: "content" }, - h( - "div", - { className: "card", style: { gridColumn: "span 2" } }, - h( - "h2", - { - style: { - fontSize: "1.2rem", - color: "var(--text-muted)", - textTransform: "uppercase", - letterSpacing: "0.05em", - }, - }, - "Account Balance", - ), - h( - "div", - { - style: { - fontSize: "2.8rem", - fontWeight: "800", - color: "var(--primary-hover)", - margin: "1rem 0", - }, - }, - "$" + bankBalance.toLocaleString(), - ), - h( - "div", - { - style: { - textAlign: "center", - color: "var(--text-muted)", - fontSize: "1.1rem", - marginBottom: "1rem", - }, - }, - "Pending: ", - h( - "span", - { style: { color: "#fbbf24", fontWeight: "bold" } }, - "$" + earnings.toLocaleString(), - ), - ), - h( - "div", - { className: "deposit-earnings-button" }, - h( - "button", - { - onClick: () => { - sendEvent("bank::depositEarnings", { - amount: earnings, - }); - store.dispatch(depositEarnings(earnings)); - }, - disabled: earnings <= 0, - style: { width: "25%" }, - }, - "Deposit Earnings", - ), - ), - ), - DepositWithdrawForm(), - TransferForm(), - h("div", { style: { gridColumn: "span 2" } }, TransactionHistory()), - ); -} - -function Footer() { - return h( - "div", - { className: "footer" }, - h( - "div", - { className: "wrapper" }, - h( - "div", - null, - h("h3", null, "Secure Banking"), - h( - "ul", - { style: { listStyleType: "none", padding: 0 } }, - h("li", null, "FDIC Insured"), - h("li", null, "Fraud Protection"), - h("li", null, "24/7 Support"), - h("li", null, "API Access"), - ), - ), - h( - "div", - null, - h("h3", null, "Notices"), - h( - "ul", - { style: { listStyleType: "none", padding: 0 } }, - h("li", null, "Terms of Service"), - h("li", null, "Privacy Policy"), - h("li", null, "Interest Rates"), - h("li", null, "Report Fraud"), - ), - ), - ), - ); -} - -function App() { - return h( - "div", - { className: "app-shell" }, - WindowTitleBar(), - h( - "main", - null, - Navbar(), - h("div", { className: "container" }, BankDashboard()), - Footer(), - ), - ); -} - -//============================================================================= -// #region ARMA 3 INTEGRATION -//============================================================================= - -function sendEvent(event, data) { - if (typeof A3API !== "undefined") { - A3API.SendAlert(JSON.stringify({ event, data })); - } else { - console.log("Event:", event, "Data:", data); - } -} - -//============================================================================= -// #region INITIALIZATION -//============================================================================= - -let initialized = false; - -function initBank() { - if (initialized) return; - - const root = document.getElementById("app"); - if (root) { - if (typeof store !== "undefined") { - store.subscribe(() => _render()); - } - - render(App, root); - initialized = true; - console.log("[Bank] Interface initialized"); - } -} - -if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initBank); -} else { - initBank(); -} diff --git a/arma/client/addons/bank/ui/_site/index.html b/arma/client/addons/bank/ui/_site/index.html new file mode 100644 index 0000000..002ba11 --- /dev/null +++ b/arma/client/addons/bank/ui/_site/index.html @@ -0,0 +1,64 @@ + + + + + + + FORGE Banking Console + + + + +
+ + diff --git a/arma/client/addons/bank/ui/_site/public/fdic.png b/arma/client/addons/bank/ui/_site/public/fdic.png deleted file mode 100644 index 579e74976974c3d8b7732a3bc1752bd69f77fb21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051164 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 z 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 GHUAFaa6}>i diff --git a/arma/client/addons/bank/ui/_site/public/fdic_co.paa b/arma/client/addons/bank/ui/_site/public/fdic_co.paa deleted file mode 100644 index 45fe964f3fb51781e785a280dae30160ca0ea50e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75410 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 diff --git a/arma/client/addons/bank/ui/_site/public/fms_co.paa b/arma/client/addons/bank/ui/_site/public/fms_co.paa deleted file mode 100644 index 9d32a24a61f6402abc7599a06ef804a894fd2ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60684 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%0DB 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%0A|z#u9`dW?N3jkq8*a$HdH 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߈ZB@F*#tEz2u+9IZD-X3!!y`d- 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%0DwNL6EI^Fa!3wcQQ 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 diff --git a/arma/client/addons/bank/ui/_site/store.js b/arma/client/addons/bank/ui/_site/store.js deleted file mode 100644 index 45c195f..0000000 --- a/arma/client/addons/bank/ui/_site/store.js +++ /dev/null @@ -1,305 +0,0 @@ -/** - * Banking Application Store - * Redux-like state management for bank and ATM interfaces - */ - -// ============================================================================ -// REDUX CORE IMPLEMENTATION -// ============================================================================ - -/** - * Creates a Redux-like store. - * @param {Function} reducer - A function that returns the next state tree - * @returns {Object} The store object with methods: getState, dispatch, subscribe - */ -function createStore(reducer) { - let state; - let listeners = []; - - const getState = () => state; - - const dispatch = (action) => { - state = reducer(state, action); - listeners.forEach((listener) => listener()); - }; - - const subscribe = (listener) => { - listeners.push(listener); - return () => { - listeners = listeners.filter((l) => l !== listener); - }; - }; - - // Initialize state - dispatch({}); - - return { getState, dispatch, subscribe }; -} - -// ============================================================================ -// STATE -// ============================================================================ - -const initialState = { - uid: "", - accounts: { - bank: 0, - cash: 0, - earnings: 0, - org: 0, - }, - pin: "1234", - transactions: [], -}; - -// ============================================================================ -// ACTION TYPES -// ============================================================================ - -const DEPOSIT = "DEPOSIT"; -const DEPOSIT_EARNINGS = "DEPOSIT_EARNINGS"; -const WITHDRAW = "WITHDRAW"; -const TRANSFER = "TRANSFER"; -const UPDATE_ACCOUNTS = "UPDATE_ACCOUNTS"; -const UPDATE_PIN = "UPDATE_PIN"; - -// ============================================================================ -// ACTION CREATORS -// ============================================================================ - -const deposit = (amount) => ({ - type: DEPOSIT, - payload: amount, -}); - -const depositEarnings = (amount) => ({ - type: DEPOSIT_EARNINGS, - payload: amount, -}); - -const withdraw = (amount) => ({ - type: WITHDRAW, - payload: amount, -}); - -const transfer = (from, amount, target) => ({ - type: TRANSFER, - from: from, - payload: amount, - target: target, -}); - -const updateAccounts = (accounts) => ({ - type: UPDATE_ACCOUNTS, - payload: accounts, -}); - -const updatePin = (pin) => ({ - type: UPDATE_PIN, - payload: pin, -}); - -// ============================================================================ -// REDUCER -// ============================================================================ - -function appReducer(state = initialState, action) { - switch (action.type) { - case DEPOSIT: - if (state.accounts.cash < action.payload) { - console.warn("Insufficient cash!"); - return state; - } - return { - ...state, - accounts: { - ...state.accounts, - bank: state.accounts.bank + action.payload, - cash: state.accounts.cash - action.payload, - }, - transactions: [ - ...state.transactions, - { - type: "Deposit", - amount: action.payload, - date: new Date().toLocaleString(), - }, - ], - }; - - case DEPOSIT_EARNINGS: - if (state.accounts.earnings < action.payload) { - console.warn("Insufficient earnings!"); - return state; - } - return { - ...state, - accounts: { - ...state.accounts, - bank: state.accounts.bank + action.payload, - earnings: state.accounts.earnings - action.payload, - }, - transactions: [ - ...state.transactions, - { - type: "Deposit Earnings", - amount: action.payload, - date: new Date().toLocaleString(), - }, - ], - }; - - case WITHDRAW: - if (state.accounts.bank < action.payload) { - console.warn("Insufficient funds!"); - return state; - } - return { - ...state, - accounts: { - ...state.accounts, - bank: state.accounts.bank - action.payload, - cash: state.accounts.cash + action.payload, - }, - transactions: [ - ...state.transactions, - { - type: "Withdraw", - amount: action.payload, - date: new Date().toLocaleString(), - }, - ], - }; - - case TRANSFER: - const fromAccount = action.from; - if (state.accounts[fromAccount] < action.payload) { - console.warn("Insufficient funds!"); - return state; - } - - const newAccounts = { ...state.accounts }; - newAccounts[fromAccount] -= action.payload; - - return { - ...state, - accounts: newAccounts, - transactions: [ - ...state.transactions, - { - type: "Transfer", - amount: action.payload, - from: fromAccount, - target: action.target, - date: new Date().toLocaleString(), - }, - ], - }; - - case UPDATE_ACCOUNTS: - return { - ...state, - accounts: { - ...state.accounts, - ...action.payload, - }, - }; - - case UPDATE_PIN: - return { - ...state, - pin: String(action.payload), - }; - - case "SET_UID": - return { - ...state, - uid: action.payload, - }; - - default: - return state; - } -} - -// ============================================================================ -// STORE INSTANCE -// ============================================================================ - -const store = createStore(appReducer); - -// ============================================================================ -// ARMA 3 INTEGRATION -// ============================================================================ - -/** - * Sends an event to Arma 3 - * @param {string} event - Event name - * @param {Object} data - Event data - */ -function sendEvent(event, data) { - if (typeof A3API !== "undefined") { - A3API.SendAlert( - JSON.stringify({ - event: event, - data: data, - }), - ); - } else { - console.log("Event:", event, "Data:", data); - } -} - -/** - * Syncs account data from Arma 3 into the store - * @param {Object} data - Account data from Arma 3 - */ -function syncDataFromArma(data) { - if (data && typeof data === "object") { - const accounts = {}; - - if (data.bank !== undefined) accounts.bank = data.bank; - if (data.cash !== undefined) accounts.cash = data.cash; - if (data.earnings !== undefined) accounts.earnings = data.earnings; - if (data.org !== undefined) accounts.org = data.org; - if (data.players !== undefined) accounts.players = data.players; - - if (Object.keys(accounts).length > 0) { - store.dispatch(updateAccounts(accounts)); - } - - // Update UID if provided - if (data.uid !== undefined && data.uid !== store.getState().uid) { - store.dispatch({ type: "SET_UID", payload: data.uid }); - } - - // Update pin if provided - if (data.pin !== undefined) { - store.dispatch(updatePin(data.pin)); - } - - console.log( - "[Store] Synced data from Arma:", - store.getState().accounts, - ); - } else { - console.warn("[Store] Invalid data received:", data); - } -} - -// ============================================================================ -// INITIALIZATION -// ============================================================================ - -// Request initial data from Arma on load -if (typeof A3API !== "undefined") { - // Delay request slightly to ensure everything is loaded - setTimeout(() => { - sendEvent("bank::sync", {}); - }, 100); -} - -// Expose sync function globally for Arma to call -if (typeof window !== "undefined") { - window.syncDataFromArma = syncDataFromArma; -} diff --git a/arma/client/addons/bank/ui/src/bootstrap.js b/arma/client/addons/bank/ui/src/bootstrap.js new file mode 100644 index 0000000..6496e13 --- /dev/null +++ b/arma/client/addons/bank/ui/src/bootstrap.js @@ -0,0 +1,116 @@ +(function () { + const ForgeWebUI = window.ForgeWebUI; + const BankApp = window.BankApp; + const islandDefinitions = [ + { + id: "bank-notice-root", + preserveScroll: false, + render: () => BankApp.componentFns.NoticeLayer(), + }, + { + id: "bank-sidebar-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSidebar(), + }, + { + id: "bank-page-header-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankPageHeader(), + }, + { + id: "bank-summary-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSummarySection(), + }, + { + id: "bank-action-sections-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankActionSections(), + }, + { + id: "bank-support-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankSupportSection(), + }, + { + id: "bank-history-section-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankHistorySection(), + }, + { + id: "bank-atm-root", + preserveScroll: false, + render: () => BankApp.componentFns.ATMView(), + }, + { + id: "bank-footer-root", + preserveScroll: false, + render: () => BankApp.componentFns.BankFooter(), + }, + ]; + + function createIslandManager() { + const mounts = new Map(); + + function sync() { + islandDefinitions.forEach((definition) => { + const container = document.getElementById(definition.id); + const current = mounts.get(definition.id); + + if (!container) { + if (current) { + current.handle.dispose(); + mounts.delete(definition.id); + } + return; + } + + if (current && current.container === container) { + return; + } + + if (current) { + current.handle.dispose(); + } + + const handle = ForgeWebUI.mount(container, definition.render, { + preserveScroll: definition.preserveScroll, + }); + mounts.set(definition.id, { + container, + handle, + }); + }); + } + + return { + sync, + }; + } + + const app = ForgeWebUI.createApp({ + name: "bank", + root: "#app", + setup({ root }) { + const islandManager = createIslandManager(); + + ForgeWebUI.mount(root, () => BankApp.components.App(), { + preserveScroll: false, + }); + + if (BankApp.bridge) { + BankApp.bridge.notifyReady(); + } + + ForgeWebUI.effect(() => { + BankApp.store.getMode(); + + requestAnimationFrame(() => { + islandManager.sync(); + }); + }); + }, + }); + + app.start(); +})(); diff --git a/arma/client/addons/bank/ui/src/bridge.js b/arma/client/addons/bank/ui/src/bridge.js new file mode 100644 index 0000000..1ceed4e --- /dev/null +++ b/arma/client/addons/bank/ui/src/bridge.js @@ -0,0 +1,51 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const store = BankApp.store; + const bridge = window.ForgeWebUI.createBridge({ + closeEvent: "bank::close", + globalName: "ForgeBridge", + readyEvent: "bank::ready", + }); + + function hydrate(payloadData) { + BankApp.data.applyHydratePayload(payloadData); + store.hydrateFromPayload(payloadData); + } + + bridge.on("bank::hydrate", hydrate); + bridge.on("bank::sync", hydrate); + bridge.on("bank::notice", (payloadData) => { + if (BankApp.actions) { + BankApp.actions.showNotice( + payloadData.type || "error", + payloadData.message || "Bank notice received.", + ); + } + }); + + BankApp.bridge = { + notifyReady() { + return bridge.ready({ loaded: true }); + }, + receive: bridge.receive, + requestClose() { + return bridge.close({}); + }, + requestDeposit(payload) { + return bridge.send("bank::deposit::request", payload); + }, + requestDepositEarnings(payload) { + return bridge.send("bank::depositEarnings::request", payload); + }, + requestRefresh() { + return bridge.send("bank::refresh", {}); + }, + requestTransfer(payload) { + return bridge.send("bank::transfer::request", payload); + }, + requestWithdraw(payload) { + return bridge.send("bank::withdraw::request", payload); + }, + sendEvent: bridge.send, + }; +})(); diff --git a/arma/client/addons/bank/ui/src/components/AppShell.js b/arma/client/addons/bank/ui/src/components/AppShell.js new file mode 100644 index 0000000..4cb7359 --- /dev/null +++ b/arma/client/addons/bank/ui/src/components/AppShell.js @@ -0,0 +1,104 @@ +(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" }), + ], + ), + ], + ); + }; +})(); diff --git a/arma/client/addons/bank/ui/src/components/BankSidebar.js b/arma/client/addons/bank/ui/src/components/BankSidebar.js new file mode 100644 index 0000000..6199abf --- /dev/null +++ b/arma/client/addons/bank/ui/src/components/BankSidebar.js @@ -0,0 +1,91 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account, session } = BankApp.data; + const { formatCurrency, statCard } = BankApp.componentFns; + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankSidebar = function BankSidebar() { + store.getAccountVersion(); + store.getSessionVersion(); + + return h( + "aside", + { className: "bank-sidebar" }, + h( + "section", + { className: "bank-module" }, + h( + "div", + { className: "bank-module-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Account"), + h( + "h2", + { className: "bank-section-title" }, + "Balances", + ), + ), + h("span", { className: "bank-pill" }, "Live"), + ), + h( + "div", + { className: "bank-summary-grid" }, + statCard("Bank", formatCurrency(account.bank), "accent"), + statCard("Cash", formatCurrency(account.cash)), + statCard( + "Earnings", + formatCurrency(account.earnings), + account.earnings > 0 ? "warning" : "", + ), + statCard( + "Org Funds", + formatCurrency(session.orgFunds), + session.orgFunds > 0 ? "success" : "", + ), + ), + ), + h( + "section", + { className: "bank-module" }, + h( + "div", + { className: "bank-module-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Profile"), + h( + "h2", + { className: "bank-section-title" }, + "Account Holder", + ), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.refreshBank(), + }, + "Refresh", + ), + ), + h( + "div", + { className: "bank-profile-stack" }, + statCard("Name", session.playerName || "Unknown"), + statCard("UID", session.uid || "-"), + statCard( + "Organization", + session.orgName || "No active organization", + ), + ), + ), + ); + }; +})(); diff --git a/arma/client/addons/bank/ui/src/components/Footer.js b/arma/client/addons/bank/ui/src/components/Footer.js new file mode 100644 index 0000000..607e333 --- /dev/null +++ b/arma/client/addons/bank/ui/src/components/Footer.js @@ -0,0 +1,72 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const { account, session } = BankApp.data; + const { formatCurrency } = BankApp.componentFns; + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankFooter = function BankFooter() { + store.getAccountVersion(); + store.getSessionVersion(); + + const sections = [ + { + title: "Banking Resources", + items: [ + "Account Access Policy", + "Transfer & Wire Guidelines", + "Cash Handling Schedule", + "Terminal Security Notice", + ], + }, + { + title: "Bank Support", + items: session.orgName + ? [ + `Organization: ${session.orgName}`, + `Treasury Reference: ${formatCurrency(session.orgFunds)}`, + `${session.transferTargets.length} transfer recipient(s) currently visible.`, + `Primary Ledger: ${formatCurrency(account.bank)}`, + ] + : [ + "Organization: No active treasury link", + `${session.transferTargets.length} transfer recipient(s) currently visible.`, + `Primary Ledger: ${formatCurrency(account.bank)}`, + `Cash On Hand: ${formatCurrency(account.cash)}`, + ], + }, + ]; + + return h( + "footer", + { className: "bank-footer-bar" }, + h( + "div", + { className: "bank-footer" }, + ...sections.map((section) => + h( + "div", + { className: "bank-footer-block" }, + h( + "h3", + { className: "bank-footer-title" }, + section.title, + ), + h( + "ul", + { className: "bank-footer-list" }, + ...(section.items || []).map((item) => + h( + "li", + { className: "bank-footer-copy" }, + item, + ), + ), + ), + ), + ), + ), + ); + }; +})(); diff --git a/arma/client/addons/bank/ui/src/components/common.js b/arma/client/addons/bank/ui/src/components/common.js new file mode 100644 index 0000000..4cdd707 --- /dev/null +++ b/arma/client/addons/bank/ui/src/components/common.js @@ -0,0 +1,189 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const { account } = BankApp.data; + + function formatCurrency(value) { + return `$${Math.round(Number(value || 0)).toLocaleString()}`; + } + + function pending(actionName) { + return store.getPendingAction() === actionName; + } + + function statCard(label, value, tone = "") { + return h( + "div", + { + className: tone + ? `bank-stat-card is-${tone}` + : "bank-stat-card", + }, + h("span", { className: "bank-stat-label" }, label), + h("span", { className: "bank-stat-value" }, value), + ); + } + + function metricCard(label, value, copy, tone = "") { + return h( + "div", + { + className: tone + ? `bank-metric-card is-${tone}` + : "bank-metric-card", + }, + h("span", { className: "bank-eyebrow" }, label), + h("span", { className: "bank-metric-value" }, value), + h("span", { className: "bank-metric-copy" }, copy), + ); + } + + function pinIndicators(value) { + const pin = String(value || ""); + + return h( + "div", + { className: "bank-pin-indicators" }, + [0, 1, 2, 3].map((index) => + h("span", { + className: + index < pin.length + ? "bank-pin-indicator is-filled" + : "bank-pin-indicator", + }), + ), + ); + } + + function readInputValue(id) { + return document.getElementById(id)?.value || ""; + } + + function clearInputValue(id) { + const input = document.getElementById(id); + if (input) { + input.value = ""; + } + } + + function keypad(onDigit, onBackspace, onClear, onEnter) { + const keys = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]; + + return h( + "div", + { className: "bank-keypad" }, + keys.map((digit) => + h( + "button", + { + type: "button", + className: "bank-key", + onClick: () => onDigit(digit), + }, + digit, + ), + ), + h( + "button", + { + type: "button", + className: "bank-key is-muted", + onClick: onClear, + }, + "C", + ), + h( + "button", + { + type: "button", + className: "bank-key", + onClick: () => onDigit("0"), + }, + "0", + ), + h( + "button", + { + type: "button", + className: "bank-key is-accent", + onClick: onEnter, + }, + "Enter", + ), + h( + "button", + { + type: "button", + className: "bank-key is-wide", + onClick: onBackspace, + }, + "Backspace", + ), + ); + } + + function transactionRows() { + const transactions = Array.isArray(account.transactions) + ? account.transactions + : []; + + if (transactions.length === 0) { + return h( + "div", + { className: "bank-empty-state" }, + h("h3", { className: "bank-empty-title" }, "No transactions"), + h( + "p", + { className: "bank-empty-copy" }, + "Deposits, withdrawals, and transfers will appear here after the account begins moving funds.", + ), + ); + } + + return h( + "div", + { className: "bank-history-list" }, + transactions + .slice(0, 8) + .map((entry) => + h( + "div", + { className: "bank-history-row" }, + h( + "div", + { className: "bank-history-copy" }, + h( + "span", + { className: "bank-history-title" }, + entry.type || "Transaction", + ), + h( + "span", + { className: "bank-history-meta" }, + entry.date || "Pending timestamp", + ), + ), + h( + "span", + { className: "bank-history-value" }, + formatCurrency(entry.amount || 0), + ), + ), + ), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + Object.assign(BankApp.componentFns, { + clearInputValue, + formatCurrency, + keypad, + metricCard, + pending, + pinIndicators, + readInputValue, + statCard, + transactionRows, + }); +})(); diff --git a/arma/client/addons/bank/ui/src/data.js b/arma/client/addons/bank/ui/src/data.js new file mode 100644 index 0000000..856ca90 --- /dev/null +++ b/arma/client/addons/bank/ui/src/data.js @@ -0,0 +1,44 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + + const defaultSession = { + mode: "bank", + orgFunds: 0, + orgName: "", + playerName: "", + transferTargets: [], + uid: "", + }; + + const defaultAccount = { + bank: 0, + cash: 0, + earnings: 0, + pin: "1234", + transactions: [], + }; + + function cloneValue(value) { + return JSON.parse(JSON.stringify(value)); + } + + function replaceObject(target, source) { + Object.keys(target).forEach((key) => delete target[key]); + Object.assign(target, cloneValue(source)); + } + + BankApp.data = { + account: Object.assign({}, defaultAccount), + session: Object.assign({}, defaultSession), + applyHydratePayload(payload) { + replaceObject( + this.session, + Object.assign({}, defaultSession, payload?.session || {}), + ); + replaceObject( + this.account, + Object.assign({}, defaultAccount, payload?.account || {}), + ); + }, + }; +})(); diff --git a/arma/client/addons/bank/ui/src/pages/ATMView.js b/arma/client/addons/bank/ui/src/pages/ATMView.js new file mode 100644 index 0000000..a64984c --- /dev/null +++ b/arma/client/addons/bank/ui/src/pages/ATMView.js @@ -0,0 +1,238 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account } = BankApp.data; + const { formatCurrency, keypad, pinIndicators } = BankApp.componentFns; + + function atmMenuCard() { + return h( + "div", + { className: "bank-atm-action-grid" }, + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("withdraw"), + }, + "Withdraw Cash", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("deposit"), + }, + "Deposit Cash", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("balance"), + }, + "Check Balance", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.closeBank(), + }, + "Exit Terminal", + ), + ); + } + + function atmAmountMenu(kind) { + const label = kind === "deposit" ? "Deposit" : "Withdraw"; + const amounts = [20, 50, 100, 500]; + + return h( + "div", + { className: "bank-atm-action-grid" }, + amounts.map((amount) => + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.requestAtmAmount(kind, amount), + }, + `${label} ${formatCurrency(amount)}`, + ), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => + actions.selectAtmView( + kind === "deposit" + ? "customDeposit" + : "customWithdraw", + ), + }, + "Custom Amount", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("menu"), + }, + "Back", + ), + ); + } + + function atmCustomAmount(kind) { + const label = kind === "deposit" ? "Deposit" : "Withdraw"; + + return h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-pin-display" }, + store.getCustomAmount() + ? formatCurrency(store.getCustomAmount()) + : "$0", + ), + keypad( + actions.appendCustomAmountDigit, + actions.backspaceCustomAmount, + actions.clearCustomAmount, + () => actions.submitCustomAmount(kind), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.selectAtmView("menu"), + }, + `Cancel ${label}`, + ), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.ATMView = function ATMView() { + store.getAccountVersion(); + const atmViewName = store.getAtmView(); + const enteredPin = String(store.getEnteredPin() || ""); + let title = "Terminal Access"; + let copy = + "Authenticate with the four-digit account PIN before using the terminal."; + let content = null; + + switch (atmViewName) { + case "menu": + title = "ATM Menu"; + copy = + "Select a banking action. The ATM can deposit, withdraw, and show the live account balance."; + content = atmMenuCard(); + break; + case "withdraw": + title = "Withdraw Cash"; + copy = + "Choose a preset amount or enter a custom amount for withdrawal."; + content = atmAmountMenu("withdraw"); + break; + case "deposit": + title = "Deposit Cash"; + copy = + "Move cash on hand back into the main bank balance from the terminal."; + content = atmAmountMenu("deposit"); + break; + case "customWithdraw": + title = "Custom Withdraw"; + copy = "Enter the exact withdrawal amount."; + content = atmCustomAmount("withdraw"); + break; + case "customDeposit": + title = "Custom Deposit"; + copy = "Enter the exact deposit amount."; + content = atmCustomAmount("deposit"); + break; + case "balance": + title = "Available Balance"; + copy = "Current bank balance available at this terminal."; + content = h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-balance-display" }, + formatCurrency(account.bank), + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + onClick: () => actions.selectAtmView("menu"), + }, + "Return to Menu", + ), + ); + break; + default: + content = h( + "div", + { className: "bank-atm-stack" }, + h( + "div", + { className: "bank-pin-display" }, + pinIndicators(enteredPin), + ), + keypad( + actions.appendPinDigit, + actions.backspacePin, + actions.clearPin, + actions.submitPin, + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + onClick: () => actions.closeBank(), + }, + "Exit Terminal", + ), + ); + break; + } + + return h( + "div", + { className: "bank-atm-shell" }, + h( + "section", + { className: "bank-atm-panel" }, + h( + "div", + { className: "bank-panel-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "ATM"), + h("h1", { className: "bank-title" }, title), + ), + h("span", { className: "bank-pill" }, "Secure Terminal"), + ), + h("p", { className: "bank-panel-copy" }, copy), + content, + ), + ); + }; +})(); diff --git a/arma/client/addons/bank/ui/src/pages/BankView.js b/arma/client/addons/bank/ui/src/pages/BankView.js new file mode 100644 index 0000000..e3f8f0a --- /dev/null +++ b/arma/client/addons/bank/ui/src/pages/BankView.js @@ -0,0 +1,321 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { h } = BankApp.runtime; + const store = BankApp.store; + const actions = BankApp.actions; + const { account, session } = BankApp.data; + const { + clearInputValue, + formatCurrency, + metricCard, + pending, + readInputValue, + transactionRows, + } = BankApp.componentFns; + + function trackAccount() { + store.getAccountVersion(); + } + + function trackSession() { + store.getSessionVersion(); + } + + function pageHeader() { + trackSession(); + + return h( + "div", + { className: "bank-page-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Treasury Desk"), + h("h1", { className: "bank-title" }, "Personal Banking"), + ), + h( + "span", + { className: "bank-pill" }, + session.playerName || "Account Holder", + ), + ); + } + + function summarySection() { + trackAccount(); + trackSession(); + + return h( + "section", + { className: "bank-page-section bank-summary-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Overview"), + h( + "h2", + { className: "bank-section-title" }, + "Financial Position", + ), + ), + h("span", { className: "bank-pill" }, "Banking Desk"), + ), + h( + "div", + { className: "bank-summary-band" }, + metricCard( + "Primary Balance", + formatCurrency(account.bank), + "Available for transfers and withdrawals.", + "accent", + ), + metricCard( + "Cash On Hand", + formatCurrency(account.cash), + "Funds currently carried by the player.", + ), + metricCard( + "Pending Earnings", + formatCurrency(account.earnings), + "Ready to sweep into the main account ledger.", + account.earnings > 0 ? "warning" : "", + ), + metricCard( + "Org Snapshot", + formatCurrency(session.orgFunds), + "Reference value pulled from the organization treasury.", + session.orgFunds > 0 ? "success" : "", + ), + ), + ); + } + + function actionSections() { + trackSession(); + + return h( + "div", + { className: "bank-action-sections" }, + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Movement"), + h( + "h2", + { className: "bank-section-title" }, + "Deposit / Withdraw", + ), + ), + ), + h( + "div", + { className: "bank-form-stack" }, + h("input", { + id: "bank-amount-input", + className: "bank-input", + type: "number", + min: "1", + placeholder: "Enter amount", + }), + h( + "div", + { className: "bank-action-row" }, + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: pending("deposit"), + onClick: () => { + const sent = actions.requestDeposit( + readInputValue("bank-amount-input"), + ); + if (sent) { + clearInputValue("bank-amount-input"); + } + }, + }, + pending("deposit") ? "Depositing..." : "Deposit", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-secondary", + disabled: pending("withdraw"), + onClick: () => { + const sent = actions.requestWithdraw( + readInputValue("bank-amount-input"), + ); + if (sent) { + clearInputValue("bank-amount-input"); + } + }, + }, + pending("withdraw") ? "Withdrawing..." : "Withdraw", + ), + ), + ), + ), + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Transfer"), + h( + "h2", + { className: "bank-section-title" }, + "Wire Funds", + ), + ), + ), + h( + "div", + { className: "bank-form-stack" }, + h( + "select", + { + id: "bank-transfer-target", + className: "bank-select", + }, + h( + "option", + { value: "" }, + session.transferTargets.length > 0 + ? "Select recipient" + : "No available recipients", + ), + session.transferTargets.map((entry) => + h( + "option", + { value: entry.uid }, + entry.name || entry.uid, + ), + ), + ), + h("input", { + id: "bank-transfer-amount", + className: "bank-input", + type: "number", + min: "1", + placeholder: "Enter transfer amount", + }), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: + pending("transfer") || + session.transferTargets.length === 0, + onClick: () => { + const sent = actions.requestTransfer( + readInputValue("bank-transfer-target"), + readInputValue("bank-transfer-amount"), + ); + if (sent) { + clearInputValue("bank-transfer-amount"); + } + }, + }, + pending("transfer") + ? "Transferring..." + : "Transfer Funds", + ), + ), + ), + ); + } + + function supportSection() { + trackAccount(); + + return h( + "div", + { className: "bank-support-sections" }, + h( + "section", + { className: "bank-page-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "Sweep"), + h( + "h2", + { className: "bank-section-title" }, + "Deposit Earnings", + ), + ), + ), + h( + "p", + { className: "bank-card-copy" }, + "Sweep pending earnings into the primary account when you want them reflected in the main balance.", + ), + h( + "button", + { + type: "button", + className: "bank-btn bank-btn-primary", + disabled: + pending("depositearnings") || + Number(account.earnings || 0) <= 0, + onClick: () => + actions.requestDepositEarnings(account.earnings), + }, + pending("depositearnings") + ? "Depositing..." + : "Deposit Earnings", + ), + ), + ); + } + + function historySection() { + trackAccount(); + + return h( + "section", + { className: "bank-page-section bank-history-section" }, + h( + "div", + { className: "bank-section-header" }, + h( + "div", + null, + h("span", { className: "bank-eyebrow" }, "History"), + h( + "h2", + { className: "bank-section-title" }, + "Recent Transactions", + ), + ), + ), + transactionRows(), + ); + } + + BankApp.componentFns = BankApp.componentFns || {}; + BankApp.componentFns.BankPageHeader = pageHeader; + BankApp.componentFns.BankSummarySection = summarySection; + BankApp.componentFns.BankActionSections = actionSections; + BankApp.componentFns.BankSupportSection = supportSection; + BankApp.componentFns.BankHistorySection = historySection; +})(); diff --git a/arma/client/addons/bank/ui/src/registry/events.js b/arma/client/addons/bank/ui/src/registry/events.js new file mode 100644 index 0000000..01facaa --- /dev/null +++ b/arma/client/addons/bank/ui/src/registry/events.js @@ -0,0 +1,343 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const store = BankApp.store; + + let noticeTimer = null; + + function getAccount() { + return BankApp.data?.account || {}; + } + + function getSession() { + return BankApp.data?.session || {}; + } + + function normalizeAmount(value) { + const amount = Math.floor(Number(value || 0)); + return Number.isFinite(amount) ? amount : 0; + } + + function showNotice(type, text) { + store.setNotice({ type, text }); + + if (noticeTimer) { + clearTimeout(noticeTimer); + } + + noticeTimer = setTimeout(() => { + store.setNotice({ text: "", type: "" }); + noticeTimer = null; + }, 3200); + } + + function closeBank() { + const bridge = BankApp.bridge; + if (bridge && typeof bridge.requestClose === "function") { + const sent = bridge.requestClose(); + if (sent) { + return true; + } + } + + showNotice("error", "Bank bridge is unavailable."); + return false; + } + + function refreshBank() { + const bridge = BankApp.bridge; + if (bridge && typeof bridge.requestRefresh === "function") { + const sent = bridge.requestRefresh(); + if (sent) { + return true; + } + } + + showNotice("error", "Bank refresh bridge is unavailable."); + return false; + } + + function requestDeposit(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "Enter a valid deposit amount."); + return false; + } + + if (amount > Number(account.cash || 0)) { + showNotice("error", "Cash on hand cannot cover that deposit."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestDeposit !== "function") { + showNotice("error", "Deposit bridge is unavailable."); + return false; + } + + store.startAction("deposit"); + const sent = bridge.requestDeposit({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Deposit bridge is unavailable."); + return false; + } + + return true; + } + + function requestWithdraw(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "Enter a valid withdrawal amount."); + return false; + } + + if (amount > Number(account.bank || 0)) { + showNotice("error", "Bank balance cannot cover that withdrawal."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestWithdraw !== "function") { + showNotice("error", "Withdraw bridge is unavailable."); + return false; + } + + store.startAction("withdraw"); + const sent = bridge.requestWithdraw({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Withdraw bridge is unavailable."); + return false; + } + + return true; + } + + function requestTransfer(targetUid, amountValue) { + const amount = normalizeAmount(amountValue); + const session = getSession(); + const account = getAccount(); + const targetId = String(targetUid || "").trim(); + + if (!targetId) { + showNotice("error", "Select a transfer recipient."); + return false; + } + + if (targetId === String(session.uid || "")) { + showNotice("error", "You cannot transfer funds to yourself."); + return false; + } + + if (amount <= 0) { + showNotice("error", "Enter a valid transfer amount."); + return false; + } + + if (amount > Number(account.bank || 0)) { + showNotice("error", "Bank balance cannot cover that transfer."); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestTransfer !== "function") { + showNotice("error", "Transfer bridge is unavailable."); + return false; + } + + store.startAction("transfer"); + const sent = bridge.requestTransfer({ + amount, + from: "bank", + target: targetId, + }); + if (!sent) { + store.finishAction(); + showNotice("error", "Transfer bridge is unavailable."); + return false; + } + + return true; + } + + function requestDepositEarnings(amountValue) { + const amount = normalizeAmount(amountValue); + const account = getAccount(); + + if (amount <= 0) { + showNotice("error", "No earnings are available to deposit."); + return false; + } + + if (amount > Number(account.earnings || 0)) { + showNotice( + "error", + "Pending earnings cannot cover that deposit request.", + ); + return false; + } + + const bridge = BankApp.bridge; + if (!bridge || typeof bridge.requestDepositEarnings !== "function") { + showNotice("error", "Earnings bridge is unavailable."); + return false; + } + + store.startAction("depositearnings"); + const sent = bridge.requestDepositEarnings({ amount }); + if (!sent) { + store.finishAction(); + showNotice("error", "Earnings bridge is unavailable."); + return false; + } + + return true; + } + + function appendPinDigit(digit) { + const nextDigit = String(digit || "").trim(); + if (!nextDigit) { + return; + } + + const currentPin = String(store.getEnteredPin() || ""); + if (currentPin.length >= 4) { + return; + } + + store.setEnteredPin(currentPin + nextDigit); + } + + function backspacePin() { + const currentPin = String(store.getEnteredPin() || ""); + store.setEnteredPin(currentPin.slice(0, -1)); + } + + function clearPin() { + store.setEnteredPin(""); + } + + function submitPin() { + const enteredPin = String(store.getEnteredPin() || ""); + const actualPin = String(getAccount().pin || "1234"); + + if (enteredPin.length !== 4) { + showNotice("error", "Enter your four-digit access PIN."); + return false; + } + + if (enteredPin !== actualPin) { + clearPin(); + showNotice("error", "Incorrect PIN."); + return false; + } + + clearPin(); + store.setAtmView("menu"); + return true; + } + + function selectAtmView(view) { + const nextView = String(view || "").trim(); + if (!nextView) { + return false; + } + + if (nextView === "pin") { + store.resetAtm(); + return true; + } + + store.setCustomAmount(""); + store.setAtmView(nextView); + return true; + } + + function appendCustomAmountDigit(digit) { + const nextDigit = String(digit || "").trim(); + if (!nextDigit) { + return; + } + + const currentValue = String(store.getCustomAmount() || ""); + if (currentValue.length >= 7) { + return; + } + + store.setCustomAmount(currentValue + nextDigit); + } + + function backspaceCustomAmount() { + const currentValue = String(store.getCustomAmount() || ""); + store.setCustomAmount(currentValue.slice(0, -1)); + } + + function clearCustomAmount() { + store.setCustomAmount(""); + } + + function submitCustomAmount(kind) { + const amount = normalizeAmount(store.getCustomAmount()); + const nextKind = String(kind || "") + .trim() + .toLowerCase(); + + if (amount <= 0) { + showNotice("error", "Enter a valid transaction amount."); + return false; + } + + const success = + nextKind === "deposit" + ? requestDeposit(amount) + : requestWithdraw(amount); + + if (success) { + store.setCustomAmount(""); + store.setAtmView("menu"); + } + + return success; + } + + function requestAtmAmount(kind, amount) { + const nextKind = String(kind || "") + .trim() + .toLowerCase(); + const success = + nextKind === "deposit" + ? requestDeposit(amount) + : requestWithdraw(amount); + + if (success) { + store.setAtmView("menu"); + } + + return success; + } + + BankApp.actions = { + appendCustomAmountDigit, + appendPinDigit, + backspaceCustomAmount, + backspacePin, + clearCustomAmount, + clearPin, + closeBank, + refreshBank, + requestAtmAmount, + requestDeposit, + requestDepositEarnings, + requestTransfer, + requestWithdraw, + selectAtmView, + showNotice, + submitCustomAmount, + submitPin, + }; +})(); diff --git a/arma/client/addons/bank/ui/src/registry/store.js b/arma/client/addons/bank/ui/src/registry/store.js new file mode 100644 index 0000000..56b7233 --- /dev/null +++ b/arma/client/addons/bank/ui/src/registry/store.js @@ -0,0 +1,63 @@ +(function () { + const BankApp = (window.BankApp = window.BankApp || {}); + const { createSignal } = BankApp.runtime; + + class BankStore { + constructor() { + [this.getMode, this.setMode] = createSignal("bank"); + [this.getNotice, this.setNotice] = createSignal({ + text: "", + type: "", + }); + [this.getPendingAction, this.setPendingAction] = createSignal(""); + [this.getAtmView, this.setAtmView] = createSignal("pin"); + [this.getEnteredPin, this.setEnteredPin] = createSignal(""); + [this.getCustomAmount, this.setCustomAmount] = createSignal(""); + [this.getAccountVersion, this.setAccountVersion] = createSignal(0); + [this.getSessionVersion, this.setSessionVersion] = createSignal(0); + } + + finishAction() { + this.setPendingAction(""); + } + + hydrateFromPayload(payload) { + const mode = String(payload?.session?.mode || "bank") + .trim() + .toLowerCase(); + const currentMode = this.getMode(); + const currentAtmView = this.getAtmView(); + + this.setMode(mode === "atm" ? "atm" : "bank"); + this.setPendingAction(""); + this.setNotice({ text: "", type: "" }); + this.setEnteredPin(""); + this.setCustomAmount(""); + this.setAccountVersion(this.getAccountVersion() + 1); + this.setSessionVersion(this.getSessionVersion() + 1); + + if (mode === "atm") { + this.setAtmView(currentMode === "atm" ? currentAtmView : "pin"); + return; + } + + this.setAtmView("dashboard"); + } + + resetAtm() { + this.setEnteredPin(""); + this.setCustomAmount(""); + this.setAtmView("pin"); + } + + startAction(action) { + this.setPendingAction( + String(action || "") + .trim() + .toLowerCase(), + ); + } + } + + BankApp.store = new BankStore(); +})(); diff --git a/arma/client/addons/bank/ui/src/runtime.js b/arma/client/addons/bank/ui/src/runtime.js new file mode 100644 index 0000000..b51513e --- /dev/null +++ b/arma/client/addons/bank/ui/src/runtime.js @@ -0,0 +1,6 @@ +(function () { + const runtime = window.ForgeWebUI; + const BankApp = (window.BankApp = window.BankApp || {}); + BankApp.runtime = runtime; + window.AppRuntime = runtime; +})(); diff --git a/arma/client/addons/bank/ui/src/styles.css b/arma/client/addons/bank/ui/src/styles.css new file mode 100644 index 0000000..c418b82 --- /dev/null +++ b/arma/client/addons/bank/ui/src/styles.css @@ -0,0 +1,590 @@ +:root { + --bank-shell-bg: #f6f4ee; + --bank-surface: linear-gradient(180deg, #ffffff 0%, #f4f8fd 100%); + --bank-border: rgba(18, 54, 93, 0.12); + --bank-border-strong: rgba(18, 54, 93, 0.18); + --bank-text-main: #142f52; + --bank-text-muted: #6f86a3; + --bank-text-subtle: #8ea2bb; + --bank-accent: #275a8c; + --bank-accent-soft: #dfeaf9; + --bank-accent-line: rgba(39, 90, 140, 0.12); + --bank-shadow: 0 16px 30px rgba(18, 36, 57, 0.08); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body, +#app { + width: 100%; + height: 100%; + margin: 0; +} + +body { + overflow: hidden; + background: transparent; + color: var(--bank-text-main); + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; +} + +button, +input, +select { + font: inherit; +} + +.bank-shell { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + background: var(--bank-shell-bg); +} + +.bank-scroll-shell { + flex: 1; + min-height: 0; + overflow: auto; + display: flex; + flex-direction: column; +} + +.bank-layout { + min-height: 100%; + width: min(100%, 1600px); + margin: 0 auto; + display: grid; + grid-template-columns: 320px minmax(0, 1fr); + gap: 1.25rem; + padding: 1.25rem; + flex: 1 0 auto; +} + +.bank-sidebar, +.bank-main { + min-height: 0; + display: flex; + flex-direction: column; + gap: 1rem; +} + +.bank-main { + overflow: visible; +} + +.bank-module, +.bank-card, +.bank-atm-panel { + background: var(--bank-surface); + border: 1px solid var(--bank-border); + border-radius: 1.3rem; + box-shadow: var(--bank-shadow); +} + +.bank-module, +.bank-card, +.bank-atm-panel { + padding: 1rem; + display: flex; + flex-direction: column; +} + +.bank-module-header, +.bank-card-header, +.bank-section-header, +.bank-page-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 1rem; +} + +.bank-module-header, +.bank-card-header { + margin-bottom: 0.9rem; +} + +.bank-page { + display: grid; + gap: 1.35rem; + padding: 0.1rem 0 0; +} + +.bank-page-header { + padding-top: 0.4rem; +} + +.bank-page-copy { + margin: 0; + color: var(--bank-text-muted); + line-height: 1.5; + max-width: 48rem; +} + +.bank-page-divider { + border-top: 1px solid var(--bank-accent-line); +} + +.bank-page-body { + display: grid; + gap: 1.25rem; + padding-bottom: 1.25rem; +} + +.bank-page-section { + display: grid; + gap: 1rem; + padding: 1.15rem 1.2rem 1.25rem; + border: 1px solid var(--bank-border); + border-radius: 1.3rem; + background: rgba(255, 255, 255, 0.72); + box-shadow: none; +} + +.bank-title, +.bank-section-title { + margin: 0; + color: var(--bank-text-main); + letter-spacing: -0.02em; +} + +.bank-title { + font-size: 1.7rem; +} + +.bank-section-title { + font-size: 1.1rem; +} + +.bank-eyebrow, +.bank-footer-title, +.bank-stat-label { + display: block; + font-size: 0.68rem; + letter-spacing: 0.16em; + text-transform: uppercase; + font-weight: 700; + color: var(--bank-text-subtle); +} + +.bank-pill { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.48rem 0.8rem; + border-radius: 999px; + background: var(--bank-accent-soft); + color: var(--bank-accent); + font-size: 0.74rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + white-space: nowrap; +} + +.bank-summary-grid, +.bank-profile-stack { + display: grid; + gap: 0.8rem; +} + +.bank-summary-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.bank-stat-card, +.bank-metric-card { + min-width: 0; + display: flex; + flex-direction: column; + gap: 0.25rem; + padding: 0.9rem; + border-radius: 0.95rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.6); +} + +.bank-stat-card.is-accent, +.bank-metric-card.is-accent { + background: linear-gradient(180deg, #edf4fe 0%, #dfeaf9 100%); +} + +.bank-stat-card.is-success, +.bank-metric-card.is-success { + background: linear-gradient(180deg, #edf9f4 0%, #dff4ea 100%); +} + +.bank-stat-card.is-warning, +.bank-metric-card.is-warning { + background: linear-gradient(180deg, #fdf7ea 0%, #f7edd4 100%); +} + +.bank-stat-value, +.bank-metric-value { + min-width: 0; + color: var(--bank-text-main); + font-weight: 700; + overflow-wrap: anywhere; +} + +.bank-stat-value { + font-size: 1rem; +} + +.bank-metric-value { + font-size: 1.8rem; + letter-spacing: -0.03em; +} + +.bank-metric-copy, +.bank-card-copy, +.bank-empty-copy, +.bank-footer-copy, +.bank-history-meta { + color: var(--bank-text-muted); + line-height: 1.45; +} + +.bank-card-copy { + margin: 0 0 0.9rem; +} + +.bank-summary-band { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.85rem; +} + +.bank-action-sections { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1rem; +} + +.bank-support-sections { + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 1rem; +} + +.bank-form-stack { + display: grid; + gap: 0.75rem; +} + +.bank-input, +.bank-select { + width: 100%; + min-width: 0; + height: 2.9rem; + padding: 0 0.95rem; + border-radius: 0.8rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.82); + color: var(--bank-text-main); +} + +.bank-action-row { + display: flex; + gap: 0.75rem; +} + +.bank-btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 2.85rem; + padding: 0.75rem 1rem; + border-radius: 0.8rem; + border: 1px solid var(--bank-border); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + cursor: pointer; + transition: + background-color 160ms ease, + color 160ms ease, + border-color 160ms ease; +} + +.bank-btn:disabled { + opacity: 0.55; + cursor: default; +} + +.bank-btn-primary { + background: #455a77; + border-color: #455a77; + color: #fff; +} + +.bank-btn-primary:hover:not(:disabled) { + background: #354863; + border-color: #354863; +} + +.bank-btn-secondary { + background: rgba(255, 255, 255, 0.82); + color: var(--bank-accent); +} + +.bank-btn-secondary:hover:not(:disabled) { + background: #eef4fd; +} + +.bank-history-list { + display: grid; + gap: 0.75rem; +} + +.bank-history-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + padding: 0.85rem 0.95rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.6); +} + +.bank-history-copy { + min-width: 0; + display: grid; + gap: 0.18rem; +} + +.bank-history-title, +.bank-empty-title { + color: var(--bank-text-main); + font-weight: 700; +} + +.bank-history-value { + white-space: nowrap; + font-weight: 700; + color: var(--bank-accent); +} + +.bank-empty-state { + display: grid; + gap: 0.35rem; + padding: 1rem 0; +} + +.bank-notice-stack { + position: fixed; + top: 1.2rem; + right: 1.5rem; + z-index: 12; + display: grid; + gap: 0.65rem; +} + +.bank-notice { + max-width: 24rem; + padding: 0.85rem 1rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: #fff; + box-shadow: 0 14px 28px rgba(16, 34, 56, 0.14); + font-size: 0.92rem; +} + +.bank-notice.is-success { + background: #ecfdf5; + border-color: #bbf7d0; + color: #166534; +} + +.bank-notice.is-error { + background: #fef2f2; + border-color: #fecaca; + color: #991b1b; +} + +.bank-footer-bar { + width: 100%; + margin-top: auto; + background: #1e293b; + color: #f8fafc; +} + +.bank-footer { + width: min(100%, 1600px); + margin: 0 auto; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 4rem; + padding: 3rem 1.25rem; +} + +.bank-footer-block { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.bank-footer-title { + margin: 0; + color: #f8fafc; + font-size: 0.85rem; + text-transform: uppercase; + letter-spacing: 0.1em; + font-weight: 700; + padding-bottom: 0.5rem; + border-bottom: 1px solid #475569; +} + +.bank-footer-list { + margin: 0; + padding: 0; + list-style: none; +} + +.bank-atm-shell { + flex: 1; + min-height: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 2rem 1rem; +} + +.bank-atm-panel { + width: min(100%, 560px); + display: grid; + gap: 1rem; +} + +.bank-atm-stack { + display: grid; + gap: 1rem; +} + +.bank-pin-display, +.bank-balance-display { + display: flex; + align-items: center; + justify-content: center; + min-height: 5rem; + padding: 1rem; + border-radius: 1rem; + border: 1px solid var(--bank-border-strong); + background: rgba(255, 255, 255, 0.68); + color: var(--bank-text-main); + text-align: center; +} + +.bank-pin-display { + font-size: 2rem; +} + +.bank-balance-display { + font-size: 2.5rem; + font-weight: 800; + letter-spacing: -0.03em; +} + +.bank-pin-indicators { + display: flex; + align-items: center; + justify-content: center; + gap: 0.9rem; +} + +.bank-pin-indicator { + width: 1rem; + height: 1rem; + border-radius: 999px; + border: 2px solid var(--bank-accent); + background: transparent; +} + +.bank-pin-indicator.is-filled { + background: var(--bank-accent); +} + +.bank-keypad { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 0.75rem; +} + +.bank-key { + min-height: 3.2rem; + padding: 0.9rem; + border-radius: 0.9rem; + border: 1px solid var(--bank-border); + background: rgba(255, 255, 255, 0.82); + color: var(--bank-text-main); + font-weight: 700; +} + +.bank-key.is-muted { + background: #eef2f8; + color: var(--bank-text-muted); +} + +.bank-key.is-accent { + background: #455a77; + border-color: #455a77; + color: #fff; +} + +.bank-key.is-wide { + grid-column: span 3; +} + +.bank-atm-action-grid { + display: grid; + gap: 0.75rem; +} + +.bank-shell.is-atm { + background: transparent; + min-height: 100%; + justify-content: center; +} + +.bank-shell.is-atm .bank-atm-shell { + flex: 1; + width: 100%; + min-height: 100%; + max-width: 100%; +} + +.bank-footer-copy { + color: #cbd5e1; + line-height: 1.5; + margin: 0 0 0.75rem; +} + +@media (max-width: 1200px) { + .bank-layout { + grid-template-columns: 1fr; + } + + .bank-main { + overflow: visible; + } +} + +@media (max-width: 900px) { + .bank-summary-band, + .bank-action-sections, + .bank-footer { + grid-template-columns: 1fr; + } + + .bank-summary-grid { + grid-template-columns: 1fr; + } +} diff --git a/arma/client/addons/bank/ui/ui.config.mjs b/arma/client/addons/bank/ui/ui.config.mjs new file mode 100644 index 0000000..d323273 --- /dev/null +++ b/arma/client/addons/bank/ui/ui.config.mjs @@ -0,0 +1,38 @@ +export default { + addonName: "bank", + title: "FORGE Banking Console", + logLabel: "Bank UI", + outputDir: "_site", + jsBundles: [ + { + name: "Bank UI app", + output: "bank-ui.js", + sources: [ + "src/runtime.js", + "src/data.js", + "src/registry/store.js", + "src/bridge.js", + "src/registry/events.js", + "src/components/common.js", + "src/components/BankSidebar.js", + "src/components/Footer.js", + "src/pages/BankView.js", + "src/pages/ATMView.js", + "src/components/AppShell.js", + "src/bootstrap.js", + ], + }, + ], + cssBundles: [ + { + name: "Bank UI styles", + output: "bank-ui.css", + sources: ["src/styles.css"], + }, + ], + site: { + styles: ["bank-ui.css"], + commonScripts: ["forge-webui.js"], + scripts: ["bank-ui.js"], + }, +}; diff --git a/arma/client/addons/garage/ui/_site/garage-ui.css b/arma/client/addons/garage/ui/_site/garage-ui.css index 27a99d9..47bd2ea 100644 --- a/arma/client/addons/garage/ui/_site/garage-ui.css +++ b/arma/client/addons/garage/ui/_site/garage-ui.css @@ -218,10 +218,16 @@ button:disabled { gap: 0.65rem; } +.garage-footer-bar { + width: 100%; + border-top: 1px solid rgb(18 54 93 / 0.1); +} + .garage-footer { + width: min(100%, 1613px); + margin: 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0.95rem 1.25rem 1.15rem; - border-top: 1px solid rgb(18 54 93 / 0.1); } .garage-meter-stack { diff --git a/arma/client/addons/garage/ui/_site/garage-ui.js b/arma/client/addons/garage/ui/_site/garage-ui.js index df7e4b9..118a535 100644 --- a/arma/client/addons/garage/ui/_site/garage-ui.js +++ b/arma/client/addons/garage/ui/_site/garage-ui.js @@ -1220,49 +1220,53 @@ ), h( "footer", - { className: "garage-footer" }, + { className: "garage-footer-bar" }, h( "div", - { className: "garage-footer-block" }, + { className: "garage-footer" }, h( - "span", - { className: "garage-footer-title" }, - "Storage Capacity", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Storage Capacity", + ), + h( + "span", + { className: "garage-footer-copy" }, + `${session.capacityUsed} of ${session.capacityMax} vehicle slot(s) are currently occupied.`, + ), ), h( - "span", - { className: "garage-footer-copy" }, - `${session.capacityUsed} of ${session.capacityMax} vehicle slot(s) are currently occupied.`, - ), - ), - h( - "div", - { className: "garage-footer-block" }, - h( - "span", - { className: "garage-footer-title" }, - "Retrieval Window", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Retrieval Window", + ), + h( + "span", + { className: "garage-footer-copy" }, + session.spawnBlocked + ? "Spawn lane is blocked. Clear the bay before retrieving another vehicle." + : "Spawn lane is clear. Stored vehicles can be retrieved immediately.", + ), ), h( - "span", - { className: "garage-footer-copy" }, - session.spawnBlocked - ? "Spawn lane is blocked. Clear the bay before retrieving another vehicle." - : "Spawn lane is clear. Stored vehicles can be retrieved immediately.", - ), - ), - h( - "div", - { className: "garage-footer-block" }, - h( - "span", - { className: "garage-footer-title" }, - "Store Rules", - ), - h( - "span", - { className: "garage-footer-copy" }, - "Only nearby empty vehicles can be stored. Nearby count updates from the live world state.", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Store Rules", + ), + h( + "span", + { className: "garage-footer-copy" }, + "Only nearby empty vehicles can be stored. Nearby count updates from the live world state.", + ), ), ), ), diff --git a/arma/client/addons/garage/ui/src/components/AppShell.js b/arma/client/addons/garage/ui/src/components/AppShell.js index 4eeb81e..6d00c24 100644 --- a/arma/client/addons/garage/ui/src/components/AppShell.js +++ b/arma/client/addons/garage/ui/src/components/AppShell.js @@ -776,49 +776,53 @@ ), h( "footer", - { className: "garage-footer" }, + { className: "garage-footer-bar" }, h( "div", - { className: "garage-footer-block" }, + { className: "garage-footer" }, h( - "span", - { className: "garage-footer-title" }, - "Storage Capacity", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Storage Capacity", + ), + h( + "span", + { className: "garage-footer-copy" }, + `${session.capacityUsed} of ${session.capacityMax} vehicle slot(s) are currently occupied.`, + ), ), h( - "span", - { className: "garage-footer-copy" }, - `${session.capacityUsed} of ${session.capacityMax} vehicle slot(s) are currently occupied.`, - ), - ), - h( - "div", - { className: "garage-footer-block" }, - h( - "span", - { className: "garage-footer-title" }, - "Retrieval Window", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Retrieval Window", + ), + h( + "span", + { className: "garage-footer-copy" }, + session.spawnBlocked + ? "Spawn lane is blocked. Clear the bay before retrieving another vehicle." + : "Spawn lane is clear. Stored vehicles can be retrieved immediately.", + ), ), h( - "span", - { className: "garage-footer-copy" }, - session.spawnBlocked - ? "Spawn lane is blocked. Clear the bay before retrieving another vehicle." - : "Spawn lane is clear. Stored vehicles can be retrieved immediately.", - ), - ), - h( - "div", - { className: "garage-footer-block" }, - h( - "span", - { className: "garage-footer-title" }, - "Store Rules", - ), - h( - "span", - { className: "garage-footer-copy" }, - "Only nearby empty vehicles can be stored. Nearby count updates from the live world state.", + "div", + { className: "garage-footer-block" }, + h( + "span", + { className: "garage-footer-title" }, + "Store Rules", + ), + h( + "span", + { className: "garage-footer-copy" }, + "Only nearby empty vehicles can be stored. Nearby count updates from the live world state.", + ), ), ), ), diff --git a/arma/client/addons/garage/ui/src/styles.css b/arma/client/addons/garage/ui/src/styles.css index b41390f..b45dec7 100644 --- a/arma/client/addons/garage/ui/src/styles.css +++ b/arma/client/addons/garage/ui/src/styles.css @@ -217,10 +217,16 @@ button:disabled { gap: 0.65rem; } +.garage-footer-bar { + width: 100%; + border-top: 1px solid rgb(18 54 93 / 0.1); +} + .garage-footer { + width: min(100%, 1613px); + margin: 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0.95rem 1.25rem 1.15rem; - border-top: 1px solid rgb(18 54 93 / 0.1); } .garage-meter-stack { diff --git a/arma/client/addons/org/ui/_site/org-ui.js b/arma/client/addons/org/ui/_site/org-ui.js index b09fdcf..ee1321b 100644 --- a/arma/client/addons/org/ui/_site/org-ui.js +++ b/arma/client/addons/org/ui/_site/org-ui.js @@ -3908,7 +3908,7 @@ ${scopeSelector} .home-feedback { "div", { className: "app-shell" }, WindowTitleBar({ - kicker: "ORBIS Workspace", + kicker: "FORGE ORBIS", title: "Global Organization Network", onClose: closeRegistry, closeLabel: "Close organization interface", @@ -3939,7 +3939,7 @@ ${scopeSelector} .home-feedback { "div", { className: "app-shell" }, WindowTitleBar({ - kicker: "ORBIS Workspace", + kicker: "FORGE ORBIS", title: "Global Organization Network", onClose: closeRegistry, closeLabel: "Close organization interface", diff --git a/arma/client/addons/org/ui/src/components/AppShell.js b/arma/client/addons/org/ui/src/components/AppShell.js index 7b52bfb..185b369 100644 --- a/arma/client/addons/org/ui/src/components/AppShell.js +++ b/arma/client/addons/org/ui/src/components/AppShell.js @@ -75,7 +75,7 @@ "div", { className: "app-shell" }, WindowTitleBar({ - kicker: "ORBIS Workspace", + kicker: "FORGE ORBIS", title: "Global Organization Network", onClose: closeRegistry, closeLabel: "Close organization interface", @@ -106,7 +106,7 @@ "div", { className: "app-shell" }, WindowTitleBar({ - kicker: "ORBIS Workspace", + kicker: "FORGE ORBIS", title: "Global Organization Network", onClose: closeRegistry, closeLabel: "Close organization interface", diff --git a/arma/client/addons/store/ui/_site/store-ui.js b/arma/client/addons/store/ui/_site/store-ui.js index d123d15..920b347 100644 --- a/arma/client/addons/store/ui/_site/store-ui.js +++ b/arma/client/addons/store/ui/_site/store-ui.js @@ -1623,13 +1623,19 @@ ${scopeSelector} .store-panel-intro { border-bottom: 1px solid var(--store-accent-line); } +${scopeSelector} .store-footer-bar { + width: 100%; + border-top: 1px solid rgb(18 54 93 / 0.1); + background: transparent; +} + ${scopeSelector} .store-footer { + width: min(100%, 1613px); + margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 0.95rem 1.25rem 1.15rem; - border-top: 1px solid rgb(18 54 93 / 0.1); - background: transparent; } ${scopeSelector} .footer-block { @@ -2039,39 +2045,51 @@ ${scopeSelector} .store-toast.is-error { ), h( "footer", - { className: "store-footer" }, + { className: "store-footer-bar" }, h( "div", - { className: "footer-block" }, + { className: "store-footer" }, h( - "span", - { className: "footer-title" }, - "Procurement Desk", + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Procurement Desk", + ), + h( + "span", + { className: "footer-copy" }, + "Authorized supply browsing for personnel loadout preparation and mission staging.", + ), ), h( - "span", - { className: "footer-copy" }, - "Authorized supply browsing for personnel loadout preparation and mission staging.", + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Catalog Scope", + ), + h( + "span", + { className: "footer-copy" }, + "Uniforms, protective gear, weapon slots, vehicles, ammunition groups, and general support inventory.", + ), ), - ), - h( - "div", - { className: "footer-block" }, - h("span", { className: "footer-title" }, "Catalog Scope"), h( - "span", - { className: "footer-copy" }, - "Uniforms, protective gear, weapon slots, vehicles, ammunition groups, and general support inventory.", - ), - ), - h( - "div", - { className: "footer-block" }, - h("span", { className: "footer-title" }, "Purchase Access"), - h( - "span", - { className: "footer-copy" }, - `${session.approval} approval. ${availablePaymentSourceCount} payment source(s) currently available${session.orgName ? ` for ${session.orgName}.` : "."}`, + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Purchase Access", + ), + h( + "span", + { className: "footer-copy" }, + `${session.approval} approval. ${availablePaymentSourceCount} payment source(s) currently available${session.orgName ? ` for ${session.orgName}.` : "."}`, + ), ), ), ), diff --git a/arma/client/addons/store/ui/src/components/AppShell.js b/arma/client/addons/store/ui/src/components/AppShell.js index f33d28a..810a7e5 100644 --- a/arma/client/addons/store/ui/src/components/AppShell.js +++ b/arma/client/addons/store/ui/src/components/AppShell.js @@ -194,13 +194,19 @@ ${scopeSelector} .store-panel-intro { border-bottom: 1px solid var(--store-accent-line); } +${scopeSelector} .store-footer-bar { + width: 100%; + border-top: 1px solid rgb(18 54 93 / 0.1); + background: transparent; +} + ${scopeSelector} .store-footer { + width: min(100%, 1613px); + margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 0.95rem 1.25rem 1.15rem; - border-top: 1px solid rgb(18 54 93 / 0.1); - background: transparent; } ${scopeSelector} .footer-block { @@ -610,39 +616,51 @@ ${scopeSelector} .store-toast.is-error { ), h( "footer", - { className: "store-footer" }, + { className: "store-footer-bar" }, h( "div", - { className: "footer-block" }, + { className: "store-footer" }, h( - "span", - { className: "footer-title" }, - "Procurement Desk", + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Procurement Desk", + ), + h( + "span", + { className: "footer-copy" }, + "Authorized supply browsing for personnel loadout preparation and mission staging.", + ), ), h( - "span", - { className: "footer-copy" }, - "Authorized supply browsing for personnel loadout preparation and mission staging.", + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Catalog Scope", + ), + h( + "span", + { className: "footer-copy" }, + "Uniforms, protective gear, weapon slots, vehicles, ammunition groups, and general support inventory.", + ), ), - ), - h( - "div", - { className: "footer-block" }, - h("span", { className: "footer-title" }, "Catalog Scope"), h( - "span", - { className: "footer-copy" }, - "Uniforms, protective gear, weapon slots, vehicles, ammunition groups, and general support inventory.", - ), - ), - h( - "div", - { className: "footer-block" }, - h("span", { className: "footer-title" }, "Purchase Access"), - h( - "span", - { className: "footer-copy" }, - `${session.approval} approval. ${availablePaymentSourceCount} payment source(s) currently available${session.orgName ? ` for ${session.orgName}.` : "."}`, + "div", + { className: "footer-block" }, + h( + "span", + { className: "footer-title" }, + "Purchase Access", + ), + h( + "span", + { className: "footer-copy" }, + `${session.approval} approval. ${availablePaymentSourceCount} payment source(s) currently available${session.orgName ? ` for ${session.orgName}.` : "."}`, + ), ), ), ),