diff --git a/client/src/templates/Challenges/classic/MultifileEditor.js b/client/src/templates/Challenges/classic/MultifileEditor.js index 934058f2c8..3c84b66853 100644 --- a/client/src/templates/Challenges/classic/MultifileEditor.js +++ b/client/src/templates/Challenges/classic/MultifileEditor.js @@ -9,7 +9,7 @@ import { consoleOutputSelector, visibleEditorsSelector } from '../redux'; -import { getTargetEditor } from '../utils/getTargetEditor'; +import { getTargetEditor } from '../utils/get-target-editor'; import './editor.css'; import Editor from './editor'; diff --git a/client/src/templates/Challenges/redux/index.js b/client/src/templates/Challenges/redux/index.js index 2338732bcf..a001611f01 100644 --- a/client/src/templates/Challenges/redux/index.js +++ b/client/src/templates/Challenges/redux/index.js @@ -4,7 +4,7 @@ import { createAction, handleActions } from 'redux-actions'; import { getLines } from '../../../../../utils/get-lines'; import { challengeTypes } from '../../../../utils/challenge-types'; import { completedChallengesSelector } from '../../../redux'; -import { getTargetEditor } from '../utils/getTargetEditor'; +import { getTargetEditor } from '../utils/get-target-editor'; import { actionTypes, ns } from './action-types'; import codeLockEpic from './code-lock-epic'; import codeStorageEpic from './code-storage-epic'; diff --git a/client/src/templates/Challenges/utils/get-target-editor.ts b/client/src/templates/Challenges/utils/get-target-editor.ts new file mode 100644 index 0000000000..d37f580def --- /dev/null +++ b/client/src/templates/Challenges/utils/get-target-editor.ts @@ -0,0 +1,17 @@ +import { isEmpty } from 'lodash-es'; +import { sortChallengeFiles } from '../../../../../utils/sort-challengefiles'; +import { ChallengeFiles, FileKey } from '../../../redux/prop-types'; + +export function getTargetEditor( + challengeFiles: ChallengeFiles +): FileKey | null { + if (isEmpty(challengeFiles)) return null; + + const targetEditor = challengeFiles?.find( + ({ editableRegionBoundaries }) => !isEmpty(editableRegionBoundaries) + )?.fileKey; + + // fallback for when there is no editable region. + /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */ + return targetEditor || sortChallengeFiles(challengeFiles)[0].fileKey; +} diff --git a/client/src/templates/Challenges/utils/getTargetEditor.js b/client/src/templates/Challenges/utils/getTargetEditor.js deleted file mode 100644 index d0c9a6bc8a..0000000000 --- a/client/src/templates/Challenges/utils/getTargetEditor.js +++ /dev/null @@ -1,14 +0,0 @@ -import { isEmpty } from 'lodash-es'; -import { sortChallengeFiles } from '../../../../../utils/sort-challengefiles'; - -export function getTargetEditor(challengeFiles) { - if (isEmpty(challengeFiles)) return null; - else { - let targetEditor = challengeFiles.find( - ({ editableRegionBoundaries }) => !isEmpty(editableRegionBoundaries) - )?.fileKey; - - // fallback for when there is no editable region. - return targetEditor || sortChallengeFiles(challengeFiles)[0].fileKey; - } -}