mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 02:44:02 +00:00
feat(ui): render every application template except the loading screen as a Vue view
The scene chrome, cockpit, Display controls, command dock, layer panels, Context rail, welcome card and Provider Settings move verbatim into src/ui/views and mount into their hosts before the page is translated and wired. Each view renders the same elements, attributes and text as its template; Vue keeps whitespace between elements as one space, and no view markup sits under a white-space: pre rule. Template asset URLs stay literal, view files are left out of Prettier so the markup is not reflowed, and the Node component loader moves to build/ and is exported as build/register-vue for host test runners. Hosts that do not initialize Core's locale pass localePicker: false instead of editing the markup.
This commit is contained in:
1 parent
9d24945143
commit
6802c9c8b0
46 files changed
+258
-97
No files matched your search
@@ -136,3 +136,21 @@ test('the language already active neither asks nor reloads', () => {
|
||||
view.restore();
|
||||
}
|
||||
});
|
||||
|
||||
test('a host without Core locales removes the picker instead of mounting it', () => {
|
||||
const previous = globalThis.document;
|
||||
let removed = 0;
|
||||
const root = { remove: () => removed++ };
|
||||
globalThis.document = {
|
||||
getElementById: (id) => (id === 'locale-picker' ? root : null),
|
||||
};
|
||||
const shell = { services: {}, _localePickerEnabled: false };
|
||||
try {
|
||||
StyleManager.prototype._initLocaleSelector.call(shell);
|
||||
assert.equal(removed, 1);
|
||||
assert.equal(shell._localePicker, undefined);
|
||||
} finally {
|
||||
for (const unregister of shell._unsavedWorkChecks) unregister();
|
||||
globalThis.document = previous;
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user