Skip to content

Commit c7ce02a

Browse files
committed
Extract the 'select_folder' api to an external file
1 parent 7e73c3d commit c7ce02a

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import {ExternalInterfaceCtx} from 'eterna/util/ExternalInterface';
2+
3+
/**
4+
* Adds the ability to modify the folder (via its name) to the EternaScript API.
5+
*/
6+
export default function addSelectFolderAPIToInterface({selectFolder, scriptInterface}: {
7+
selectFolder: (folderName: string) => boolean,
8+
scriptInterface: ExternalInterfaceCtx,
9+
}) {
10+
scriptInterface.addCallback(
11+
'select_folder', (folderName: string): boolean => selectFolder(folderName)
12+
);
13+
}

src/eterna/mode/PoseEdit/PoseEditMode.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ import NuPACK from 'eterna/folding/NuPACK';
7979
import PasteStructureDialog from 'eterna/ui/PasteStructureDialog';
8080
import ConfirmTargetDialog from 'eterna/ui/ConfirmTargetDialog';
8181
import FoldingContextScriptAPI from 'eterna/eternaScript/FoldingAPI';
82+
import addSelectFolderAPIToInterface from 'eterna/eternaScript/SelectFolderAPI';
8283
import GameMode from '../GameMode';
8384
import SubmittingDialog from './SubmittingDialog';
8485
import SubmitPoseDialog from './SubmitPoseDialog';
@@ -1276,9 +1277,10 @@ export default class PoseEditMode extends GameMode {
12761277
}).registerToScriptInterface(this._scriptInterface);
12771278

12781279
if (this._puzzle.puzzleType === PuzzleType.EXPERIMENTAL) {
1279-
this._scriptInterface.addCallback(
1280-
'select_folder', (folderName: string): boolean => this.selectFolder(folderName)
1281-
);
1280+
addSelectFolderAPIToInterface({
1281+
selectFolder: this.selectFolder,
1282+
scriptInterface: this._scriptInterface
1283+
});
12821284

12831285
this._scriptInterface.addCallback('load_parameters_from_buffer', (_str: string): boolean => {
12841286
log.info('TODO: load_parameters_from_buffer');

0 commit comments

Comments
 (0)