Code Monkey home page Code Monkey logo

decky-frontend-lib's Introduction

Decky Frontend Library

Library used to develop plugins used for use with decky-loader.

Decky Loader Discord Chat

Please contact the developers here for questions and support that cannot be addressed via a Github issue.

Developers and Contributors

This library is focused on usage by developers to provide custom React components based on those found in the Steam Deck's React UI.
This method allows developers to add UI elements and code without clobbering the existing UI of the deck in order to do so.
This library can also theoretically be used to extend existing UI elements of the Steam Deck UI but this has not been tested extensively.

Getting Started (Contributors)

  1. Clone the repository to your preferred location
  2. If you wish to add features such as new UI components, please create a feature branch to PR to the original repo.
  3. Bug/hotfixes are acceptable on the main branch,

Getting Started (Developers)

If you would like a feature added to decky-frontend-lib, please request it via a Github issue.

If you want to start making a plugin with decky-frontend-lib, please direct your attention to the decky-plugin-template repository.

This library can be found on npm and as such you can pull it without a local copy for your project as needed.

decky-frontend-lib's People

Contributors

aagaming00 avatar barenddt avatar beebls avatar botatooo avatar dependabot[bot] avatar devnoot avatar dozennn avatar frogthefrog avatar hulkrelax avatar jessebofill avatar johnnycrazy avatar jurassicplayer avatar martmists-gh avatar omgduke avatar partywumpus avatar rodoma92 avatar scrumplex avatar semantic-release-bot avatar tormak9970 avatar traindoctor avatar woovie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

decky-frontend-lib's Issues

PanelSection + PanelSectionRow needs proper typescript definition

Hi all, first of all thanks for putting together such an awesome library!

I believe that some of the Typescript definitions in the library are wrong or incomplete. In the following snippet, TypeScript will yell at you because the definition for PanelSection doesn't include a children prop.

This is from [email protected]:

export interface PanelSectionProps {
    title?: string;
    spinner?: boolean;
}
export declare const PanelSection: FC<PanelSectionProps>;
export declare const PanelSectionRow: FC<>;

I have the following setup for my src/index.tsx file.

import { FC } from 'react'
import { definePlugin, ServerAPI, PanelSection, PanelSectionRow } from 'decky-frontend-lib'

// Create Content component Interface
interface ContentProps {
    api: ServerAPI
}

// Create the Content component
const Content: FC<ContentProps> = ({ api }: ContentProps) => {
    return (
        <PanelSection>
            <PanelSectionRow>
                <div>Some content</div>
            </PanelSectionRow>
        </PanelSection>
    )
}

The typescript error is

Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & PanelSectionProps'.

Are you accepting PRs for these issues?

Missing exports

Hi ya'll,

A question about 'supported' exports from the DFL:

Is there a way to get the steam ID # for the current user? Or a way to get the AppOverview for a given appId? Currently I had to add the following defs to my project:

// FIXME - find a better source for these defs?, I'm hand specifying here
// based on looking at ProtonDB plugin
declare let App: any // used for m_currentUser

declare namespace appStore {
  function GetAppOverviewByGameID(appId: number): AppOverview
}

But I'd like to remove these. Do you want me to send in a PR to export these? I haven't written JS/TS code in a long time so I might just be doing something dumb and you are already exporting them?

The automated release is failing 🚨

🚨 The automated release from the v4-dev branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the v4-dev branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


The release 3.26.0 on branch v4-dev cannot be published as it is out of range.

Based on the releases published on other branches, only versions within the range >=4.0.3 can be published from branch v4-dev.

The following commits are responsible for the invalid release:

  • chore(ci): empty commit so semantic-release shuts up (c440fa7)
  • chore(ci): empty commit so semantic-release shuts up (4e4859d)
  • chore(ci): empty commit so semantic-release shuts up (9579c41)
  • chore(ci): add v4-dev to release branches (4dd6afd)
  • chore(ci): return of the CI (b092d49)
  • fix(*): fixes for jun 26 beta (7e0cb15)
  • fix(package): unbreak react (b1e5038)
  • chore(package): v4.0.3 (832ad69)
  • fix(package): pin react properly (62b454f)
  • fix(package): fix ts memes (ea19d62)
  • fix(Menu): work around ConfigContext error (9f26209)
  • fix(components): forgot one (e6e8c91)
  • fix(components): fix missing children prop also remove unnessecary use of tsx (688c747)
  • chore(ci): disable on v4 for now (6c1b12b)
  • chore(release): 3.26.1 [CI SKIP] (0dfb2ce)
  • fix(Field): add children prop (2a78cc0)
  • chore(package): ver bump [skip ci] (1716782)
  • fix(plugin): shim definePlugin for now [ci skip] (0cd498b)
  • chore(plugin): delete (b728d90)
  • chore(*): fix version lol (3384d29)
  • chore(release): 3.26.0 [CI SKIP] (78c4cdb)
  • chore(releaserc): add v4-dev branch (d20659e)
  • fix(utils/react): shut it ts (d91f49e)
  • chore(*): init v4 package.json and release.yaml (735080f)
  • chore(static-classes): add/fix/update css classes (#102) (86e6e4c)
  • Dropdown contextMenuPositionOptions prop definition (#104) (46b1d6e)
  • chore(*): run prettier (a7635b6)
  • feat(*): add v4 webpack api and port everything to it also restructures a bunch (bffd530)
  • chore(package): init v4 (9c79187)

Those commits should be moved to a valid branch with git merge or git cherry-pick and removed from branch v4-dev with git revert or git reset.

A valid branch could be main or v4-dev.

See the workflow configuration documentation for more details.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

As of August 18th, 2023, some `static-classes` have been changed on Beta.

I discovered this while working on CSSLoader, the only ones I've found that affected my app is that FieldChildren has been replaced with FieldChildrenInner and SliderControlWithIcon was replaced by something unknown.

I'm writing this an issue instead of directly committing mostly because i want to establish some guidelines on how we update these.

The classes are currently changed on Beta, but not Stable.
Should we maintain two sets of classes, one for each update channel? Should we create an abstraction class similar to Navigation?

I'm not exactly sure how to proceed here. Requesting additional advice.

On page change event

I need on page change event so I can pause the Audio. For some reason, it doesn't destroy if I change the page

Usage of colors in text

Is it possible to add colors onto text? I'm talking about headers, names, descriptions, etc.
Usage of such a feature could vary from defining the colors in-text or just by using a sort of setColor method.

Thank you!

Modals not working, showing blurred errors

Description
Got my steamdeck today and installed deck os 3.4(preview) when I installed decky loader and tried for example the guide plugin it failed to load a page and the overlay was stuck. I restarted the deck and tried the boot animation plugin but after sellecting a video the same thing happened. all I get is a blurred error(as its behind some kind of effect the decky produces for lower graphical layers and its even impossible to press the password to go to desktop mode and restart.

  • SteamOS Version: 3.4 or 20221202.101
  • Selected Update Channel:Preview

[DFL:Router] Failed to init internal navigators, trying again / Trying to init internal navigator again

I was trying to access some window variable to use in a plugin when I encountered a never ending warning/error spam in the SharedJSContext due to failed initialization of internal navigators.

while (!InternalNavigators?.AppProperties) {
console.log('[DFL:Router]: Trying to init internal navigators again');
await sleep(2000);
initInternalNavigators();
}

Video showing issue while trying to access CEF from remote debugging.

Video.mp4

I am on the preview channel of SteamOS and currently have 3.5.13 installed. I rebuilt the latest pre-release version of decky-loader with DFL 3.24.4 (which includes a timeout increase from 100ms to 2000ms). This significantly reduced the amount of warning/error I received, but the internal navigators initialization problem still exists.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.