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,
|
nodeIntegration: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
// Prioritize demo.localhost for local development
|
// Determine target URL based on hydrated config
|
||||||
const devUrl = 'http://demo.localhost:5173';
|
let targetUrl = 'http://demo.localhost:5173'; // Default Dev Fallback
|
||||||
// Fallback URL if local is offline
|
if (cachedFullConfig && cachedFullConfig.native_device) {
|
||||||
const fallbackUrl = 'https://dev-demo.oneskyit.com/';
|
const device = cachedFullConfig.native_device;
|
||||||
console.log(`Loading UI from: ${devUrl}`);
|
const eventId = device.event_id_random || device.event_id;
|
||||||
mainWindow.loadURL(devUrl).catch(() => {
|
const locationId = device.event_location_id_random || device.event_location_id || '';
|
||||||
console.warn(`Failed to load ${devUrl}. Falling back to ${fallbackUrl}`);
|
const host = device.app_base_url || 'demo.localhost:5173';
|
||||||
mainWindow?.loadURL(fallbackUrl);
|
// 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.on('closed', () => {
|
||||||
mainWindow = null;
|
mainWindow = null;
|
||||||
@@ -85,13 +92,7 @@ electron_1.ipcMain.handle('get-seed-config', async () => {
|
|||||||
return cachedSeed || await (0, config_loader_1.loadSeedConfig)();
|
return cachedSeed || await (0, config_loader_1.loadSeedConfig)();
|
||||||
});
|
});
|
||||||
electron_1.ipcMain.handle('get-device-config', async () => {
|
electron_1.ipcMain.handle('get-device-config', async () => {
|
||||||
if (cachedFullConfig)
|
return cachedFullConfig;
|
||||||
return cachedFullConfig;
|
|
||||||
if (cachedSeed) {
|
|
||||||
cachedFullConfig = await (0, api_client_1.fetchFullConfig)(cachedSeed);
|
|
||||||
return cachedFullConfig;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
});
|
||||||
electron_1.ipcMain.handle('get-jwt', async () => {
|
electron_1.ipcMain.handle('get-jwt', async () => {
|
||||||
return null;
|
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
|
// Determine target URL based on hydrated config
|
||||||
const devUrl = 'http://demo.localhost:5173';
|
let targetUrl = 'http://demo.localhost:5173'; // Default Dev Fallback
|
||||||
// Fallback URL if local is offline
|
|
||||||
const fallbackUrl = 'https://dev-demo.oneskyit.com/';
|
|
||||||
|
|
||||||
console.log(`Loading UI from: ${devUrl}`);
|
|
||||||
|
|
||||||
mainWindow.loadURL(devUrl).catch(() => {
|
if (cachedFullConfig && cachedFullConfig.native_device) {
|
||||||
console.warn(`Failed to load ${devUrl}. Falling back to ${fallbackUrl}`);
|
const device = cachedFullConfig.native_device;
|
||||||
mainWindow?.loadURL(fallbackUrl);
|
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.on('closed', () => {
|
||||||
@@ -63,12 +73,7 @@ ipcMain.handle('get-seed-config', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.handle('get-device-config', async () => {
|
ipcMain.handle('get-device-config', async () => {
|
||||||
if (cachedFullConfig) return cachedFullConfig;
|
return cachedFullConfig;
|
||||||
if (cachedSeed) {
|
|
||||||
cachedFullConfig = await fetchFullConfig(cachedSeed);
|
|
||||||
return cachedFullConfig;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.handle('get-jwt', async () => {
|
ipcMain.handle('get-jwt', async () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user