Compare commits

..

10 Commits

Author SHA1 Message Date
semantic-release-bot
9a691cea09 chore(release): 3.21.2 [CI SKIP] 2023-06-18 17:15:58 +00:00
AAGaming
44d9b90cdc fix(SidebarNavigation): allow ReactNode for page title 2023-06-18 13:15:21 -04:00
TrainDoctor
585c3b8348 Merge pull request #85 from Woovie/patch-1
Update Discord link
2023-06-07 17:35:53 -07:00
Jordan Banasik
1287493b63 Update Discord link 2023-06-07 17:15:40 -07:00
semantic-release-bot
bf01a0184b chore(release): 3.21.1 [CI SKIP] 2023-05-28 23:16:04 +00:00
Jonas Dellinger
fb5f043ba9 fix(reorderable-list): open label type from string to ReactNode 2023-05-29 01:14:59 +02:00
semantic-release-bot
26f2c92dce chore(release): 3.21.0 [CI SKIP] 2023-05-19 14:04:38 +00:00
TrainDoctor
01e53d4c13 Merge pull request #84 from Maclay74/feature/gamepad-ui-classes
Gamepad UI classes, fix findSP to return null when not found
2023-05-19 07:03:59 -07:00
Mikhail Kozlov
18d341f82a fix(Utils): return null when SP not found 2023-05-18 11:41:45 -07:00
Mikhail Kozlov
3ca8c43a54 feat(StaticClasses): add new GamepadUI classes 2023-05-18 11:40:41 -07:00
7 changed files with 100 additions and 8 deletions

View File

@@ -1,3 +1,29 @@
## [3.21.2](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.21.1...v3.21.2) (2023-06-18)
### Bug Fixes
* **SidebarNavigation:** allow ReactNode for page title ([44d9b90](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/44d9b90cdcfb9e6441fdb1e4b21fe844f1f29fd5))
## [3.21.1](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.21.0...v3.21.1) (2023-05-28)
### Bug Fixes
* **reorderable-list:** open label type from string to ReactNode ([fb5f043](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/fb5f043ba9eeed0209960c8ae4ae597c2831b8c8))
# [3.21.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.20.7...v3.21.0) (2023-05-19)
### Bug Fixes
* **Utils:** return null when SP not found ([18d341f](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/18d341f82acf843ff830d1bf3d44678f3f2eda52))
### Features
* **StaticClasses:** add new GamepadUI classes ([3ca8c43](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/3ca8c43a542b1049c4e203ad186e555401fbfbfe))
## [3.20.7](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.20.6...v3.20.7) (2023-05-10)

View File

@@ -2,9 +2,9 @@
Library used to develop plugins used for use with [decky-loader](https://github.com/SteamDeckHomebrew/decky-loader).
## Decky Loader Discord [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/ZU74G2NJzk)
## Decky Loader Discord [![Chat](https://img.shields.io/discord/960281551428522045?color=%235865F2&label=discord)](https://deckbrew.xyz/discord)
Please contact the developers here for questions and support that cannot be addressed via a Github issue.
Please [contact the developers here](https://deckbrew.xyz/discord) for questions and support that cannot be addressed via a Github issue.
## Developers and Contributors

View File

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

View File

@@ -1,4 +1,4 @@
import { Fragment, JSXElementConstructor, ReactElement, useEffect, useState } from 'react';
import { Fragment, JSXElementConstructor, ReactElement, ReactNode, useEffect, useState } from 'react';
import { Field, FieldProps, Focusable, GamepadButton } from '../deck-components';
@@ -9,7 +9,7 @@ import { Field, FieldProps, Focusable, GamepadButton } from '../deck-components'
* @param position The position of this entry in the list.
*/
export type ReorderableEntry<T> = {
label: string;
label: ReactNode;
data?: T;
position: number;
};

View File

@@ -3,7 +3,7 @@ import { ReactNode, VFC } from 'react';
import { Module, findModuleChild } from '../webpack';
export interface SidebarNavigationPage {
title: string;
title: ReactNode;
content: ReactNode;
icon?: ReactNode;
visible?: boolean;

View File

@@ -441,6 +441,69 @@ type AppDetailsClasses = Record<
string
>;
type GamepadUIClasses = Record<
| 'duration-app-launch'
| 'TransitionMenuDelay'
| 'PanelSection'
| 'PanelSectionTitle'
| 'Text'
| 'PanelSectionRow'
| 'Label'
| 'ComingSoon'
| 'LowBattery'
| 'ReallyLow'
| 'LowBatteryGauge'
| 'Remaining'
| 'EmptyNotifications'
| 'BatterySectionContainer'
| 'BatteryIcon'
| 'BatteryPercentageLabel'
| 'BatteryDetailsLabels'
| 'BatteryProjectedValue'
| 'BatteryProjectedLabel'
| 'ViewPlaceholder'
| 'FullHeight'
| 'Title'
| 'Container'
| 'Open'
| 'QuickAccessMenu'
| 'HeaderContainer'
| 'Menu'
| 'HeaderAndFooterVisible'
| 'TabContentColumn'
| 'Tabs'
| 'Tab'
| 'Selected'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'VoiceTab'
| 'ItemFocusAnim-green'
| 'Blocked'
| 'TabPanelHidden'
| 'FriendsTitle'
| 'FriendsListTabPanel'
| 'PanelOuterNav'
| 'PanelExitAnchor'
| 'TabGroupPanel'
| 'FooterBoxShadow'
| 'AllTabContents'
| 'ContentTransition'
| 'ActiveTab'
| 'Up'
| 'Enter'
| 'EnterActive'
| 'Exit'
| 'ExitActive'
| 'Down'
| 'KeyboardButton'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
export const quickAccessMenuClasses: QuickAccessMenuClasses = findModule(
(mod) => typeof mod === 'object' && mod?.Title?.includes('quickaccessmenu'),
);
@@ -476,3 +539,6 @@ export const appDetailsHeaderClasses: AppDetailsHeaderClasses = findModule(
export const appDetailsClasses: AppDetailsClasses = findModule(
(mod) => typeof mod === 'object' && mod?.HeaderLoaded?.includes('appdetails_'),
);
export const gamepadUIClasses: GamepadUIClasses = findModule(
(mod) => typeof mod === 'object' && mod?.BasicUiRoot?.includes('gamepadui_'),
);

View File

@@ -22,7 +22,7 @@ export function findSP(): Window {
if (document.title == 'SP') return window;
// new (SP as popup)
const navTrees = getGamepadNavigationTrees();
return navTrees.find((x: any) => x.m_ID == 'root_1_').Root.Element.ownerDocument.defaultView;
return navTrees?.find((x: any) => x.m_ID == 'root_1_').Root.Element.ownerDocument.defaultView;
}
/**
@@ -38,5 +38,5 @@ export function getFocusNavController(): any {
export function getGamepadNavigationTrees(): any {
const focusNav = getFocusNavController();
const context = focusNav.m_ActiveContext || focusNav.m_LastActiveContext;
return context.m_rgGamepadNavigationTrees;
return context?.m_rgGamepadNavigationTrees;
}