Skip to content

Conversation

@colin969
Copy link
Member

A fairly large update to allow extensions to work with their own data for games.

May be in this state for a while as it matures and docs get written.

Extensions can now:

  • Save arbitrary JSON data on a per game basis
  • Add searchable keys which work in search text parsing for top level JSON members in their data (String, number and boolean comparisons)
  • Add indexed keys for top level JSON members in their data
  • Remove, replace and re-order most Game sidebar components
  • Create their own Game sidebar components and add them to the sidebar display settings

@colin969 colin969 linked an issue May 9, 2025 that may be closed by this pull request
…ering

feat: Added DropdownFrame component for custom dropdown content like previous Dropdown had

feat: Exposed Dropdown and DropdownFrame to exts
…pdowns being in a stacking context

feat: Expose DropdownCheckboxRow (like logs page) and DropdownStringRow components to ext

feat: Add closeDropdown() to Dropdown row props

fix: Properly center the arrow in Dropdown buttons
refactor:  Remove outdated devScripts contribs
fix: System ext path being wrong in browser mode

refactor: Remove outdated extension curationTemplate system

fix: Shift selection in Curate
test: Add backend server mock support for testing
test: Prevent socket connection retries
feat: ThemeProvider for updating theme based on application state instead of purely in callbacks

fix: Issues with rendered themes sometimes becoming out of sync, hopefully

fix: Selecting no theme not working
…ion state

feat: core.css and fancy.css changes during dev are applied without a window reload

refactor: Improve ThemeProvider readability

refactor: Replace fs.watch with chokidar in FolderWatcher for more consistent behaviour across different operating systems

fix: Wait for new theme css to load before unloading old to prevent flickering

fix: Prevent file reads flagging FolderWatcher change events
refactor: Stripped out unused 'installed' flag
…d --browser-mode-url startup arguments

refactor: Replaced bespoke argument parsing with node:util's parseArgs

fix: Properly set isDev value in renderer

refactor: Minify renderer in production

refactor: Only use perf plugin in development
…ost available

fix: Remaining linting issues

fix: Reimplement FPFSS auth requests from backend ext
…ard and save

refactor: Use prop provided view for RightBrowseSidebar and remove explicit game and playlist passes

eslint: Added rule to mark as error /src files importing runtime modules meant for extensions

refactor: Allow browser frontend to start before app is ready, it'll wait on connection screen anyway
ext: Expose various Config page components

ext: Expose setExtConfigValue
refactor: Minimized frequency of preference updates sent

refactor: Let clients apply partial preference updates instead of sending the entire state from back each time

refactor: Little bits of maintenance on older backend code
…runners

fix: Hide all ! prefix views from browse header buttons

fix: Explicit check in create and rename for ! prefix

fix: Highlight non-Browse header buttons regardless of additional pathnames
refactor: Replace theme numbers with theme uuids for better cache avoidance
feat: Add showRightSidebar to CustomRoute, default false

refactor: Sort custom route header items alphabetically by title
refactor: Forcefully resolve game path to absolute path during execution
refactor: Remove all references to GameData 'Path' as we shift to building it from scratch each time
refactor: Add an easy use error dialog to most user-initiated API errors
fix: Pathing issue when resolving data pack in makeCurationFromGame

fix: Make context menu use same code as right sidebar for initiating fpfss edits

fix: Remove outdated http proxying rules getting in the way of local fpfss dev
…g info sent to frontend

fix: Dumb screenshot path issue mapping fpfss games
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment