From 77afb7465be3f77f6a7c68cfeea3375528119d20 Mon Sep 17 00:00:00 2001 From: Kristin Aoki <42981026+KristinAoki@users.noreply.github.com> Date: Tue, 24 Jan 2023 11:34:55 -0500 Subject: [PATCH] feat: update onclick to close modal + top scroll (#207) --- .../EditProblemView/SettingsWidget/hooks.js | 12 ++++++++++++ .../EditProblemView/SettingsWidget/hooks.test.js | 14 ++++++++++++++ .../SwitchToAdvancedEditorCard.jsx | 4 +++- .../SwitchToAdvancedEditorCard.test.jsx.snap | 2 +- 4 files changed, 30 insertions(+), 2 deletions(-) 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={