From 5200897e1b594482769ea063299880ea57d86601 Mon Sep 17 00:00:00 2001 From: Raymond Zhou <56318341+rayzhou-bit@users.noreply.github.com> Date: Tue, 19 Apr 2022 08:25:01 -0700 Subject: [PATCH] Fix change to go back to 'fake' modal (#62) * fix: rebase * fix: tests * fix: remove broken code button * fix: test case with iff --- .../__snapshots__/index.test.jsx.snap | 143 +++++++++--------- .../__snapshots__/index.test.jsx.snap | 18 +++ .../components/EditorFooter/index.jsx | 2 +- .../containers/EditorContainer/index.jsx | 42 ++--- .../containers/EditorContainer/index.scss | 3 - .../containers/EditorContainer/index.test.jsx | 11 +- .../containers/TextEditor/pluginConfig.js | 2 +- src/editors/data/redux/app/selectors.js | 3 +- src/editors/data/redux/app/selectors.test.js | 9 +- 9 files changed, 122 insertions(+), 111 deletions(-) diff --git a/src/editors/containers/EditorContainer/__snapshots__/index.test.jsx.snap b/src/editors/containers/EditorContainer/__snapshots__/index.test.jsx.snap index ddbecf8ef..7cff64690 100644 --- a/src/editors/containers/EditorContainer/__snapshots__/index.test.jsx.snap +++ b/src/editors/containers/EditorContainer/__snapshots__/index.test.jsx.snap @@ -1,87 +1,82 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EditorContainer component render snapshot: initialized. enable save and pass to header 1`] = ` - - } - isOpen={true} - onClose={ - Object { - "handleCancelClicked": Object { - "onClose": [MockFunction props.onClose], - }, - } - } - title={ - - } - variant="primary" -> +
+ + + +
+ +
+
+

My test content

- + +
`; exports[`EditorContainer component render snapshot: not initialized. disable save and pass to header 1`] = ` - + + + +
+ +
+
+
+ - } - isOpen={true} - onClose={ - Object { - "handleCancelClicked": Object { - "onClose": [MockFunction props.onClose], - }, } - } - title={ - - } - variant="primary" -> -

- My test content -

-
+ /> + `; diff --git a/src/editors/containers/EditorContainer/components/EditorFooter/__snapshots__/index.test.jsx.snap b/src/editors/containers/EditorContainer/components/EditorFooter/__snapshots__/index.test.jsx.snap index c97d0adf7..5011cdcd7 100644 --- a/src/editors/containers/EditorContainer/components/EditorFooter/__snapshots__/index.test.jsx.snap +++ b/src/editors/containers/EditorContainer/components/EditorFooter/__snapshots__/index.test.jsx.snap @@ -3,6 +3,12 @@ exports[`EditorFooter render snapshot: default args (disableSave: false, saveFailed: false) 1`] = `
( -
+
{saveFailed && ( diff --git a/src/editors/containers/EditorContainer/index.jsx b/src/editors/containers/EditorContainer/index.jsx index 357f9d98f..c3b209bcd 100644 --- a/src/editors/containers/EditorContainer/index.jsx +++ b/src/editors/containers/EditorContainer/index.jsx @@ -2,7 +2,8 @@ import React from 'react'; import { useDispatch } from 'react-redux'; import PropTypes from 'prop-types'; -import { FullscreenModal } from '@edx/paragon'; +import { Icon, ModalDialog, IconButton } from '@edx/paragon'; +import { Close } from '@edx/paragon/icons'; import EditorFooter from './components/EditorFooter'; import TitleHeader from './components/TitleHeader'; @@ -18,24 +19,27 @@ export const EditorContainer = ({ const isInitialized = hooks.isInitialized(); const handleCancelClicked = hooks.handleCancelClicked({ onClose }); return ( - - )} - title={( - - )} - > - {children} - +
+ + + +
+ +
+
+
+ {isInitialized && children} + +
); }; EditorContainer.defaultProps = { diff --git a/src/editors/containers/EditorContainer/index.scss b/src/editors/containers/EditorContainer/index.scss index 096eca72b..e69de29bb 100644 --- a/src/editors/containers/EditorContainer/index.scss +++ b/src/editors/containers/EditorContainer/index.scss @@ -1,3 +0,0 @@ -.pgn__modal-layer { - z-index: 0; -} diff --git a/src/editors/containers/EditorContainer/index.test.jsx b/src/editors/containers/EditorContainer/index.test.jsx index f27a75bac..beacc55ae 100644 --- a/src/editors/containers/EditorContainer/index.test.jsx +++ b/src/editors/containers/EditorContainer/index.test.jsx @@ -38,13 +38,14 @@ describe('EditorContainer component', () => { }); test('close behavior is linked to modal onClose and footer onCancel', () => { const expected = hooks.handleCancelClicked({ onClose: props.onClose }); - expect(el.at(0).props().onClose).toEqual(expected); - expect(el.at(0).props().footerNode.props.onCancel).toEqual(expected); + expect(el.children().at(2).props().onCancel).toEqual(expected); }); test('save behavior is linked to footer onSave', () => { - expect(el.at(0).props().footerNode.props.onSave).toEqual( - hooks.handleSaveClicked({ dispatch: useDispatch(), getContent: props.getContent }), - ); + const expected = hooks.handleSaveClicked({ + getContent: props.getContent, + dispatch: useDispatch(), + }); + expect(el.children().at(2).props().onSave).toEqual(expected); }); }); }); diff --git a/src/editors/containers/TextEditor/pluginConfig.js b/src/editors/containers/TextEditor/pluginConfig.js index dcbe8d2b7..851202cd7 100644 --- a/src/editors/containers/TextEditor/pluginConfig.js +++ b/src/editors/containers/TextEditor/pluginConfig.js @@ -36,7 +36,7 @@ export default StrictDict({ ], [buttons.imageUploadButton, buttons.link, buttons.unlink, buttons.codesample, buttons.table], [buttons.emoticons, buttons.charmap, buttons.hr], - [buttons.removeFormat, buttons.code], + [buttons.removeFormat], ]), imageToolbar: mapToolbars([ // [buttons.rotate.left, buttons.rotate.right], diff --git a/src/editors/data/redux/app/selectors.js b/src/editors/data/redux/app/selectors.js index 966cbef5b..4cff5b422 100644 --- a/src/editors/data/redux/app/selectors.js +++ b/src/editors/data/redux/app/selectors.js @@ -31,10 +31,9 @@ export const returnUrl = createSelector( export const isInitialized = createSelector( [ module.simpleSelectors.unitUrl, - module.simpleSelectors.editorInitialized, module.simpleSelectors.blockValue, ], - (unitUrl, editorInitialized, blockValue) => !!(unitUrl && blockValue && editorInitialized), + (unitUrl, blockValue) => !!(unitUrl && blockValue), ); export const displayTitle = createSelector( diff --git a/src/editors/data/redux/app/selectors.test.js b/src/editors/data/redux/app/selectors.test.js index 8372598fa..903586e0f 100644 --- a/src/editors/data/redux/app/selectors.test.js +++ b/src/editors/data/redux/app/selectors.test.js @@ -67,7 +67,6 @@ describe('app selectors unit tests', () => { it('is memoized based on unitUrl, editorInitialized, and blockValue', () => { expect(selectors.isInitialized.preSelectors).toEqual([ simpleSelectors.unitUrl, - simpleSelectors.editorInitialized, simpleSelectors.blockValue, ]); }); @@ -76,14 +75,12 @@ describe('app selectors unit tests', () => { const truthy = { url: { url: 'data' }, blockValue: { block: 'value' }, - editorInitialized: true, }; [ - [[truthy.url, truthy.blockValue, false], false], - [[null, truthy.blockValue, true], false], - [[truthy.url, null, true], false], - [[truthy.url, truthy.blockValue, true], true], + [[null, truthy.blockValue], false], + [[truthy.url, null], false], + [[truthy.url, truthy.blockValue], true], ].map(([args, expected]) => expect(cb(...args)).toEqual(expected)); }); });