diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js index 47c88e6e7..3fde0c302 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js @@ -203,3 +203,15 @@ export const typeRowHooks = ({ onClick, }; }; + +export const confirmSwitchToAdvancedEditor = ({ + switchToAdvancedEditor, + setConfirmOpen, +}) => { + switchToAdvancedEditor(); + setConfirmOpen(false); + window.scrollTo({ + top: 0, + behavior: 'smooth', + }); +}; diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js index 556004402..ed72157cf 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js @@ -266,4 +266,18 @@ describe('Problem settings hooks', () => { expect(updateField).toHaveBeenCalledWith({ problemType: typekey }); }); }); + describe('Type row hooks', () => { + test('test onClick', () => { + const switchToAdvancedEditor = jest.fn(); + const setConfirmOpen = jest.fn(); + window.scrollTo = jest.fn(); + hooks.confirmSwitchToAdvancedEditor({ + switchToAdvancedEditor, + setConfirmOpen, + }); + expect(switchToAdvancedEditor).toHaveBeenCalled(); + expect(setConfirmOpen).toHaveBeenCalledWith(false); + expect(window.scrollTo).toHaveBeenCalled(); + }); + }); }); diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/SwitchToAdvancedEditorCard.jsx b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/SwitchToAdvancedEditorCard.jsx index e68e10351..b66bc0895 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/SwitchToAdvancedEditorCard.jsx +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/SwitchToAdvancedEditorCard.jsx @@ -6,11 +6,13 @@ import PropTypes from 'prop-types'; import messages from '../messages'; import { thunkActions } from '../../../../../../data/redux'; import BaseModal from '../../../../../TextEditor/components/BaseModal'; +import { confirmSwitchToAdvancedEditor } from '../hooks'; export const SwitchToAdvancedEditorCard = ({ switchToAdvancedEditor, }) => { const [isConfirmOpen, setConfirmOpen] = React.useState(false); + return ( )} confirmAction={( diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/__snapshots__/SwitchToAdvancedEditorCard.test.jsx.snap b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/__snapshots__/SwitchToAdvancedEditorCard.test.jsx.snap index cbe4b6508..72e923bf6 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/__snapshots__/SwitchToAdvancedEditorCard.test.jsx.snap +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/settingsComponents/__snapshots__/SwitchToAdvancedEditorCard.test.jsx.snap @@ -8,7 +8,7 @@ exports[`SwitchToAdvancedEditorCard snapshot snapshot: SwitchToAdvancedEditorCar close={[Function]} confirmAction={