diff --git a/package.json b/package.json index ef9f067938..a2eb1fbb89 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,10 @@ "prepare": "husky" }, "dependencies": { - "@blueprintjs/core": "^5.7.0", - "@blueprintjs/datetime2": "^2.2.7", - "@blueprintjs/icons": "^5.5.0", - "@blueprintjs/popover2": "^2.0.0", - "@blueprintjs/select": "^5.0.0", + "@blueprintjs/core": "^5.10.1", + "@blueprintjs/datetime2": "^2.3.3", + "@blueprintjs/icons": "^5.9.0", + "@blueprintjs/select": "^5.1.3", "@mantine/hooks": "^7.7.0", "@octokit/rest": "^20.0.0", "@reduxjs/toolkit": "^1.9.7", diff --git a/src/commons/SimpleDropdown.tsx b/src/commons/SimpleDropdown.tsx index 6aca5c2668..18648f11d6 100644 --- a/src/commons/SimpleDropdown.tsx +++ b/src/commons/SimpleDropdown.tsx @@ -1,5 +1,4 @@ -import { Button, Menu, MenuItem } from '@blueprintjs/core'; -import { Popover2 } from '@blueprintjs/popover2'; +import { Button, Menu, MenuItem, Popover } from '@blueprintjs/core'; type OptionType = { value: any; label: string }; type Props = { @@ -7,7 +6,7 @@ type Props = { selectedValue?: T['value']; onClick?: (v: T['value']) => void; buttonProps?: Partial & { 'data-testid': string }>; - popoverProps?: Partial>; + popoverProps?: Partial>; }; const SimpleDropdown = ({ @@ -27,7 +26,7 @@ const SimpleDropdown = ({ }; return ( - ({ } > - + ); }; diff --git a/src/commons/achievement/control/achievementEditor/AchievementSettings.tsx b/src/commons/achievement/control/achievementEditor/AchievementSettings.tsx index cf92a42bba..aebca34d6a 100644 --- a/src/commons/achievement/control/achievementEditor/AchievementSettings.tsx +++ b/src/commons/achievement/control/achievementEditor/AchievementSettings.tsx @@ -1,6 +1,5 @@ -import { Button, Checkbox, Dialog, EditableText } from '@blueprintjs/core'; +import { Button, Checkbox, Dialog, EditableText, Tooltip } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Tooltip2 } from '@blueprintjs/popover2'; import React, { useState } from 'react'; import { AchievementItem } from 'src/features/achievement/AchievementTypes'; @@ -33,9 +32,9 @@ const AchievementSettings: React.FC = ({ return ( <> - + - + = ({ changeView, view }) => { return ( <> - + - + = ({ changeMeta, meta }) => { return ( <> - + = ({ changeMeta, meta }) => { > - + = ({ assessmentMeta, changeMeta }) return ( <> - + - - + + = ({ assessmentMeta, changeMeta }) rightElement={

%

} value={requiredCompletionFrac * 100} /> -
+ ); }; diff --git a/src/commons/achievement/control/goalEditor/metaDetails/EditableBinaryMeta.tsx b/src/commons/achievement/control/goalEditor/metaDetails/EditableBinaryMeta.tsx index 8fd93115c6..55ef11c495 100644 --- a/src/commons/achievement/control/goalEditor/metaDetails/EditableBinaryMeta.tsx +++ b/src/commons/achievement/control/goalEditor/metaDetails/EditableBinaryMeta.tsx @@ -1,6 +1,5 @@ -import { Button, EditableText, MenuItem, NumericInput } from '@blueprintjs/core'; +import { Button, EditableText, MenuItem, NumericInput, Tooltip } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Tooltip2 } from '@blueprintjs/popover2'; import { ItemRenderer, Select } from '@blueprintjs/select'; import React from 'react'; import { BinaryMeta, GoalMeta } from 'src/features/achievement/AchievementTypes'; @@ -113,26 +112,26 @@ const EditableBinaryMeta: React.FC = ({ binaryMeta, changeMeta }) => { idx % 2 === 0 ? ( // the text to change the condition <> - + changeConditionArray(value, idx / 2)} multiline={true} placeholder="Enter condition here" value={op} /> - + { // should only be deleteable if not the only condition conditions.length > 1 && ( - +
diff --git a/src/commons/dropdown/__tests__/__snapshots__/Dropdown.tsx.snap b/src/commons/dropdown/__tests__/__snapshots__/Dropdown.tsx.snap index 8cc3132cfd..bbe96b5fc2 100644 --- a/src/commons/dropdown/__tests__/__snapshots__/Dropdown.tsx.snap +++ b/src/commons/dropdown/__tests__/__snapshots__/Dropdown.tsx.snap @@ -2,7 +2,7 @@ exports[`Dropdown correctly mounts Profile, DropdownCourses, and DropdownCreateCourses components when a user is logged in 1`] = ` @@ -36,7 +36,7 @@ exports[`Dropdown correctly mounts Profile, DropdownCourses, and DropdownCreateC exports[`Dropdown does not mount Profile, DropdownCourses and DropdownCreateCourses components when a user is not logged in 1`] = ` diff --git a/src/commons/editor/Editor.tsx b/src/commons/editor/Editor.tsx index 1de0039329..1e14e4fad4 100644 --- a/src/commons/editor/Editor.tsx +++ b/src/commons/editor/Editor.tsx @@ -1,25 +1,26 @@ /* eslint-disable simple-import-sort/imports */ -import { Ace, require as acequire, createEditSession } from 'ace-builds'; import 'ace-builds/src-noconflict/ext-language_tools'; import 'ace-builds/src-noconflict/ext-searchbox'; import 'ace-builds/src-noconflict/ext-settings_menu'; import 'js-slang/dist/editors/ace/theme/source'; +import { Classes } from '@blueprintjs/core'; import * as AceBuilds from 'ace-builds'; +import { Ace, require as acequire, createEditSession } from 'ace-builds'; +import classNames from 'classnames'; import { Chapter, Variant } from 'js-slang/dist/types'; import React from 'react'; import AceEditor, { IAceEditorProps, IEditorProps } from 'react-ace'; +import { IAceEditor } from 'react-ace/lib/types'; import { HotKeys } from 'react-hotkeys'; - -import { keyBindings, KeyFunction } from './EditorHotkeys'; +import { EditorBinding } from '../WorkspaceSettingsContext'; +import { getModeString, selectMode } from '../utils/AceHelper'; +import { KeyFunction, keyBindings } from './EditorHotkeys'; import { AceMouseEvent, HighlightedLines, Position } from './EditorTypes'; // =============== Hooks =============== // TODO: Should further refactor into EditorBase + different variants. // Ideally, hooks should be specified by the parent component instead. -import { IAceEditor } from 'react-ace/lib/types'; -import { getModeString, selectMode } from '../utils/AceHelper'; -import { EditorBinding } from '../WorkspaceSettingsContext'; import useHighlighting from './UseHighlighting'; import useNavigation from './UseNavigation'; import useRefactor from './UseRefactor'; @@ -650,7 +651,10 @@ const EditorBase = React.memo((props: EditorProps & LocalStateProps) => { }, []); return ( - +
diff --git a/src/commons/mobileWorkspace/mobileSideContent/MobileControlBar.tsx b/src/commons/mobileWorkspace/mobileSideContent/MobileControlBar.tsx index 7e07f9a9b3..132c52ec9a 100644 --- a/src/commons/mobileWorkspace/mobileSideContent/MobileControlBar.tsx +++ b/src/commons/mobileWorkspace/mobileSideContent/MobileControlBar.tsx @@ -1,6 +1,5 @@ -import { Button } from '@blueprintjs/core'; +import { Button, Popover } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Popover2 } from '@blueprintjs/popover2'; import { ControlBarProps } from '../../controlBar/ControlBar'; @@ -14,9 +13,9 @@ const MobileControlBar: React.FC = props => { ); return ( - + {testcaseCards} diff --git a/src/commons/sideContent/content/SideContentContestLeaderboard.tsx b/src/commons/sideContent/content/SideContentContestLeaderboard.tsx index d072cc3131..49f255eb99 100644 --- a/src/commons/sideContent/content/SideContentContestLeaderboard.tsx +++ b/src/commons/sideContent/content/SideContentContestLeaderboard.tsx @@ -1,6 +1,5 @@ -import { Button, Collapse, Icon } from '@blueprintjs/core'; +import { Button, Collapse, Icon, Tooltip } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Tooltip2 } from '@blueprintjs/popover2'; import React, { useMemo, useState } from 'react'; import { ContestEntry } from '../../assessment/AssessmentTypes'; @@ -104,9 +103,9 @@ const SideContentContestLeaderboard: React.FC setShowLeaderboard(!showLeaderboard)} > {leaderboardTitle} - + - + {contestEntryCards} diff --git a/src/commons/sideContent/content/SideContentContestVoting.tsx b/src/commons/sideContent/content/SideContentContestVoting.tsx index f6c12fe6f6..e5f299d8e6 100644 --- a/src/commons/sideContent/content/SideContentContestVoting.tsx +++ b/src/commons/sideContent/content/SideContentContestVoting.tsx @@ -1,6 +1,5 @@ -import { Button, Card, Classes, Collapse, Elevation, Icon, Pre } from '@blueprintjs/core'; +import { Button, Card, Classes, Collapse, Elevation, Icon, Pre, Tooltip } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Tooltip2 } from '@blueprintjs/popover2'; import classNames from 'classnames'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; @@ -214,13 +213,13 @@ const SideContentContestVoting: React.FC = ({ onClick={() => setShowContestEntries(!showContestEntries)} > Contest Voting - Rank your favourite contest entries from tiers D (worst) to S (best)!
} > - + {contestEntryCards} diff --git a/src/commons/sideContent/content/SideContentCseMachine.tsx b/src/commons/sideContent/content/SideContentCseMachine.tsx index fe6adf3048..277cb79422 100644 --- a/src/commons/sideContent/content/SideContentCseMachine.tsx +++ b/src/commons/sideContent/content/SideContentCseMachine.tsx @@ -5,10 +5,10 @@ import { Checkbox, Classes, Divider, - Slider + Slider, + Tooltip } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; -import { Tooltip2 } from '@blueprintjs/popover2'; import classNames from 'classnames'; import { Chapter } from 'js-slang/dist/types'; import { debounce } from 'lodash'; @@ -241,7 +241,7 @@ class SideContentCseMachineBase extends React.Component > {!this.isJava() && ( - + { if (this.state.visualization) { @@ -258,8 +258,8 @@ class SideContentCseMachineBase extends React.Component style={{ margin: 0 }} /> - - + + { if (this.state.visualization) { @@ -276,7 +276,7 @@ class SideContentCseMachineBase extends React.Component style={{ margin: 0 }} /> - + )} @@ -311,7 +311,7 @@ class SideContentCseMachineBase extends React.Component {!this.isJava() && ( - + { if (this.state.visualization) { @@ -328,14 +328,14 @@ class SideContentCseMachineBase extends React.Component style={{ margin: 0 }} /> - - + + - + )} diff --git a/src/commons/sideContent/content/SideContentDataVisualizer.tsx b/src/commons/sideContent/content/SideContentDataVisualizer.tsx index 4b991f216d..8a5306ce62 100644 --- a/src/commons/sideContent/content/SideContentDataVisualizer.tsx +++ b/src/commons/sideContent/content/SideContentDataVisualizer.tsx @@ -96,7 +96,7 @@ class SideContentDataVisualizerBase extends React.Component Previous -

+

Call {this.state.currentStep + 1}/{this.state.steps.length}