fix(modern-challenges): Default nav link to "Editor" if only one editor

This commit is contained in:
werne2j
2018-01-24 23:45:56 -05:00
parent 20a3363d39
commit 05b9df4dd0

View File

@ -18,18 +18,25 @@ import { filesSelector } from '../../../../files';
const createModernEditorToggleType = fileKey =>
types.toggleModernEditor + `(${fileKey})`;
const getFirstFileKey = _.flow(_.values, _.first, _.property('key'));
const propTypes = {
nameToFileKey: PropTypes.object
};
const mapStateToProps = createSelector(
filesSelector,
files => ({
files => {
if (Object.keys(files).length === 1) {
return { nameToFileKey: { Editor: getFirstFileKey(files) }};
}
return {
nameToFileKey: _.reduce(files, (map, file) => {
map[file.name] = file.key;
return map;
}, {})
})
};
}
);
const mapDispatchToProps = null;
@ -45,17 +52,26 @@ export const mapStateToPanes = addNS(
// side panel
// editors are created based on state
// so pane component can have multiple panes based on state
const panesMap = _.reduce(files, (map, file) => {
map[createModernEditorToggleType(file.fileKey)] = file.name;
return map;
}, {
const panesMap = {
[types.toggleMap]: 'Map',
[types.toggleSidePanel]: 'Lesson'
};
// If there is more than one file show file name
if (Object.keys(files).length > 1) {
_.forEach(files, (file) => {
panesMap[createModernEditorToggleType(file.fileKey)] = file.name;
});
} else {
const key = getFirstFileKey(files);
panesMap[createModernEditorToggleType(key)] = 'Editor';
}
if (showPreview) {
panesMap[types.togglePreview] = 'Preview';
}
return panesMap;
}
)