Compare commits

...

15 Commits

Author SHA1 Message Date
semantic-release-bot
0cee60d122 chore(release): 0.11.1 [CI SKIP] 2022-06-23 00:42:16 +00:00
AAGaming
7efc0347f7 fix(Router): make specifying quick access tab not required 2022-06-22 20:41:22 -04:00
semantic-release-bot
d227858e62 chore(release): 0.11.0 [CI SKIP] 2022-06-20 21:37:03 +00:00
AAGaming
db64f34725 feat(utils): add sleep util 2022-06-20 17:35:56 -04:00
semantic-release-bot
b08aadb810 chore(release): 0.10.5 [CI SKIP] 2022-06-20 03:15:39 +00:00
AAGaming
2afb7f16bb fix(patcher): why the hell did i do it that way 2022-06-19 23:14:52 -04:00
semantic-release-bot
32d1303191 chore(release): 0.10.4 [CI SKIP] 2022-06-19 15:40:15 +00:00
AAGaming
1ce15d261f fix(plugin): correct return type on injectCssIntoTab 2022-06-19 11:39:35 -04:00
semantic-release-bot
bf52e0761c chore(release): 0.10.3 [CI SKIP] 2022-06-18 15:16:51 +00:00
AAGaming
823a2745f9 fix(ServerAPI): add injectCssIntoTab to serverAPI typings 2022-06-18 11:10:35 -04:00
semantic-release-bot
21f7874cab chore(release): 0.10.2 [CI SKIP] 2022-06-16 21:33:44 +00:00
AAGaming
077334e376 fix(Router): add NavigateBackOrOpenMenu() 2022-06-16 17:32:58 -04:00
semantic-release-bot
02f4c5c518 chore(release): 0.10.1 [CI SKIP] 2022-06-16 21:27:22 +00:00
AAGaming
f1e20cd0b5 fix(Focusable): add ref prop, fix event types 2022-06-16 17:26:31 -04:00
Jonas Dellinger
b5d9265705 chore(release): also include package-lock.json in release assets 2022-06-13 10:53:01 +02:00
8 changed files with 67 additions and 12 deletions

View File

@@ -9,7 +9,7 @@
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "package.json"],
"assets": ["CHANGELOG.md", "package.json", "package-lock.json"],
"message": "chore(release): ${nextRelease.version} [CI SKIP]"
}
]

View File

@@ -1,3 +1,52 @@
## [0.11.1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.11.0...v0.11.1) (2022-06-23)
### Bug Fixes
* **Router:** make specifying quick access tab not required ([7efc034](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/7efc0347f7aa22773feccb0763280c4fd1c4a231))
# [0.11.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.5...v0.11.0) (2022-06-20)
### Features
* **utils:** add sleep util ([db64f34](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/db64f3472542b080b1d470c6b8d7aa441db0bfe6))
## [0.10.5](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.4...v0.10.5) (2022-06-20)
### Bug Fixes
* **patcher:** why the hell did i do it that way ([2afb7f1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/2afb7f16bb219013d338bc4e002605d32235385c))
## [0.10.4](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.3...v0.10.4) (2022-06-19)
### Bug Fixes
* **plugin:** correct return type on injectCssIntoTab ([1ce15d2](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/1ce15d261f4726a2f8bdaff7c8a98497f2622969))
## [0.10.3](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.2...v0.10.3) (2022-06-18)
### Bug Fixes
* **ServerAPI:** add injectCssIntoTab to serverAPI typings ([823a274](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/823a2745f9717ed2d2a5d95e2ef25739bffc18c9))
## [0.10.2](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.1...v0.10.2) (2022-06-16)
### Bug Fixes
* **Router:** add NavigateBackOrOpenMenu() ([077334e](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/077334e376fb42283e094f0b57c818c580c6f7ba))
## [0.10.1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.10.0...v0.10.1) (2022-06-16)
### Bug Fixes
* **Focusable:** add ref prop, fix event types ([f1e20cd](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/f1e20cd0b54622d634202c85cca920323e4df336))
# [0.10.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v0.9.1...v0.10.0) (2022-06-10)

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "decky-frontend-lib",
"version": "0.0.6",
"version": "0.11.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "decky-frontend-lib",
"version": "0.0.6",
"version": "0.11.1",
"hasInstallScript": true,
"license": "GPL-2.0-or-later",
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "decky-frontend-lib",
"version": "0.10.0",
"version": "0.11.1",
"description": "A library for building decky plugins",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View File

@@ -1,4 +1,4 @@
import { HTMLAttributes, ReactNode, VFC } from "react";
import { HTMLAttributes, ReactNode, RefAttributes, VFC } from "react";
import { findModuleChild } from "../webpack";
export interface FocusableProps extends HTMLAttributes<HTMLDivElement> {
@@ -6,8 +6,8 @@ export interface FocusableProps extends HTMLAttributes<HTMLDivElement> {
"flow-children"?: string;
focusClassName?: string;
focusWithinClassName?: string;
onActivate?: () => void;
onCancel?: () => void;
onActivate?: (e: CustomEvent) => void;
onCancel?: (e: CustomEvent) => void;
}
export const Focusable = findModuleChild((m) => {
@@ -16,4 +16,4 @@ export const Focusable = findModuleChild((m) => {
if (m[prop]?.render?.toString()?.includes('["flow-children","onActivate","onCancel","focusClassName",'))
return m[prop];
}
}) as VFC<FocusableProps>;
}) as VFC<FocusableProps & RefAttributes<HTMLDivElement>>;

View File

@@ -19,9 +19,10 @@ export enum QuickAccessTab {
export interface Router {
CloseSideMenus(): void;
OpenQuickAccessMenu(quickAccessTab: QuickAccessTab): void;
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
GetQuickAccessTab(): QuickAccessTab;
Navigate(path: string): void;
NavigateBackOrOpenMenu(): void;
NavigateToExternalWeb(url: string): void;
NavigateToStore(): void;
ToggleSideMenu(sideMenu: SideMenu): void;

View File

@@ -31,6 +31,7 @@ export interface ServerAPI {
callServerMethod<TArgs = {}, TRes = {}>(methodName: string, args: TArgs): Promise<ServerResponse<TRes>>;
fetchNoCors<TRes = {}>(url: string, request: RequestInfo): Promise<ServerResponse<TRes>>;
executeInTab(tab: string, runAsync: boolean, code: string): Promise<unknown>;
injectCssIntoTab<TRes = string>(tab: string, style: string): Promise<ServerResponse<TRes>>;
removeCssFromTab(tab: string, cssId: string): Promise<unknown>;
}

View File

@@ -42,7 +42,7 @@ export function fakeRenderComponent(fun: Function): any {
return res;
}
export function beforePatch(obj: any, name: string, fnc: Function): void {
export function beforePatch(obj: any, name: string, fnc: (args: any[]) => any): void {
const orig = obj[name];
obj[name] = function (...args: any[]) {
fnc.call(this, args);
@@ -53,7 +53,7 @@ export function beforePatch(obj: any, name: string, fnc: Function): void {
obj[name].__deckyOrig = orig;
}
export function afterPatch(obj: any, name: string, fnc: Function): void {
export function afterPatch(obj: any, name: string, fnc: (args: any[], ret: any) => any): void {
const orig = obj[name];
obj[name] = function (...args: any[]) {
let ret = orig.call(this, ...args);
@@ -65,7 +65,7 @@ export function afterPatch(obj: any, name: string, fnc: Function): void {
obj[name].__deckyOrig = orig;
}
export function replacePatch(obj: any, name: string, fnc: Function): void {
export function replacePatch(obj: any, name: string, fnc: (args: any[]) => any): void {
const orig = obj[name];
obj[name] = function (...args: any[]) {
const ret = fnc.call(this, args);
@@ -88,4 +88,8 @@ export function getReactInstance(o: HTMLElement | Element | Node) {
export function joinClassNames(...classes: string[]): string {
return classes.join(" ");
}
export function sleep(ms: number) {
return new Promise(res => setTimeout(res, ms));
}