mirror of
https://github.com/SteamDeckHomebrew/decky-frontend-lib.git
synced 2026-05-22 19:08:46 +02:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66eb0cbbf3 | ||
|
|
6996e5424f | ||
|
|
ad643836f0 |
@@ -1,3 +1,10 @@
|
|||||||
|
## [3.2.1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.2.0...v3.2.1) (2022-09-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **modal:** update showModal types ([#27](https://github.com/SteamDeckHomebrew/decky-frontend-lib/issues/27)) ([6996e54](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/6996e5424f33467ef5bb93f47614058c127cb3ee))
|
||||||
|
|
||||||
# [3.2.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.1.4...v3.2.0) (2022-09-20)
|
# [3.2.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.1.4...v3.2.0) (2022-09-20)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "decky-frontend-lib",
|
"name": "decky-frontend-lib",
|
||||||
"version": "3.2.0",
|
"version": "3.2.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "decky-frontend-lib",
|
"name": "decky-frontend-lib",
|
||||||
"version": "3.2.0",
|
"version": "3.2.1",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimist": "^1.2.6"
|
"minimist": "^1.2.6"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "decky-frontend-lib",
|
"name": "decky-frontend-lib",
|
||||||
"version": "3.2.0",
|
"version": "3.2.1",
|
||||||
"description": "A library for building decky plugins",
|
"description": "A library for building decky plugins",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { CSSProperties, FC, RefAttributes } from 'react';
|
import { CSSProperties, FC, RefAttributes } from 'react';
|
||||||
|
|
||||||
import { CommonUIModule } from '../webpack';
|
import { CommonUIModule } from '../webpack';
|
||||||
|
import { FooterLegendProps } from './FooterLegend';
|
||||||
|
|
||||||
export interface DialogButtonProps extends RefAttributes<HTMLDivElement> {
|
export interface DialogButtonProps extends RefAttributes<HTMLDivElement>, FooterLegendProps {
|
||||||
label?: string;
|
label?: string;
|
||||||
style?: CSSProperties;
|
style?: CSSProperties;
|
||||||
className?: string;
|
className?: string;
|
||||||
|
|||||||
@@ -30,6 +30,14 @@ export enum GamepadButton {
|
|||||||
STEAM_QUICK_MENU
|
STEAM_QUICK_MENU
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum NavEntryPositionPreferences {
|
||||||
|
FIRST,
|
||||||
|
LAST,
|
||||||
|
MAINTAIN_X,
|
||||||
|
MAINTAIN_Y,
|
||||||
|
PREFERRED_CHILD
|
||||||
|
}
|
||||||
|
|
||||||
export interface GamepadEventDetail {
|
export interface GamepadEventDetail {
|
||||||
button: number;
|
button: number;
|
||||||
is_repeat?: boolean;
|
is_repeat?: boolean;
|
||||||
|
|||||||
@@ -1,9 +1,33 @@
|
|||||||
import { FC, ReactNode } from 'react';
|
import { FC, ReactNode } from 'react';
|
||||||
|
|
||||||
import { findModuleChild } from '../webpack';
|
import { findModuleChild } from '../webpack';
|
||||||
|
|
||||||
// TODO: there is another argument, figure out what it does
|
// All of the popout options + strTitle are related. Proper usage is not yet known...
|
||||||
export const showModal: (children: ReactNode, parent?: EventTarget) => void = findModuleChild((m) => {
|
export interface ShowModalProps {
|
||||||
|
browserContext?: unknown; // This is another Deck Object that is yet to be found
|
||||||
|
bForcePopOut?: boolean;
|
||||||
|
bHideActionIcons?: boolean;
|
||||||
|
bHideMainWindowForPopouts?: boolean;
|
||||||
|
bNeverPopOut?: boolean;
|
||||||
|
fnOnClose?: () => void; // Seems to be the same as "closeModal" callback, but only when the modal is a popout. Will no longer work after "Update" invocation!
|
||||||
|
popupHeight?: number;
|
||||||
|
popupWidth?: number;
|
||||||
|
promiseRenderComplete?: Promise<void>; // Invoked once the render is complete. Currently, it seems to be used as image loading success/error callback...
|
||||||
|
strTitle?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ShowModalResult {
|
||||||
|
// This method will not invoke any of the variations of "closeModal" callbacks!
|
||||||
|
Close: () => void;
|
||||||
|
|
||||||
|
// This method will replace the modal element completely and will not update the callback chains,
|
||||||
|
// meaning that "closeModal" and etc. will not automatically close the modal anymore (also "fnOnClose"
|
||||||
|
// will not be even called upon close anymore)! You have to manually call the "Close" method when, for example,
|
||||||
|
// the "closeModal" is invoked in the newly updated modal:
|
||||||
|
// <ModalRoot closeModal={() => { console.log("ABOUT TO CLOSE"); showModalRes.Close(); }} />
|
||||||
|
Update: (modal: ReactNode) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const showModal: (modal: ReactNode, parent?: EventTarget, props?: ShowModalProps) => Promise<ShowModalResult> = findModuleChild((m) => {
|
||||||
if (typeof m !== 'object') return undefined;
|
if (typeof m !== 'object') return undefined;
|
||||||
for (let prop in m) {
|
for (let prop in m) {
|
||||||
if (typeof m[prop] === 'function' && m[prop].toString().includes('bHideMainWindowForPopouts:!0')) {
|
if (typeof m[prop] === 'function' && m[prop].toString().includes('bHideMainWindowForPopouts:!0')) {
|
||||||
@@ -46,4 +70,4 @@ export const ModalRoot = findModuleChild((m) => {
|
|||||||
return m[prop];
|
return m[prop];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}) as FC<ModalRootProps>;
|
}) as FC<ModalRootProps>;
|
||||||
|
|||||||
Reference in New Issue
Block a user