@decky/ui 4.16.0 → 4.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/globals/index.d.ts +22 -0
- package/dist/globals/index.js +3 -1
- package/dist/globals/shared/interfaces.d.ts +1 -1
- package/dist/globals/steam-client/Overlay.d.ts +1 -1
- package/dist/globals/stores/notificationstore.d.ts +6 -6
- package/dist/globals/stores/steamuistore/index.d.ts +6 -3
- package/dist/globals/stores/steamuistore/index.js +4 -1
- package/dist/globals/stores/steamuistore/menu.d.ts +12 -12
- package/dist/globals/stores/steamuistore/menu.js +19 -19
- package/dist/modules/Router.d.ts +3 -3
- package/dist/utils/react/fc.js +4 -2
- package/dist/utils/react/react.js +2 -2
- package/dist/utils/react/treepatcher.js +1 -1
- package/package.json +1 -1
- package/src/globals/index.ts +23 -0
- package/src/globals/shared/interfaces.ts +1 -1
- package/src/globals/steam-client/Overlay.ts +1 -1
- package/src/globals/stores/notificationstore.ts +6 -6
- package/src/globals/stores/steamuistore/index.ts +7 -2
- package/src/globals/stores/steamuistore/menu.ts +13 -13
- package/src/modules/Router.ts +3 -3
- package/src/utils/react/fc.ts +4 -2
- package/src/utils/react/react.ts +2 -2
- package/src/utils/react/treepatcher.ts +1 -1
package/dist/globals/index.d.ts
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import type { SteamClient } from './steam-client';
|
|
2
2
|
import type { CApp, CAppDetailsStore, CAppStore, CBadgeStore, CCollectionStore, CConsoleStore, CFocusNavController, CFriendStore, CGameRecordingStore, CLibraryUIStore, CLocalizationManager, CMainWindowBrowserManager, CNotificationStore, CPopupManager, CSecurityStore, CSettingsStore, CSteamUIStore, CURLStore } from './stores';
|
|
3
3
|
declare global {
|
|
4
|
+
var App: CApp;
|
|
5
|
+
var appStore: CAppStore;
|
|
6
|
+
var appDetailsStore: CAppDetailsStore;
|
|
7
|
+
var badgeStore: CBadgeStore;
|
|
8
|
+
var collectionStore: CCollectionStore;
|
|
9
|
+
var ConsoleStore: CConsoleStore;
|
|
10
|
+
var FocusNavController: CFocusNavController;
|
|
11
|
+
var friendStore: CFriendStore;
|
|
12
|
+
var g_GRS: CGameRecordingStore;
|
|
13
|
+
var g_PopupManager: CPopupManager;
|
|
14
|
+
var LocalizationManager: CLocalizationManager;
|
|
15
|
+
var MainWindowBrowserManager: CMainWindowBrowserManager;
|
|
16
|
+
var NotificationStore: CNotificationStore;
|
|
17
|
+
var securitystore: CSecurityStore;
|
|
18
|
+
var settingsStore: CSettingsStore;
|
|
19
|
+
var SteamClient: SteamClient;
|
|
20
|
+
var SteamUIStore: CSteamUIStore;
|
|
21
|
+
var uiStore: CLibraryUIStore;
|
|
22
|
+
var urlStore: CURLStore;
|
|
4
23
|
interface Window {
|
|
5
24
|
App: CApp;
|
|
6
25
|
appStore: CAppStore;
|
|
@@ -23,3 +42,6 @@ declare global {
|
|
|
23
42
|
urlStore: CURLStore;
|
|
24
43
|
}
|
|
25
44
|
}
|
|
45
|
+
export * from "./shared";
|
|
46
|
+
export * from "./steam-client";
|
|
47
|
+
export * from "./stores";
|
package/dist/globals/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import type { EMsg_t } from './cm';
|
|
|
3
3
|
import type { EBrowserType, EUIMode } from './enums';
|
|
4
4
|
export interface BrowserContext {
|
|
5
5
|
m_eBrowserType?: EBrowserType;
|
|
6
|
-
|
|
6
|
+
m_UIMode: EUIMode;
|
|
7
7
|
m_gameID?: string;
|
|
8
8
|
m_nBrowserID: number;
|
|
9
9
|
m_unAppID?: number;
|
|
@@ -112,12 +112,12 @@ export interface TrayNotification {
|
|
|
112
112
|
notifications: SteamNotification[];
|
|
113
113
|
}
|
|
114
114
|
export interface NotificationTarget {
|
|
115
|
-
eFeature
|
|
116
|
-
fnNotificationResolved
|
|
117
|
-
fnShowModal
|
|
118
|
-
fnTray
|
|
119
|
-
nRemoveFromTraySec
|
|
120
|
-
toastDurationMS
|
|
115
|
+
eFeature?: EParentalFeature;
|
|
116
|
+
fnNotificationResolved?: () => void;
|
|
117
|
+
fnShowModal?: () => void;
|
|
118
|
+
fnTray?: (target: NotificationTarget, notificationsInTray: TrayNotification[]) => void;
|
|
119
|
+
nRemoveFromTraySec?: number;
|
|
120
|
+
toastDurationMS?: number;
|
|
121
121
|
type: EClientNotificationType;
|
|
122
122
|
}
|
|
123
123
|
export interface CNotificationStore {
|
|
@@ -30,7 +30,7 @@ export interface CSteamUIStore {
|
|
|
30
30
|
m_bStreamingRemotePlayTogether: boolean;
|
|
31
31
|
m_eErrorCondition: ERefreshLoginReason;
|
|
32
32
|
m_eErrorConditionResult: EResult;
|
|
33
|
-
|
|
33
|
+
m_mainInstancUIMode: EUIMode;
|
|
34
34
|
m_nResumeStreamingInputTimeoutHandle: number;
|
|
35
35
|
m_navigationSource: NavigationSource;
|
|
36
36
|
m_runningAppIDs: number[];
|
|
@@ -113,7 +113,7 @@ export interface CSteamUIStore {
|
|
|
113
113
|
get ErrorConditionResult(): EResult;
|
|
114
114
|
get ForceBetaSectionVisible(): boolean;
|
|
115
115
|
get GamepadUIAudio(): CGamepadUIAudioStore;
|
|
116
|
-
get
|
|
116
|
+
get MainInstancUIMode(): EUIMode;
|
|
117
117
|
get MainRunningApp(): SteamAppOverview | undefined;
|
|
118
118
|
get MainRunningAppID(): number | undefined;
|
|
119
119
|
get MostRecentlyActiveController(): ControllerInfo;
|
|
@@ -126,4 +126,7 @@ export interface CSteamUIStore {
|
|
|
126
126
|
get TextFilterStore(): any;
|
|
127
127
|
get WindowStore(): CWindowStore;
|
|
128
128
|
}
|
|
129
|
-
export
|
|
129
|
+
export * from "./gamepadbrowserview";
|
|
130
|
+
export * from "./gamepaduiaudio";
|
|
131
|
+
export * from "./menu";
|
|
132
|
+
export * from "./window";
|
|
@@ -8,4 +8,7 @@ var ENavigationMode;
|
|
|
8
8
|
ENavigationMode[ENavigationMode["Digital"] = 0] = "Digital";
|
|
9
9
|
ENavigationMode[ENavigationMode["Cursor"] = 1] = "Cursor";
|
|
10
10
|
})(ENavigationMode || (ENavigationMode = {}));
|
|
11
|
-
export
|
|
11
|
+
export * from "./gamepadbrowserview";
|
|
12
|
+
export * from "./gamepaduiaudio";
|
|
13
|
+
export * from "./menu";
|
|
14
|
+
export * from "./window";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare enum
|
|
1
|
+
export declare enum QuickAccessTab {
|
|
2
2
|
Notifications = 0,
|
|
3
3
|
RemotePlayTogetherControls = 1,
|
|
4
4
|
VoiceChat = 2,
|
|
@@ -10,7 +10,7 @@ export declare enum EQuickAccessTab {
|
|
|
10
10
|
VRBatteries = 8,
|
|
11
11
|
Decky = 999
|
|
12
12
|
}
|
|
13
|
-
export declare enum
|
|
13
|
+
export declare enum SideMenu {
|
|
14
14
|
None = 0,
|
|
15
15
|
Main = 1,
|
|
16
16
|
QuickAccess = 2
|
|
@@ -19,21 +19,21 @@ export declare class CMenuStore {
|
|
|
19
19
|
m_MainMenuStore: any;
|
|
20
20
|
m_cSideMenuExtendedVisibilityRequests: number;
|
|
21
21
|
m_cSuppressRequests: number;
|
|
22
|
-
m_eLastRequestedSideMenu:
|
|
23
|
-
m_eOpenSideMenu:
|
|
24
|
-
|
|
22
|
+
m_eLastRequestedSideMenu: SideMenu;
|
|
23
|
+
m_eOpenSideMenu: SideMenu;
|
|
24
|
+
m_QuickAccessTab: QuickAccessTab;
|
|
25
25
|
ClearLastRequestedSideMenu(): void;
|
|
26
26
|
CloseSideMenus(): void;
|
|
27
|
-
GetLastRequestedSideMenu():
|
|
28
|
-
GetOpenSideMenu():
|
|
29
|
-
GetQuickAccessTab():
|
|
27
|
+
GetLastRequestedSideMenu(): SideMenu;
|
|
28
|
+
GetOpenSideMenu(): SideMenu;
|
|
29
|
+
GetQuickAccessTab(): QuickAccessTab;
|
|
30
30
|
IsAnySideMenuVisible(): boolean;
|
|
31
31
|
IsSideMenuInteractable(): boolean;
|
|
32
|
-
IsSideMenuVisible(menu:
|
|
33
|
-
OpenSideMenu(menu:
|
|
34
|
-
OpenQuickAccessMenu(tab?:
|
|
32
|
+
IsSideMenuVisible(menu: SideMenu): boolean;
|
|
33
|
+
OpenSideMenu(menu: SideMenu): void;
|
|
34
|
+
OpenQuickAccessMenu(tab?: QuickAccessTab): void;
|
|
35
35
|
OpenMainMenu(): void;
|
|
36
36
|
RequestExtendSideMenuVisibility(): () => void;
|
|
37
37
|
SetSuppressMenus(): () => void;
|
|
38
|
-
ToggleSideMenu(menu:
|
|
38
|
+
ToggleSideMenu(menu: SideMenu): void;
|
|
39
39
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export var
|
|
2
|
-
(function (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
})(
|
|
14
|
-
export var
|
|
15
|
-
(function (
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
})(
|
|
1
|
+
export var QuickAccessTab;
|
|
2
|
+
(function (QuickAccessTab) {
|
|
3
|
+
QuickAccessTab[QuickAccessTab["Notifications"] = 0] = "Notifications";
|
|
4
|
+
QuickAccessTab[QuickAccessTab["RemotePlayTogetherControls"] = 1] = "RemotePlayTogetherControls";
|
|
5
|
+
QuickAccessTab[QuickAccessTab["VoiceChat"] = 2] = "VoiceChat";
|
|
6
|
+
QuickAccessTab[QuickAccessTab["Friends"] = 3] = "Friends";
|
|
7
|
+
QuickAccessTab[QuickAccessTab["Settings"] = 4] = "Settings";
|
|
8
|
+
QuickAccessTab[QuickAccessTab["Perf"] = 5] = "Perf";
|
|
9
|
+
QuickAccessTab[QuickAccessTab["Help"] = 6] = "Help";
|
|
10
|
+
QuickAccessTab[QuickAccessTab["Soundtrack"] = 7] = "Soundtrack";
|
|
11
|
+
QuickAccessTab[QuickAccessTab["VRBatteries"] = 8] = "VRBatteries";
|
|
12
|
+
QuickAccessTab[QuickAccessTab["Decky"] = 999] = "Decky";
|
|
13
|
+
})(QuickAccessTab || (QuickAccessTab = {}));
|
|
14
|
+
export var SideMenu;
|
|
15
|
+
(function (SideMenu) {
|
|
16
|
+
SideMenu[SideMenu["None"] = 0] = "None";
|
|
17
|
+
SideMenu[SideMenu["Main"] = 1] = "Main";
|
|
18
|
+
SideMenu[SideMenu["QuickAccess"] = 2] = "QuickAccess";
|
|
19
|
+
})(SideMenu || (SideMenu = {}));
|
package/dist/modules/Router.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSteamUIStore } from "../globals/stores/steamuistore";
|
|
2
|
-
import type {
|
|
2
|
+
import type { QuickAccessTab, SideMenu } from "../globals/stores/steamuistore/menu";
|
|
3
3
|
export declare const Router: CSteamUIStore;
|
|
4
4
|
export interface Navigation {
|
|
5
5
|
Navigate(path: string): void;
|
|
@@ -11,8 +11,8 @@ export interface Navigation {
|
|
|
11
11
|
NavigateToLibraryTab(): void;
|
|
12
12
|
NavigateToLayoutPreview(e: unknown): void;
|
|
13
13
|
NavigateToSteamWeb(url: string): void;
|
|
14
|
-
OpenSideMenu(sideMenu:
|
|
15
|
-
OpenQuickAccessMenu(quickAccessTab?:
|
|
14
|
+
OpenSideMenu(sideMenu: SideMenu): void;
|
|
15
|
+
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
|
16
16
|
OpenMainMenu(): void;
|
|
17
17
|
OpenPowerMenu(unknown?: any): void;
|
|
18
18
|
CloseSideMenus(): void;
|
package/dist/utils/react/fc.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createElement } from 'react';
|
|
2
2
|
import { applyHookStubs, removeHookStubs } from './react';
|
|
3
3
|
import Logger from '../../logger';
|
|
4
|
-
let loggingEnabled =
|
|
4
|
+
let loggingEnabled = true;
|
|
5
5
|
export function setFCTrampolineLoggingEnabled(value = true) { loggingEnabled = value; }
|
|
6
6
|
;
|
|
7
7
|
let logger = new Logger('FCTrampoline');
|
|
@@ -13,7 +13,9 @@ export function injectFCTrampoline(component, customHooks) {
|
|
|
13
13
|
const userComponent = { component: newComponent };
|
|
14
14
|
component.prototype.render = function (...args) {
|
|
15
15
|
loggingEnabled && logger.debug("rendering trampoline", args, this);
|
|
16
|
-
|
|
16
|
+
const ret = createElement(userComponent.component, this.props, this.props.children);
|
|
17
|
+
loggingEnabled && logger.debug("trampoline", ret);
|
|
18
|
+
return ret;
|
|
17
19
|
};
|
|
18
20
|
component.prototype.isReactComponent = true;
|
|
19
21
|
let stubsApplied = false;
|
|
@@ -30,9 +30,9 @@ export function applyHookStubs(customHooks = {}) {
|
|
|
30
30
|
hooks.useCallback = (cb) => cb;
|
|
31
31
|
hooks.useContext = (cb) => cb?._currentValue;
|
|
32
32
|
hooks.useLayoutEffect = (_) => { };
|
|
33
|
-
hooks.useMemo = (
|
|
33
|
+
hooks.useMemo = (_, __) => ({});
|
|
34
34
|
hooks.useEffect = (_) => { };
|
|
35
|
-
hooks.useRef = (val) => ({ current: val ||
|
|
35
|
+
hooks.useRef = (val) => ({ current: val || void 0 });
|
|
36
36
|
hooks.useState = (v) => {
|
|
37
37
|
let val = v;
|
|
38
38
|
return [val, (n) => (val = n)];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Logger from '../../logger';
|
|
2
2
|
import { afterPatch } from '../patcher';
|
|
3
3
|
import { wrapReactClass, wrapReactType } from './react';
|
|
4
|
-
let loggingEnabled =
|
|
4
|
+
let loggingEnabled = true;
|
|
5
5
|
let perfLoggingEnabled = false;
|
|
6
6
|
export function setReactPatcherLoggingEnabled(value = true) { loggingEnabled = value; }
|
|
7
7
|
;
|
package/package.json
CHANGED
package/src/globals/index.ts
CHANGED
|
@@ -21,6 +21,25 @@ import type {
|
|
|
21
21
|
} from './stores';
|
|
22
22
|
|
|
23
23
|
declare global {
|
|
24
|
+
var App: CApp;
|
|
25
|
+
var appStore: CAppStore;
|
|
26
|
+
var appDetailsStore: CAppDetailsStore;
|
|
27
|
+
var badgeStore: CBadgeStore;
|
|
28
|
+
var collectionStore: CCollectionStore;
|
|
29
|
+
var ConsoleStore: CConsoleStore;
|
|
30
|
+
var FocusNavController: CFocusNavController;
|
|
31
|
+
var friendStore: CFriendStore;
|
|
32
|
+
var g_GRS: CGameRecordingStore;
|
|
33
|
+
var g_PopupManager: CPopupManager;
|
|
34
|
+
var LocalizationManager: CLocalizationManager;
|
|
35
|
+
var MainWindowBrowserManager: CMainWindowBrowserManager;
|
|
36
|
+
var NotificationStore: CNotificationStore;
|
|
37
|
+
var securitystore: CSecurityStore;
|
|
38
|
+
var settingsStore: CSettingsStore;
|
|
39
|
+
var SteamClient: SteamClient;
|
|
40
|
+
var SteamUIStore: CSteamUIStore;
|
|
41
|
+
var uiStore: CLibraryUIStore;
|
|
42
|
+
var urlStore: CURLStore;
|
|
24
43
|
interface Window {
|
|
25
44
|
App: CApp;
|
|
26
45
|
appStore: CAppStore;
|
|
@@ -43,3 +62,7 @@ declare global {
|
|
|
43
62
|
urlStore: CURLStore;
|
|
44
63
|
}
|
|
45
64
|
}
|
|
65
|
+
|
|
66
|
+
export * from "./shared";
|
|
67
|
+
export * from "./steam-client";
|
|
68
|
+
export * from "./stores";
|
|
@@ -131,12 +131,12 @@ export interface TrayNotification {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
export interface NotificationTarget {
|
|
134
|
-
eFeature
|
|
135
|
-
fnNotificationResolved
|
|
136
|
-
fnShowModal
|
|
137
|
-
fnTray
|
|
138
|
-
nRemoveFromTraySec
|
|
139
|
-
toastDurationMS
|
|
134
|
+
eFeature?: EParentalFeature;
|
|
135
|
+
fnNotificationResolved?: () => void;
|
|
136
|
+
fnShowModal?: () => void;
|
|
137
|
+
fnTray?: (target: NotificationTarget, notificationsInTray: TrayNotification[]) => void;
|
|
138
|
+
nRemoveFromTraySec?: number;
|
|
139
|
+
toastDurationMS?: number;
|
|
140
140
|
type: EClientNotificationType;
|
|
141
141
|
}
|
|
142
142
|
|
|
@@ -34,7 +34,7 @@ export interface CSteamUIStore {
|
|
|
34
34
|
m_bStreamingRemotePlayTogether: boolean;
|
|
35
35
|
m_eErrorCondition: ERefreshLoginReason;
|
|
36
36
|
m_eErrorConditionResult: EResult;
|
|
37
|
-
|
|
37
|
+
m_mainInstancUIMode: EUIMode;
|
|
38
38
|
m_nResumeStreamingInputTimeoutHandle: number;
|
|
39
39
|
m_navigationSource: NavigationSource;
|
|
40
40
|
m_runningAppIDs: number[];
|
|
@@ -197,7 +197,7 @@ export interface CSteamUIStore {
|
|
|
197
197
|
get ErrorConditionResult(): EResult;
|
|
198
198
|
get ForceBetaSectionVisible(): boolean;
|
|
199
199
|
get GamepadUIAudio(): CGamepadUIAudioStore;
|
|
200
|
-
get
|
|
200
|
+
get MainInstancUIMode(): EUIMode;
|
|
201
201
|
get MainRunningApp(): SteamAppOverview | undefined;
|
|
202
202
|
get MainRunningAppID(): number | undefined;
|
|
203
203
|
get MostRecentlyActiveController(): ControllerInfo;
|
|
@@ -210,3 +210,8 @@ export interface CSteamUIStore {
|
|
|
210
210
|
get TextFilterStore(): any;
|
|
211
211
|
get WindowStore(): CWindowStore;
|
|
212
212
|
}
|
|
213
|
+
|
|
214
|
+
export * from "./gamepadbrowserview";
|
|
215
|
+
export * from "./gamepaduiaudio";
|
|
216
|
+
export * from "./menu";
|
|
217
|
+
export * from "./window";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export enum
|
|
1
|
+
export enum QuickAccessTab {
|
|
2
2
|
Notifications,
|
|
3
3
|
RemotePlayTogetherControls,
|
|
4
4
|
VoiceChat,
|
|
@@ -11,7 +11,7 @@ export enum EQuickAccessTab {
|
|
|
11
11
|
Decky = 999,
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export enum
|
|
14
|
+
export enum SideMenu {
|
|
15
15
|
None,
|
|
16
16
|
Main,
|
|
17
17
|
QuickAccess,
|
|
@@ -21,9 +21,9 @@ export declare class CMenuStore {
|
|
|
21
21
|
m_MainMenuStore: any;
|
|
22
22
|
m_cSideMenuExtendedVisibilityRequests: number;
|
|
23
23
|
m_cSuppressRequests: number;
|
|
24
|
-
m_eLastRequestedSideMenu:
|
|
25
|
-
m_eOpenSideMenu:
|
|
26
|
-
|
|
24
|
+
m_eLastRequestedSideMenu: SideMenu;
|
|
25
|
+
m_eOpenSideMenu: SideMenu;
|
|
26
|
+
m_QuickAccessTab: QuickAccessTab;
|
|
27
27
|
|
|
28
28
|
ClearLastRequestedSideMenu(): void;
|
|
29
29
|
|
|
@@ -32,44 +32,44 @@ export declare class CMenuStore {
|
|
|
32
32
|
*/
|
|
33
33
|
CloseSideMenus(): void;
|
|
34
34
|
|
|
35
|
-
GetLastRequestedSideMenu():
|
|
35
|
+
GetLastRequestedSideMenu(): SideMenu;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* @returns the currently opened side menu.
|
|
39
39
|
*/
|
|
40
|
-
GetOpenSideMenu():
|
|
40
|
+
GetOpenSideMenu(): SideMenu;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* @returns the currently opened quick access menu tab.
|
|
44
44
|
*/
|
|
45
|
-
GetQuickAccessTab():
|
|
45
|
+
GetQuickAccessTab(): QuickAccessTab;
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* @returns `true` if any of the side menus is visible.
|
|
49
49
|
*/
|
|
50
50
|
IsAnySideMenuVisible(): boolean;
|
|
51
51
|
|
|
52
|
-
// same as above but instead checks if
|
|
52
|
+
// same as above but instead checks if SideMenu isn't SideMenu.None ???
|
|
53
53
|
IsSideMenuInteractable(): boolean;
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* @returns `true` if the provided side menu is visible.
|
|
57
57
|
*/
|
|
58
|
-
IsSideMenuVisible(menu:
|
|
58
|
+
IsSideMenuVisible(menu: SideMenu): boolean;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Opens a provided side menu.
|
|
62
62
|
*
|
|
63
63
|
* @param menu The menu to open.
|
|
64
64
|
*/
|
|
65
|
-
OpenSideMenu(menu:
|
|
65
|
+
OpenSideMenu(menu: SideMenu): void;
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* Opens the quick access menu.
|
|
69
69
|
*
|
|
70
70
|
* @param tab The tab to open.
|
|
71
71
|
*/
|
|
72
|
-
OpenQuickAccessMenu(tab?:
|
|
72
|
+
OpenQuickAccessMenu(tab?: QuickAccessTab): void;
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* Opens the main side menu.
|
|
@@ -85,5 +85,5 @@ export declare class CMenuStore {
|
|
|
85
85
|
*
|
|
86
86
|
* @param menu The side menu to close/open.
|
|
87
87
|
*/
|
|
88
|
-
ToggleSideMenu(menu:
|
|
88
|
+
ToggleSideMenu(menu: SideMenu): void;
|
|
89
89
|
}
|
package/src/modules/Router.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSteamUIStore } from "../globals/stores/steamuistore";
|
|
2
|
-
import type {
|
|
2
|
+
import type { QuickAccessTab, SideMenu } from "../globals/stores/steamuistore/menu";
|
|
3
3
|
import type { SteamUIWindowInstance } from "../globals/stores/steamuistore/window";
|
|
4
4
|
import Logger from "../logger";
|
|
5
5
|
import { type Export, findModuleExport } from "../webpack";
|
|
@@ -18,8 +18,8 @@ export interface Navigation {
|
|
|
18
18
|
NavigateToLibraryTab(): void;
|
|
19
19
|
NavigateToLayoutPreview(e: unknown): void;
|
|
20
20
|
NavigateToSteamWeb(url: string): void;
|
|
21
|
-
OpenSideMenu(sideMenu:
|
|
22
|
-
OpenQuickAccessMenu(quickAccessTab?:
|
|
21
|
+
OpenSideMenu(sideMenu: SideMenu): void;
|
|
22
|
+
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
|
23
23
|
OpenMainMenu(): void;
|
|
24
24
|
OpenPowerMenu(unknown?: any): void;
|
|
25
25
|
/** if calling this to perform navigation, call it after Navigate to prevent a race condition in desktop Big Picture mode that hides the overlay unintentionally */
|
package/src/utils/react/fc.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface FCTrampoline {
|
|
|
7
7
|
component: FC
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
let loggingEnabled =
|
|
10
|
+
let loggingEnabled = true;
|
|
11
11
|
|
|
12
12
|
export function setFCTrampolineLoggingEnabled(value: boolean = true) { loggingEnabled = value };
|
|
13
13
|
|
|
@@ -38,7 +38,9 @@ export function injectFCTrampoline(component: FC, customHooks?: any): FCTrampoli
|
|
|
38
38
|
component.prototype.render = function (...args: any[]) {
|
|
39
39
|
loggingEnabled && logger.debug("rendering trampoline", args, this);
|
|
40
40
|
// Pass through rendering via creating the component as a child so React can use function component logic instead of class component logic (setting up the hooks)
|
|
41
|
-
|
|
41
|
+
const ret = createElement(userComponent.component, this.props, this.props.children);
|
|
42
|
+
loggingEnabled && logger.debug("trampoline", ret);
|
|
43
|
+
return ret;
|
|
42
44
|
};
|
|
43
45
|
component.prototype.isReactComponent = true;
|
|
44
46
|
let stubsApplied = false;
|
package/src/utils/react/react.ts
CHANGED
|
@@ -58,9 +58,9 @@ export function applyHookStubs(customHooks: any = {}): any {
|
|
|
58
58
|
hooks.useCallback = (cb: Function) => cb;
|
|
59
59
|
hooks.useContext = (cb: any) => cb?._currentValue;
|
|
60
60
|
hooks.useLayoutEffect = (_: Function) => {}; //cb();
|
|
61
|
-
hooks.useMemo = (
|
|
61
|
+
hooks.useMemo = (_: Function, __: any[]) => ({}); //cb()
|
|
62
62
|
hooks.useEffect = (_: Function) => {}; //cb();
|
|
63
|
-
hooks.useRef = (val: any) => ({ current: val ||
|
|
63
|
+
hooks.useRef = (val: any) => ({ current: val || void 0 });
|
|
64
64
|
hooks.useState = (v: any) => {
|
|
65
65
|
let val = v;
|
|
66
66
|
|
|
@@ -12,7 +12,7 @@ export type NodeStep = GenericNodeStep;
|
|
|
12
12
|
export type ReactPatchHandler = GenericPatchHandler;
|
|
13
13
|
|
|
14
14
|
// These will get *very* spammy.
|
|
15
|
-
let loggingEnabled =
|
|
15
|
+
let loggingEnabled = true;
|
|
16
16
|
let perfLoggingEnabled = false;
|
|
17
17
|
|
|
18
18
|
export function setReactPatcherLoggingEnabled(value: boolean = true) { loggingEnabled = value };
|