Skip to content

Commit 9870d46

Browse files
committed
fix: Update Controller Support with new sidebar methods
refactor: Remove NGA ext from system extensions
1 parent b50ef03 commit 9870d46

38 files changed

+94
-13569
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ npm-debug.log.*
1414

1515
# Build
1616
/build
17+
/target
1718

1819
# Distribution
1920
/dist

extensions/core-controller/package-lock.json

Lines changed: 70 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/core-controller/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
"react-error-boundary": "^6.0.0",
3939
"react-icons": "4.10.1",
4040
"react-markdown": "7.0.1",
41-
"remark-gfm": "^4.0.1"
41+
"remark-gfm": "^4.0.1",
42+
"@reduxjs/toolkit": "2.7.0"
4243
},
4344
"devDependencies": {
4445
"@module-federation/rsbuild-plugin": "^0.13.1",

extensions/core-controller/src/components/ControllerSupport.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
import { GameComponentProps } from 'flashpoint-launcher-renderer';
22
import { ControllerSet, getFormattedMappedName } from '../shared';
3+
import { createSelector } from '@reduxjs/toolkit';
34
import React from 'react';
5+
import { Content, Game } from 'flashpoint-launcher';
6+
7+
function isGame(content?: Content | Game): content is Game {
8+
return content !== undefined && 'legacyApplicationPath' in content;
9+
}
10+
11+
export const selectGameField = <K extends keyof Game>(viewId: string, key: K) => createSelector(
12+
[
13+
(state) => state.search.views[viewId].isEditing,
14+
(state) => isGame(state.search.views[viewId].selectedGame) ? state.search.views[viewId].selectedGame[key] : undefined,
15+
(state) => isGame(state.search.views[viewId].editingGame) ? state.search.views[viewId].editingGame[key] : undefined
16+
],
17+
(isEditing, selectedGameValue, editingGameValue) => (isEditing ? editingGameValue : selectedGameValue) as Game[K]
18+
);
419

520
export default function ControllerSupport(props: GameComponentProps) {
6-
const controllerConfig: ControllerSet | undefined = props.game.extData?.controller?.config;
21+
const extData = window.ext.hooks.useAppSelector(selectGameField(props.viewId, 'extData'));
22+
const controllerConfig: ControllerSet | undefined = extData?.controller?.config;
723

824
const mappedTable = React.useMemo(() => {
925
if (!controllerConfig) {

extensions/core-nga/.eslintignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

extensions/core-nga/.gitignore

Lines changed: 0 additions & 4 deletions
This file was deleted.

extensions/core-nga/gulpfile.js

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)