mirror of
https://github.com/SteamDeckHomebrew/decky-frontend-lib.git
synced 2026-05-23 03:18:48 +02:00
feat(router): types for steam router
This commit is contained in:
36
src/deck-components/Router.tsx
Normal file
36
src/deck-components/Router.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { Module, findModuleChild } from '../webpack';
|
||||
|
||||
export enum SideMenu {
|
||||
None,
|
||||
Main,
|
||||
QuickAccess,
|
||||
}
|
||||
|
||||
export enum QuickAccessTabs {
|
||||
Notifications,
|
||||
RemotePlayTogetherControls,
|
||||
VoiceChat,
|
||||
Friends,
|
||||
Settings,
|
||||
Perf,
|
||||
Help,
|
||||
Decky,
|
||||
}
|
||||
|
||||
interface Router {
|
||||
CloseSideMenus(): void;
|
||||
OpenQuickAccessMenu(quickAccessTab: QuickAccessTabs): void;
|
||||
NavigateToExternalWeb(url: string): void;
|
||||
ToggleSideMenu(sideMenu: SideMenu): void;
|
||||
CloseSideMenus(): void;
|
||||
OpenSideMenu(sideMenu: SideMenu): void;
|
||||
OpenPowerMenu(unknown?: any): void;
|
||||
get RunningApps(): any;
|
||||
}
|
||||
|
||||
export const Router = findModuleChild((m: Module) => {
|
||||
if (typeof m !== 'object') return undefined;
|
||||
for (let prop in m) {
|
||||
if (m[prop]?.Navigate && m[prop]?.NavigationManager) return m[prop];
|
||||
}
|
||||
}) as Router;
|
||||
@@ -3,8 +3,9 @@ export * from './ButtonItem';
|
||||
export * from './Menu';
|
||||
export * from './Modal';
|
||||
export * from './Panel';
|
||||
export * from './Router';
|
||||
export * from './Slider';
|
||||
export * from './SteamSpinner';
|
||||
export * from './Spinner';
|
||||
export * from './static-classes';
|
||||
export * from './SteamSpinner';
|
||||
export * from './Toggle';
|
||||
|
||||
@@ -5,7 +5,7 @@ declare global {
|
||||
}
|
||||
|
||||
// TODO
|
||||
type Module = any;
|
||||
export type Module = any;
|
||||
type FilterFn = (module: any) => boolean;
|
||||
type FindFn = (module: any) => any;
|
||||
|
||||
@@ -59,23 +59,17 @@ export const CommonUIModule = allModules.find((m: Module) => {
|
||||
});
|
||||
|
||||
export const IconsModule = findModule((m: Module) => {
|
||||
if (typeof m !== "object") return false;
|
||||
if (typeof m !== 'object') return false;
|
||||
for (let prop in m) {
|
||||
if (m[prop]?.toString && /Spinner\)}\),.\.createElement\(\"path\",{d:\"M18 /.test(m[prop].toString())) return true;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
export const Router = findModuleChild((m: Module) => {
|
||||
if (typeof m !== "object") return undefined;
|
||||
for (let prop in m) {
|
||||
if (m[prop]?.Navigate && m[prop]?.NavigationManager) return m[prop]
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
export const ReactRouter = allModules.find((m: Module) => {
|
||||
if (typeof m !== "object") return undefined;
|
||||
if (typeof m !== 'object') return undefined;
|
||||
for (let prop in m) {
|
||||
if (m[prop]?.computeRootMatch) return true
|
||||
if (m[prop]?.computeRootMatch) return true;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user