feat: open target editor on mount

This commit is contained in:
Oliver Eyton-Williams
2020-07-27 15:29:08 +02:00
committed by Mrugesh Mohapatra
parent 02aff4d400
commit a4c836c6d4

View File

@ -3,6 +3,7 @@ import React, { Component, Suspense } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { ReflexContainer, ReflexElement, ReflexSplitter } from 'react-reflex'; import { ReflexContainer, ReflexElement, ReflexSplitter } from 'react-reflex';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import { isEmpty } from 'lodash';
import { isDonationModalOpenSelector, userSelector } from '../../../redux'; import { isDonationModalOpenSelector, userSelector } from '../../../redux';
import { import {
canFocusEditorSelector, canFocusEditorSelector,
@ -69,6 +70,15 @@ const mapDispatchToProps = {
updateFile updateFile
}; };
function getTargetEditor(challengeFiles) {
let targetEditor = Object.values(challengeFiles).find(
({ editableRegionBoundaries }) => !isEmpty(editableRegionBoundaries)
)?.key;
// fallback for when there is no editable region.
return targetEditor || toSortedArray(challengeFiles)[0].key;
}
class MultifileEditor extends Component { class MultifileEditor extends Component {
constructor(...props) { constructor(...props) {
super(...props); super(...props);
@ -129,7 +139,7 @@ class MultifileEditor extends Component {
const { challengeFiles } = this.props; const { challengeFiles } = this.props;
const targetEditor = toSortedArray(challengeFiles)[0].key; const targetEditor = getTargetEditor(challengeFiles);
this.state = { this.state = {
visibleEditors: { [targetEditor]: true } visibleEditors: { [targetEditor]: true }