Enhance: Implement dynamic launcher URL and restore package.json
- Added logic to construct launcher URL based on hydrated device context. - Implemented dev/production host fallback for demo.localhost. - Restored missing package.json with proper start and build scripts. - Finalized IPC handlers for seed and device configuration.
This commit is contained in:
31
dist/main/index.js
vendored
31
dist/main/index.js
vendored
@@ -56,14 +56,21 @@ async function createWindow() {
|
||||
nodeIntegration: false,
|
||||
},
|
||||
});
|
||||
// Prioritize demo.localhost for local development
|
||||
const devUrl = 'http://demo.localhost:5173';
|
||||
// Fallback URL if local is offline
|
||||
const fallbackUrl = 'https://dev-demo.oneskyit.com/';
|
||||
console.log(`Loading UI from: ${devUrl}`);
|
||||
mainWindow.loadURL(devUrl).catch(() => {
|
||||
console.warn(`Failed to load ${devUrl}. Falling back to ${fallbackUrl}`);
|
||||
mainWindow?.loadURL(fallbackUrl);
|
||||
// Determine target URL based on hydrated config
|
||||
let targetUrl = 'http://demo.localhost:5173'; // Default Dev Fallback
|
||||
if (cachedFullConfig && cachedFullConfig.native_device) {
|
||||
const device = cachedFullConfig.native_device;
|
||||
const eventId = device.event_id_random || device.event_id;
|
||||
const locationId = device.event_location_id_random || device.event_location_id || '';
|
||||
const host = device.app_base_url || 'demo.localhost:5173';
|
||||
// In development, we likely want to stick to localhost even if app_base_url is set
|
||||
const useHost = (host.includes('localhost')) ? host : 'demo.localhost:5173';
|
||||
targetUrl = `http://${useHost}/events/${eventId}/launcher/${locationId}`;
|
||||
}
|
||||
console.log(`Launcher: Navigating to ${targetUrl}`);
|
||||
mainWindow.loadURL(targetUrl).catch(() => {
|
||||
console.warn(`Failed to load ${targetUrl}. Falling back to dev-demo...`);
|
||||
mainWindow?.loadURL('https://dev-demo.oneskyit.com/');
|
||||
});
|
||||
mainWindow.on('closed', () => {
|
||||
mainWindow = null;
|
||||
@@ -85,13 +92,7 @@ electron_1.ipcMain.handle('get-seed-config', async () => {
|
||||
return cachedSeed || await (0, config_loader_1.loadSeedConfig)();
|
||||
});
|
||||
electron_1.ipcMain.handle('get-device-config', async () => {
|
||||
if (cachedFullConfig)
|
||||
return cachedFullConfig;
|
||||
if (cachedSeed) {
|
||||
cachedFullConfig = await (0, api_client_1.fetchFullConfig)(cachedSeed);
|
||||
return cachedFullConfig;
|
||||
}
|
||||
return null;
|
||||
return cachedFullConfig;
|
||||
});
|
||||
electron_1.ipcMain.handle('get-jwt', async () => {
|
||||
return null;
|
||||
|
||||
2
dist/main/index.js.map
vendored
2
dist/main/index.js.map
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuD;AACvD,2CAA6B;AAC7B,mDAAiD;AACjD,6CAA+C;AAG/C,IAAI,UAAU,GAAyB,IAAI,CAAC;AAC5C,IAAI,UAAU,GAAsB,IAAI,CAAC;AACzC,IAAI,gBAAgB,GAAQ,IAAI,CAAC;AAEjC,KAAK,UAAU,YAAY;IACzB,6BAA6B;IAC7B,UAAU,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,GAAG,MAAM,IAAA,4BAAe,EAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,UAAU,GAAG,IAAI,wBAAa,CAAC;QAC7B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,+BAA+B;QACtC,cAAc,EAAE;YACd,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;YACpD,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,KAAK;SACvB;KACF,CAAC,CAAC;IAEH,kDAAkD;IAClD,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAC5C,mCAAmC;IACnC,MAAM,WAAW,GAAG,gCAAgC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAE1C,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,qBAAqB,WAAW,EAAE,CAAC,CAAC;QACzE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC3B,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,cAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE9B,cAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,cAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,cAAG,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,YAAY,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,kBAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IAC3C,OAAO,UAAU,IAAI,MAAM,IAAA,8BAAc,GAAE,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,kBAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;IAC7C,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,GAAG,MAAM,IAAA,4BAAe,EAAC,UAAU,CAAC,CAAC;QACrD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,kBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACnC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"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"}
|
||||
1085
package-lock.json
generated
Normal file
1085
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
18
package.json
Normal file
18
package.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "aether_app_native_electron",
|
||||
"version": "1.0.0",
|
||||
"description": "AE Native Launcher V3",
|
||||
"main": "dist/main/index.js",
|
||||
"scripts": {
|
||||
"start": "tsc && electron .",
|
||||
"dev": "tsc && electron .",
|
||||
"build": "tsc",
|
||||
"watch": "tsc -w"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.10.7",
|
||||
"electron": "^34.0.0",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
}
|
||||
@@ -26,16 +26,26 @@ async function createWindow() {
|
||||
},
|
||||
});
|
||||
|
||||
// Prioritize demo.localhost for local development
|
||||
const devUrl = 'http://demo.localhost:5173';
|
||||
// Fallback URL if local is offline
|
||||
const fallbackUrl = 'https://dev-demo.oneskyit.com/';
|
||||
|
||||
console.log(`Loading UI from: ${devUrl}`);
|
||||
// Determine target URL based on hydrated config
|
||||
let targetUrl = 'http://demo.localhost:5173'; // Default Dev Fallback
|
||||
|
||||
mainWindow.loadURL(devUrl).catch(() => {
|
||||
console.warn(`Failed to load ${devUrl}. Falling back to ${fallbackUrl}`);
|
||||
mainWindow?.loadURL(fallbackUrl);
|
||||
if (cachedFullConfig && cachedFullConfig.native_device) {
|
||||
const device = cachedFullConfig.native_device;
|
||||
const eventId = device.event_id_random || device.event_id;
|
||||
const locationId = device.event_location_id_random || device.event_location_id || '';
|
||||
const host = device.app_base_url || 'demo.localhost:5173';
|
||||
|
||||
// In development, we likely want to stick to localhost even if app_base_url is set
|
||||
const useHost = (host.includes('localhost')) ? host : 'demo.localhost:5173';
|
||||
|
||||
targetUrl = `http://${useHost}/events/${eventId}/launcher/${locationId}`;
|
||||
}
|
||||
|
||||
console.log(`Launcher: Navigating to ${targetUrl}`);
|
||||
|
||||
mainWindow.loadURL(targetUrl).catch(() => {
|
||||
console.warn(`Failed to load ${targetUrl}. Falling back to dev-demo...`);
|
||||
mainWindow?.loadURL('https://dev-demo.oneskyit.com/');
|
||||
});
|
||||
|
||||
mainWindow.on('closed', () => {
|
||||
@@ -63,12 +73,7 @@ ipcMain.handle('get-seed-config', async () => {
|
||||
});
|
||||
|
||||
ipcMain.handle('get-device-config', async () => {
|
||||
if (cachedFullConfig) return cachedFullConfig;
|
||||
if (cachedSeed) {
|
||||
cachedFullConfig = await fetchFullConfig(cachedSeed);
|
||||
return cachedFullConfig;
|
||||
}
|
||||
return null;
|
||||
return cachedFullConfig;
|
||||
});
|
||||
|
||||
ipcMain.handle('get-jwt', async () => {
|
||||
|
||||
Reference in New Issue
Block a user