Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
f64e355
chore: Add 13.1.0 upcoming strings for crowdin
colin969 Dec 15, 2024
28c974e
chore: Final push of 13.1.0 strings for crowdin
colin969 Feb 10, 2025
fd6d1b1
Merge branch 'release/14.0.0' into develop
colin969 Feb 15, 2025
8f52375
Merge branch 'hotfix/14.0.1' into develop
colin969 Feb 17, 2025
7661776
Merge branch 'hotfix/14.0.2' into develop
colin969 Apr 28, 2025
a782aa2
feat: Extension data + NGA proof of concept
colin969 Apr 27, 2025
f91f94e
feat: Introduce React Compiler + Rsbuild
colin969 Apr 28, 2025
3a37840
fix: Update eslint plugins blocking install
colin969 Apr 28, 2025
f7fb1ef
fix: Even more linting fixes
colin969 Apr 28, 2025
edc0547
refactor: Adjust many react components to be compatible with the reac…
colin969 Apr 28, 2025
9f33bcc
fix: Fix remaining renderer eslint problems. Still a few non-blocking…
colin969 Apr 28, 2025
7bd9cdd
fix: When dragging a selected curation, move all selected to the new …
colin969 Apr 28, 2025
4e293df
feat: Migration to React 19 WIP
colin969 Apr 29, 2025
4dbce71
fix: Various react 19 fixes
colin969 Apr 29, 2025
a85980b
refactor: Move LogsPage and BrowsePage to functional components
colin969 Apr 30, 2025
ed367aa
refactor: More components moved to functionals
colin969 Apr 30, 2025
e6303eb
feat: Game List icons for extensions
colin969 Apr 30, 2025
19e8a71
feat: Searchables
colin969 May 1, 2025
3c2a4e4
feat: Extension ordering support
colin969 May 2, 2025
ccb7a61
fix: Image paths fixed
colin969 May 3, 2025
45ea6a0
feat: Move to Module Federation for loaded components
colin969 May 5, 2025
0334f00
refactor: Move ruffle page into Ruffle extension
colin969 May 6, 2025
c7cc2ef
refactor: Better module federation definitions in extensions
colin969 May 6, 2025
f644185
refactor: Make launch embed a toggle to replace standalone
colin969 May 8, 2025
91f6ee2
fix: Update deprecated electron methods
colin969 May 8, 2025
f62cce2
fix: Revert websocket call changes. Typings are wrong?
colin969 May 8, 2025
b856d7e
fix: Cap window size to 200px min
colin969 May 9, 2025
c90e7da
feat: Toast notifs for game edit submissions
colin969 May 9, 2025
07d76a2
fix: Make sure ruffle player size is accurate on subsequent uses
colin969 May 10, 2025
5af135f
feat: Basic NGA trophy display
colin969 May 13, 2025
331f97b
feat: Trophy integration for NGA
colin969 May 20, 2025
905fd1f
feat: Add prefs toggle to hide screenshot in the sidebar (no config p…
colin969 May 20, 2025
732084a
feat: NGA author comments and removed unused fields
colin969 May 21, 2025
4811173
feat: Extension modifiable GameList row and header components
colin969 May 21, 2025
80e0c5a
fix: Update FPA to make ordering work for numbered cols
colin969 May 23, 2025
39faad7
feat: Unknown ratings for NGA
colin969 Jun 5, 2025
98e7754
feat: GET_TAG caching
colin969 Jun 6, 2025
b13a2e0
wip: Downloads page
colin969 Jul 14, 2025
67b82a0
feat: Controller Support + Home Page Dynamic Components
colin969 Jul 17, 2025
d45a066
feat: Themeable Component Replacements
colin969 Jul 18, 2025
0434f57
wip: Ownership
colin969 Aug 15, 2025
4e8af5d
feat: Handle multiple game metadata sources in Update UI
colin969 Aug 23, 2025
8f7eded
feat: Data Provider system + API registry
colin969 Aug 28, 2025
9ce12bd
fix: Download func using wrong path
colin969 Oct 10, 2025
e7a269b
refactor: Allow Curate to load in the background
colin969 Oct 10, 2025
836c757
feat: Virtualize Content Tree in Curate page
colin969 Oct 11, 2025
982afd6
feat: Toggle extensions on and off (requires restart)
colin969 Oct 11, 2025
4f5506c
refactor: Make global log funcs visible to frontend extensions
colin969 Oct 11, 2025
16648a5
refactor: Move log entry type to launcher typings
colin969 Oct 12, 2025
f3b55ab
feat: Virtualized Logs Page
colin969 Oct 12, 2025
96538a8
fix: Prevent loading disabled extension theme files
colin969 Oct 13, 2025
378181e
refactor: Improve Redux State memoization
colin969 Oct 13, 2025
f24846d
refactor: Improve Ordered Items calc time for Search Bar dropdown
colin969 Oct 13, 2025
8627790
chore: Bump React to 19.2.0
colin969 Oct 13, 2025
e4e332f
refactor: Make Left Sidebar a functional component
colin969 Oct 14, 2025
e9cb7db
fix: Playlist selection restores on load
colin969 Oct 14, 2025
8dd3c8b
refactor: Simplify Shortcut registration in Curate
colin969 Oct 14, 2025
6f6ce3b
fix: Update Category when saving on Tag Category page
colin969 Oct 14, 2025
2bd7c85
refactor: Move prefs into redux store
colin969 Oct 15, 2025
2446533
fix: Remove typings from module federation opts to prevent build issu…
colin969 Oct 15, 2025
33056e5
fix: Fix illegal mutation in Game Components
colin969 Oct 15, 2025
835ab44
refactor: More more to functional components
colin969 Oct 15, 2025
a5aa658
refactor: Improve Tag edit feedback time
colin969 Oct 15, 2025
23c8bd3
fix: Make Playlist populating in created views reliable
colin969 Oct 15, 2025
d229aa0
fix: Update rust library to fix sync function
colin969 Oct 15, 2025
6c1c20f
feat: Context Menu basics
colin969 Oct 16, 2025
480d02d
refactor: Abstract away Electron API calls for future browser support
colin969 Oct 16, 2025
bc4c277
feat: Playlist sidebar uses Browser compatible APIs
colin969 Oct 16, 2025
88d7d81
refactor: Remove Developer Page
colin969 Oct 16, 2025
452ce81
feat: Add X-axis flipping and width options to Menu
colin969 Oct 17, 2025
90ac039
fix: Make Y-menu height calc accurate
colin969 Oct 17, 2025
7ec1588
fix: Minor theme adjustments
colin969 Oct 17, 2025
5ad1135
refactor: Import Playlist supported in Browser
colin969 Oct 17, 2025
2d1bbaa
refactor: Even more abstraction of Electron functions
colin969 Oct 17, 2025
ea9b30e
feat: Isolated preload script + Removed node integration from renderer
colin969 Oct 17, 2025
d384688
feat: Web Configuration for Development
colin969 Oct 17, 2025
8434fc5
refactor: Move more to functional components
colin969 Oct 18, 2025
55e50c4
refactor: Right Sidebar FC
colin969 Oct 18, 2025
dde4017
feat: Activity Routes for keeping pages mounted
colin969 Oct 20, 2025
3c352e4
fix: Git doesn't change casing in filenames :(
colin969 Oct 20, 2025
89f707c
feat: Reintroduce Load Archive (Curate) with Browser support
colin969 Oct 21, 2025
b47a8c9
feat: log__404 (__even and __odd) class names for log rows
colin969 Oct 21, 2025
0baf328
fix: Make sure root properly flexes
colin969 Oct 21, 2025
820e384
feat: Reimplement FPFSS game edits
colin969 Oct 23, 2025
9781ad6
fix: FPFSS navigate back to valid page
colin969 Oct 23, 2025
e6c7f04
fix: Mask redirect time by transistioning before starting fpfss save …
colin969 Oct 23, 2025
affb8c9
refactor: Reduce Downloads page memory usage and replace rendering wi…
colin969 Oct 24, 2025
989473e
fix: Stop playlist name wrapping off-screen (just allow clipping)
colin969 Oct 25, 2025
484bb8c
fix: Hide downloads page now it's unused
colin969 Oct 27, 2025
7b91a44
fix: Remove bandaid preferences type fix and fix remaining wrong refe…
colin969 Oct 27, 2025
65ad623
fix: Curate group pins
colin969 Oct 27, 2025
0e0aa05
fix: Log level and source field fixed for new component
colin969 Oct 27, 2025
002313b
fix: Improve FPFSS logout toast error
colin969 Oct 27, 2025
c5a76d7
fix: Add back dropdown populating based on tag key
colin969 Oct 27, 2025
d765da0
feat: Move Updates to background via toast
colin969 Oct 27, 2025
1a1eed6
fix: Game Data right sidebar desync
colin969 Oct 28, 2025
009b390
fix: Update metadata update state after post sync changes
colin969 Oct 28, 2025
79c61fd
fix: Add game data exists check to get_game
colin969 Oct 28, 2025
b50ef03
Merge branch 'hotfix/14.0.3' into develop
colin969 Oct 29, 2025
9870d46
fix: Update Controller Support with new sidebar methods
colin969 Oct 29, 2025
15eaa8c
feat: Edit playlist notes without editable (wip)
colin969 Nov 3, 2025
d884437
fix: Electron clipboard
colin969 Nov 4, 2025
856986c
fix: Electron title bar buttons
colin969 Nov 4, 2025
491eb54
fix: Migrate ext gulpfiles to esm. Fixes... probably?
colin969 Nov 4, 2025
1d9a7dc
github: Bump node to 22 in workflow, fix gulp ext
colin969 Nov 4, 2025
f078787
fix: Bandaid for weird polyfilled path resolve on renderer
colin969 Nov 4, 2025
a798137
fix: Status component using wrong field key
colin969 Nov 5, 2025
661bf7f
refactor: Bundle main, preload and backend
colin969 Nov 6, 2025
f92ba5c
refactor: Move most store state types to typings file so extensions c…
colin969 Nov 7, 2025
c7fd3ef
fix: Various typings fixes
colin969 Nov 7, 2025
fa43183
refactor: Remove unused dependencies
colin969 Nov 7, 2025
eaad1ce
feat: Expose HomePageBox and SizeProvider as ext components
colin969 Nov 7, 2025
1614cf0
feat: Expose RandomGames component to exts
colin969 Nov 8, 2025
66d9b20
feat: Custom route support in extensions
colin969 Nov 8, 2025
47e2f79
refactor: Move most consts or functions for frontend ext to dynamic m…
colin969 Nov 8, 2025
d58184b
feat: Generic purpose LeftSidebar component
colin969 Nov 9, 2025
36df582
fix: Update all clients from backend after enabling or disabling exte…
colin969 Nov 9, 2025
d724273
fix: Some extension icons being in the wrong place
colin969 Nov 10, 2025
7b8f8cb
fix: Check validity of view name before rendering BrowsePage
colin969 Nov 10, 2025
df04758
fix: Screenshot Preview Mode setting wrong Prefs key
colin969 Nov 11, 2025
8ad2af6
feat: Barebones introduction of vitest and testing-library
colin969 Nov 11, 2025
170e568
test: GameGridItem extreme screenshot tests
colin969 Nov 11, 2025
4dc3bc4
fix: Close confirm dialog when resolving result
colin969 Nov 11, 2025
232a484
feat: Improve AppLoader to handle waiting for the backend to start an…
colin969 Nov 12, 2025
fab014e
chore: Revise README for more modern usage
colin969 Nov 12, 2025
5c7df9c
feat: If the AppLoader connects to a different backend (based on init…
colin969 Nov 12, 2025
b7cc68b
feat: Unrecoverable Error Page for Backend errors
colin969 Nov 12, 2025
b82304b
fix: Make sure empty GameListItems render correctly
colin969 Nov 12, 2025
2b7ecec
feat: Reimplement check for update functionality for metadata
colin969 Nov 12, 2025
6019578
fix: Filter by platform buttons not dispatching action
colin969 Nov 13, 2025
b9a1f84
feat: Add JSON file cache for developer, publisher and series dropdow…
colin969 Nov 13, 2025
e33c63b
fix: Incorrect game save marker logic
colin969 Nov 13, 2025
29dbe66
feat: Expand caching to Libraries, PlayMode, Status and Application Path
colin969 Nov 13, 2025
2b20280
refactor: Remove reconnect limit
colin969 Nov 13, 2025
2d7a9c6
feat: Uninstall extensions
colin969 Nov 13, 2025
3a69ab0
refactor: Rewrote Dropdown with react-window style props and row rend…
colin969 Nov 14, 2025
3d81a9f
refactor: Don't virtualize extension manager list since it breaks dro…
colin969 Nov 14, 2025
c084b5d
feat: Select version to install in extension manager
colin969 Nov 14, 2025
615e5e2
fix: Update ext contribs when state changes
colin969 Nov 14, 2025
ecc2ab0
feat: Curation templates
colin969 Nov 14, 2025
1dc26f5
fix: Electron pathing issue
colin969 Nov 14, 2025
2e91b41
test: Add redux capabilities to testing
colin969 Nov 14, 2025
58e17c3
test: Silence console logs
colin969 Nov 14, 2025
059e45b
fix: Sort curations before shift selections are made
colin969 Nov 15, 2025
dee286e
fix: History Location state incorrectly using Node typing
colin969 Nov 15, 2025
a81f8c6
feat: ThemeProvider updates System themes relative to systemThemeVers…
colin969 Nov 15, 2025
5a68e7b
feat: Add build time browser mode configuration to package.json
colin969 Nov 15, 2025
8a84e5c
feat: Add --browser-mode, --browser-mode-host, --browser-mode-port an…
colin969 Nov 15, 2025
c0d64a7
fix: Frame and menu settings for Electron
colin969 Nov 16, 2025
87dba60
eslint: Fixed ignore patterns to limit scope properly and autofixed m…
colin969 Nov 16, 2025
5b6ae67
feat: Add sidebar to FPFSS page and improve redirection logic on disc…
colin969 Nov 16, 2025
c265029
feat: Settings menu for Repos for manager
colin969 Nov 16, 2025
3f65e43
fix: Add missing shiftRandomGames() call to rollRandomGames()
colin969 Nov 17, 2025
72d7e9e
refactor: Rewrite LAUNCH_GAME logic to use better structured content …
colin969 Nov 18, 2025
6ceb02e
fix: SYNC_ALL sending back metadata source prefs update on wrong key
colin969 Nov 18, 2025
2458831
fix: Make sure game updates sent 100% of the time after ensureGameDat…
colin969 Nov 18, 2025
ee68c4c
refactor: Move FolderWatcher and ManagedChildProcess to use TypedEmitter
colin969 Nov 18, 2025
5dfa92f
fix: onerror handler for css files to still unload old themes
colin969 Nov 18, 2025
c1f5026
fix: Add proper warn log for css onerror event
colin969 Nov 18, 2025
d0ca497
feat: Reimplemented deselect for game containers
colin969 Nov 18, 2025
58e0231
refactor: Forcefully set GameData path during GET_GAME
colin969 Nov 19, 2025
4a087df
fix: Address a few ancient typing errors
colin969 Nov 19, 2025
e8a1050
refactor: Simplify LAUNCH_GAME error bubbling
colin969 Nov 19, 2025
4b5918b
fix: Wrap rest of sidebar search fields in quotes
colin969 Nov 21, 2025
e6717ab
refactor: Reduce memory usage by around 7mb by reducing selection lan…
colin969 Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 0 additions & 6 deletions .eslintignore

This file was deleted.

137 changes: 0 additions & 137 deletions .eslintrc-old.json

This file was deleted.

6 changes: 5 additions & 1 deletion .github/workflows/nexus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- uses: actions/cache@v3
id: cache
with:
Expand All @@ -37,7 +41,7 @@ jobs:
NODE_ENV: "production"
PACK_ARCH: "ia32"
PACK_PLATFORM: "win32"
run: npm run build
run: npm run build:prod
- name: Create wine prefix folder
run: mkdir /__w/launcher/launcher/wine
- name: Pack
Expand Down
31 changes: 10 additions & 21 deletions .github/workflows/build.yml → .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
name: Build Status
name: Test Status

on:
pull_request:
branches:
- '*'
push:
branches:
- master

jobs:
build:
name: Build
test:
name: Test
runs-on: ubuntu-latest

steps:
Expand All @@ -21,22 +18,14 @@ jobs:
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Use Node.js 20.x
uses: actions/setup-node@v1
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/cache@v3
id: cache
with:
path: |
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json') }}
node-version: '22'
cache: 'npm'
- name: Install Dependencies
run: npm install --force
if: steps.cache.outputs.cache-hit != 'true'
env:
CI: true
- name: npm build
run: npm run build
run: npm ci
- name: Test
run: npm test
env:
CI: true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Node/NPM
node_modules
npm-debug.log.*
.dev-server
.dev-server.zip

# Visual Studio Code
/.vscode
Expand All @@ -12,6 +14,7 @@ npm-debug.log.*

# Build
/build
/target

# Distribution
/dist
Expand Down
5 changes: 1 addition & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "extern/7zip-bin"]
path = extern/7zip-bin
url = https://github.com/develar/7zip-bin.git
[submodule "docs/api"]
path = docs/api
url = https://github.com/FlashpointProject/launcher_ApiDocs.git
url = https://github.com/develar/7zip-bin.git
39 changes: 15 additions & 24 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,28 @@
"version": "0.2.0",
"configurations": [
{
"name": "Electron: Main",
"name": "Debug Backend (Web)",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"autoAttachChildProcesses": true,
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
"windows": {
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
},
"args" : [
"--remote-debugging-port=9223",
"."
],
"outputCapture": "std"
"request": "attach",
"port": 9229,
"restart": true,
"skipFiles": ["<node_internals>/**"]
},
{
"name": "Electron: Renderer",
"name": "Debug Frontend (Web)",
"type": "chrome",
"request": "attach",
"port": 9223,
"webRoot": "${workspaceFolder}",
"timeout": 30000
"request": "launch",
"url": "http://localhost:3000/flashpoint/renderer",
"webRoot": "${workspaceFolder}/src/renderer"
}
],
"compounds": [
{
"name": "Electron: All",
"configurations": [
"Electron: Main",
"Electron: Renderer"
]
"name": "Debug Full Stack (Web)",
"configurations": [
"Debug Backend (Web)",
"Debug Frontend (Web)"
]
}
]
}
}
29 changes: 29 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Watch Frontend (Web)",
"type": "npm",
"script": "start:web",
"group": "build",
"isBackground": true
},
{
"label": "Watch Backend & Static Files",
"type": "npm",
"script": "watch:web",
"group": "build",
"isBackground": true
},
{
"label": "Watch Full Stack (Web)",
"dependsOrder": "parallel",
"dependsOn": [
"Watch Frontend (Web)",
"Watch Backend & Static Files"
],
"group": "build",
"isBackground": true
}
]
}
Loading