1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-08-04 08:17:01 +00:00

Refractored WebOS preload out of common preload

This commit is contained in:
Michael Hollister 2025-01-07 22:47:46 -06:00
parent 3142709d7f
commit bff3440a8e
5 changed files with 244 additions and 421 deletions

View file

@ -1,5 +1,4 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
/* eslint-disable @typescript-eslint/no-require-imports */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { toast, ToastIcon } from '../components/Toast';
@ -12,7 +11,6 @@ declare global {
}
}
let deviceInfo: any;
let preloadData: Record<string, any> = {};
// @ts-ignore
@ -26,7 +24,7 @@ if (TARGET === 'electron') {
});
electronAPI.ipcRenderer.on("device-info", (_event, value: any) => {
deviceInfo = value;
preloadData.deviceInfo = value;
})
electronAPI.contextBridge.exposeInMainWorld('targetAPI', {
@ -34,49 +32,25 @@ if (TARGET === 'electron') {
onDeviceInfo: (callback: any) => electronAPI.ipcRenderer.on("device-info", callback),
onConnect: (callback: any) => electronAPI.ipcRenderer.on("connect", callback),
onDisconnect: (callback: any) => electronAPI.ipcRenderer.on("disconnect", callback),
getDeviceInfo: () => deviceInfo,
getDeviceInfo: () => preloadData.deviceInfo,
});
// @ts-ignore
} else if (TARGET === 'webOS') {
try {
require('lib/webOSTVjs-1.2.10/webOSTV.js');
require('lib/webOSTVjs-1.2.10/webOSTV-dev.js');
const serviceId = 'com.futo.fcast.receiver.service';
let onStartupStorageClearCb = () => { localStorage.clear(); };
let onDeviceInfoCb = () => { console.log('Main: Callback not set while fetching device info'); };
let onConnectCb = (_, value: any) => { console.log('Main: Callback not set while calling onConnect'); };
let onDisconnectCb = (_, value: any) => { console.log('Main: Callback not set while calling onDisconnect'); };
const getDeviceInfoService = window.webOS.service.request(`luna://${serviceId}/`, {
method:"getDeviceInfo",
parameters: {},
onSuccess: (message: any) => {
console.log(`Main: getDeviceInfo ${JSON.stringify(message)}`);
deviceInfo = message.value;
onDeviceInfoCb();
},
onFailure: (message: any) => {
console.error(`Main: getDeviceInfo ${JSON.stringify(message)}`);
toast(`Main: getDeviceInfo ${JSON.stringify(message)}`, ToastIcon.ERROR);
},
// onComplete: (message) => {},
});
window.targetAPI = {
onStartupStorageClear: (callback: () => void) => onStartupStorageClearCb = callback,
onDeviceInfo: (callback: () => void) => onDeviceInfoCb = callback,
onConnect: (callback: () => void) => onConnectCb = callback,
onDisconnect: (callback: () => void) => onDisconnectCb = callback,
getDeviceInfo: () => deviceInfo,
preloadData = {
onStartupStorageClearCb: () => { localStorage.clear(); },
onDeviceInfoCb: () => { console.log('Main: Callback not set while fetching device info'); },
onConnectCb: (_, value: any) => { console.log('Main: Callback not set while calling onConnect'); },
onDisconnectCb: (_, value: any) => { console.log('Main: Callback not set while calling onDisconnect'); },
};
preloadData = {
getDeviceInfoService: getDeviceInfoService,
onStartupStorageClearCb: onStartupStorageClearCb,
onConnectCb: onConnectCb,
onDisconnectCb: onDisconnectCb,
window.targetAPI = {
onStartupStorageClear: (callback: () => void) => preloadData.onStartupStorageClearCb = callback,
onDeviceInfo: (callback: () => void) => preloadData.onDeviceInfoCb = callback,
onConnect: (callback: (_, value: any) => void) => preloadData.onConnectCb = callback,
onDisconnect: (callback: (_, value: any) => void) => preloadData.onDisconnectCb = callback,
getDeviceInfo: () => preloadData.deviceInfo,
};
}
catch (err) {