@elice/material-exercise 1.260429.0-improvetimerpopoverui.0 → 1.260430.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/material-exercise/context/index.js +0 -7
- package/cjs/components/material-exercise/context/recoil.d.ts +0 -44
- package/cjs/components/material-exercise/context/recoil.js +0 -108
- package/cjs/components/material-exercise/context/recoilTypes.d.ts +0 -7
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +1 -18
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +2 -4
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +27 -57
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -219
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +58 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
- package/cjs/components/material-exercise/exercise-runner/action/index.js +15 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +52 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +74 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.js +65 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +68 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +163 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +188 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +128 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +78 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +98 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +24 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +201 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +125 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +179 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +29 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +94 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +105 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +94 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +95 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +70 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/_context.js +18 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/index.js +13 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +38 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +33 -0
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
- package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +1 -1
- package/cjs/hooks/index.d.ts +0 -1
- package/cjs/hooks/index.js +0 -2
- package/es/components/material-exercise/context/index.js +1 -1
- package/es/components/material-exercise/context/recoil.d.ts +0 -44
- package/es/components/material-exercise/context/recoil.js +1 -102
- package/es/components/material-exercise/context/recoilTypes.d.ts +0 -7
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +2 -18
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +3 -3
- package/es/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
- package/es/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +28 -58
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -214
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
- package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +54 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
- package/es/components/material-exercise/exercise-runner/action/index.js +5 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +46 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +68 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.js +59 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +62 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +148 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +177 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +118 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +70 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +90 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +20 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +197 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +112 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +161 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +25 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +84 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +97 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +86 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +87 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +62 -0
- package/es/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
- package/es/components/material-exercise/exercise-runner/arduino/_context.js +15 -0
- package/es/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
- package/es/components/material-exercise/exercise-runner/arduino/index.js +4 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +32 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +27 -0
- package/es/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
- package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
- package/es/components/shared/monaco-editor/utils/prettier/config.js +1 -1
- package/es/hooks/index.d.ts +0 -1
- package/es/hooks/index.js +0 -1
- package/package.json +15 -11
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -33
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -178
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -169
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -120
- package/cjs/constants/arduino.d.ts +0 -35
- package/cjs/constants/arduino.js +0 -73
- package/cjs/hooks/useArduino.d.ts +0 -14
- package/cjs/hooks/useArduino.js +0 -589
- package/cjs/typings/arduino.d.ts +0 -77
- package/cjs/utils/arduino.d.ts +0 -43
- package/cjs/utils/arduino.js +0 -82
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -29
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -170
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -161
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -112
- package/es/constants/arduino.d.ts +0 -35
- package/es/constants/arduino.js +0 -62
- package/es/hooks/useArduino.d.ts +0 -14
- package/es/hooks/useArduino.js +0 -583
- package/es/typings/arduino.d.ts +0 -77
- package/es/utils/arduino.d.ts +0 -43
- package/es/utils/arduino.js +0 -75
package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js
CHANGED
|
@@ -2,228 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
-
var _styled = require('@emotion/styled/base');
|
|
7
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var websocket = require('@elice/websocket');
|
|
14
|
-
var recoil = require('recoil');
|
|
15
|
-
var ExerciseRunnerContext = require('./ExerciseRunnerContext.js');
|
|
16
|
-
var recoil$1 = require('../context/recoil.js');
|
|
17
|
-
var useExericseShortcut = require('../../../hooks/useExericseShortcut.js');
|
|
18
|
-
var context = require('../context/context.js');
|
|
19
|
-
var useExerciseFile = require('../../../hooks/useExerciseFile.js');
|
|
20
|
-
var subjects = require('../context/subjects.js');
|
|
6
|
+
var material = require('@mui/material');
|
|
7
|
+
var ControllerActionRun = require('./action/ControllerActionRun.js');
|
|
8
|
+
var ControllerActionGrade = require('./action/ControllerActionGrade.js');
|
|
9
|
+
var ControllerActionCancel = require('./action/ControllerActionCancel.js');
|
|
10
|
+
var ControllerActionSyncRequest = require('./action/ControllerActionSyncRequest.js');
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
26
|
-
|
|
27
|
-
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
28
|
-
var StyledControllerButton = /*#__PURE__*/_styled__default.default(blocks.Button, {
|
|
29
|
-
target: "e45p2z2"
|
|
30
|
-
})("position:relative;transition:none;&.eb-button--role-danger{border-color:", muiSystem.colors.red[700], ";background-color:", muiSystem.colors.red[700], ";}");
|
|
31
|
-
var StyledControllerButtonWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
32
|
-
target: "e45p2z1"
|
|
33
|
-
})("production" === "production" ? {
|
|
34
|
-
name: "zjik7",
|
|
35
|
-
styles: "display:flex"
|
|
36
|
-
} : {
|
|
37
|
-
name: "zjik7",
|
|
38
|
-
styles: "display:flex",
|
|
39
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
40
|
-
});
|
|
41
|
-
var StyledControllerButtonGroup = /*#__PURE__*/_styled__default.default("div", {
|
|
42
|
-
target: "e45p2z0"
|
|
43
|
-
})("display:flex;flex-direction:row;align-items:center;>", StyledControllerButtonWrap, ",>", StyledControllerButton, "{margin-right:0.5rem;&:last-child{margin-right:0;}}");
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
//
|
|
44
15
|
var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButtonGroup() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
onSubmit = _React$useContext2.onSubmit,
|
|
51
|
-
onSyncRequest = _React$useContext2.onSyncRequest,
|
|
52
|
-
onCancel = _React$useContext2.onCancel;
|
|
53
|
-
var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
|
|
54
|
-
var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
|
|
55
|
-
var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseWebSocketTotalStatusQuery([].concat(_rollupPluginBabelHelpers.toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
|
|
56
|
-
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
57
|
-
var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
|
|
58
|
-
var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
|
|
59
|
-
var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
|
|
60
|
-
var isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test;
|
|
61
|
-
var isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === types.enums.TestAdmissionStatus.Completed;
|
|
62
|
-
// runner states
|
|
63
|
-
var isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
|
|
64
|
-
var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
|
|
65
|
-
var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
|
|
66
|
-
var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
|
|
67
|
-
// arduino
|
|
68
|
-
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
69
|
-
var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
|
|
70
|
-
var arduinoOpenedPortName = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
|
|
71
|
-
//
|
|
72
|
-
// ========= ui states =========
|
|
73
|
-
//
|
|
74
|
-
// submit run
|
|
75
|
-
var isSubmitRunHidden = isRunning;
|
|
76
|
-
var isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
|
|
77
|
-
var isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting;
|
|
78
|
-
// submit grade
|
|
79
|
-
var isSubmitGradeHidden = isRunning;
|
|
80
|
-
var isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting;
|
|
81
|
-
// cancel
|
|
82
|
-
var isCancelHidden = !isRunning;
|
|
83
|
-
var isCancelDisabled = isCancelHidden || isNotReady || isConnecting;
|
|
84
|
-
// sync request
|
|
85
|
-
var isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
|
|
86
|
-
var isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting;
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
/**
|
|
91
|
-
* Submit to run
|
|
92
|
-
*/
|
|
93
|
-
var handleSubmitRun = function handleSubmitRun() {
|
|
94
|
-
if (!isSubmitRunDisabled) {
|
|
95
|
-
void onSubmit(types.enums.ExerciseRunType.Run);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Submit to grade
|
|
100
|
-
*/
|
|
101
|
-
var handleSubmitGrade = function handleSubmitGrade() {
|
|
102
|
-
if (!isSubmitGradeDisabled) {
|
|
103
|
-
void onSubmit(types.enums.ExerciseRunType.Grade);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Cancel
|
|
108
|
-
*/
|
|
109
|
-
var handleCancel = function handleCancel() {
|
|
110
|
-
if (!isCancelDisabled) {
|
|
111
|
-
onCancel();
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Sync request
|
|
116
|
-
*/
|
|
117
|
-
var handleSyncRequest = function handleSyncRequest() {
|
|
118
|
-
if (!isSyncRequestDisabled) {
|
|
119
|
-
onSyncRequest();
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
//
|
|
123
|
-
// keyboard shortcuts to control runner
|
|
124
|
-
//
|
|
125
|
-
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_RUN', handleSubmitRun);
|
|
126
|
-
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_GRADE', handleSubmitGrade);
|
|
127
|
-
useExericseShortcut.useExericseShortcut('RUNNER_CANCEL', handleCancel);
|
|
128
|
-
useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest);
|
|
129
|
-
//
|
|
130
|
-
// handle save action emitted by file editor
|
|
131
|
-
//
|
|
132
|
-
React__default.default.useEffect(function () {
|
|
133
|
-
var saveActionSub = subjects.exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
|
|
134
|
-
return function () {
|
|
135
|
-
saveActionSub.unsubscribe();
|
|
136
|
-
};
|
|
137
|
-
},
|
|
138
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
139
|
-
[isSyncRequestDisabled]);
|
|
140
|
-
/**
|
|
141
|
-
* Submit to run button
|
|
142
|
-
*/
|
|
143
|
-
var renderSubmitRunButton = function renderSubmitRunButton() {
|
|
144
|
-
if (isSubmitRunHidden) {
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
return jsxRuntime.jsx(StyledControllerButton, {
|
|
148
|
-
size: "tiny",
|
|
149
|
-
loading: isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Run,
|
|
150
|
-
disabled: isSubmitRunDisabled,
|
|
151
|
-
onClick: handleSubmitRun,
|
|
152
|
-
children: isArduinoExercise ? intl$1.formatMessage({
|
|
153
|
-
id: 'exerciseRunner.controller.buttonGroup.button.compile'
|
|
154
|
-
}) : intl$1.formatMessage({
|
|
155
|
-
id: 'exerciseRunner.controller.buttonGroup.button.run'
|
|
156
|
-
})
|
|
157
|
-
});
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Submit to grade button
|
|
161
|
-
*/
|
|
162
|
-
var renderSubmitGradeButton = function renderSubmitGradeButton() {
|
|
163
|
-
if (isSubmitGradeHidden) {
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
return jsxRuntime.jsx(blocks.Tooltip, {
|
|
167
|
-
dark: true,
|
|
168
|
-
title: exerciseWithNoGrade ? intl$1.formatMessage({
|
|
169
|
-
id: 'exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit'
|
|
170
|
-
}) : undefined,
|
|
171
|
-
placement: "top",
|
|
172
|
-
children: jsxRuntime.jsx(StyledControllerButtonWrap, {
|
|
173
|
-
children: jsxRuntime.jsx(StyledControllerButton, {
|
|
174
|
-
size: "tiny",
|
|
175
|
-
role: "secondary",
|
|
176
|
-
loading: isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Grade,
|
|
177
|
-
disabled: isSubmitGradeDisabled,
|
|
178
|
-
onClick: handleSubmitGrade,
|
|
179
|
-
children: intl$1.formatMessage({
|
|
180
|
-
id: 'exerciseRunner.controller.buttonGroup.button.submit'
|
|
181
|
-
})
|
|
182
|
-
})
|
|
183
|
-
})
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
|
-
/**
|
|
187
|
-
* Cancel button
|
|
188
|
-
*/
|
|
189
|
-
var renderCancelButton = function renderCancelButton() {
|
|
190
|
-
if (isCancelHidden) {
|
|
191
|
-
return null;
|
|
192
|
-
}
|
|
193
|
-
return jsxRuntime.jsx(StyledControllerButton, {
|
|
194
|
-
size: "tiny",
|
|
195
|
-
role: "danger",
|
|
196
|
-
loading: isConnecting,
|
|
197
|
-
disabled: isCancelDisabled,
|
|
198
|
-
onClick: handleCancel,
|
|
199
|
-
children: intl$1.formatMessage({
|
|
200
|
-
id: 'exerciseRunner.controller.buttonGroup.button.stop'
|
|
201
|
-
})
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
/**
|
|
205
|
-
* Sync request button
|
|
206
|
-
*/
|
|
207
|
-
var renderSyncRequestButton = function renderSyncRequestButton() {
|
|
208
|
-
if (isSyncRequestHidden) {
|
|
209
|
-
return null;
|
|
210
|
-
}
|
|
211
|
-
return jsxRuntime.jsx(StyledControllerButton, {
|
|
212
|
-
size: "tiny",
|
|
213
|
-
role: "secondary",
|
|
214
|
-
loading: isConnecting,
|
|
215
|
-
disabled: isSyncRequestDisabled,
|
|
216
|
-
onClick: handleSyncRequest,
|
|
217
|
-
children: intl$1.formatMessage({
|
|
218
|
-
id: 'exerciseRunner.controller.buttonGroup.button.syncRequest'
|
|
219
|
-
})
|
|
220
|
-
});
|
|
221
|
-
};
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
return jsxRuntime.jsxs(StyledControllerButtonGroup, {
|
|
226
|
-
children: [renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton()]
|
|
16
|
+
return jsxRuntime.jsxs(material.Stack, {
|
|
17
|
+
direction: "row",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
gap: "0.5rem",
|
|
20
|
+
children: [jsxRuntime.jsx(ControllerActionRun.default, {}), jsxRuntime.jsx(ControllerActionGrade.default, {}), jsxRuntime.jsx(ControllerActionCancel.default, {}), jsxRuntime.jsx(ControllerActionSyncRequest.default, {})]
|
|
227
21
|
});
|
|
228
22
|
};
|
|
229
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface CodeHelpRequestButtonProps {
|
|
3
3
|
onClick: () => void;
|
|
4
4
|
}
|
|
5
|
-
declare const ExerciseRunnerControllerCodeHelpRequestButton: React.FC<
|
|
5
|
+
declare const ExerciseRunnerControllerCodeHelpRequestButton: React.FC<CodeHelpRequestButtonProps>;
|
|
6
6
|
export default ExerciseRunnerControllerCodeHelpRequestButton;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var intl = require('@elice/intl');
|
|
7
|
+
var lab = require('@mui/lab');
|
|
8
|
+
var useControllerActionCancel = require('./useControllerActionCancel.js');
|
|
9
|
+
var useExericseShortcut = require('../../../../hooks/useExericseShortcut.js');
|
|
10
|
+
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ControllerActionCancel = function ControllerActionCancel() {
|
|
15
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
16
|
+
var _useControllerActionC = useControllerActionCancel.useControllerActionCancel(),
|
|
17
|
+
isHidden = _useControllerActionC.isHidden,
|
|
18
|
+
isDisabled = _useControllerActionC.isDisabled,
|
|
19
|
+
isLoading = _useControllerActionC.isLoading,
|
|
20
|
+
cancel = _useControllerActionC.cancel;
|
|
21
|
+
//
|
|
22
|
+
// register the shortcut
|
|
23
|
+
//
|
|
24
|
+
useExericseShortcut.useExericseShortcut('RUNNER_CANCEL', cancel);
|
|
25
|
+
//
|
|
26
|
+
//
|
|
27
|
+
//
|
|
28
|
+
if (isHidden) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return jsxRuntime.jsx(lab.LoadingButton, {
|
|
32
|
+
size: "small",
|
|
33
|
+
variant: "contained",
|
|
34
|
+
color: "error",
|
|
35
|
+
loading: isLoading,
|
|
36
|
+
disabled: isDisabled,
|
|
37
|
+
onClick: cancel,
|
|
38
|
+
children: intl$1.formatMessage({
|
|
39
|
+
id: 'exerciseRunner.controller.buttonGroup.button.stop'
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.default = ControllerActionCancel;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var intl = require('@elice/intl');
|
|
7
|
+
var lab = require('@mui/lab');
|
|
8
|
+
var material = require('@mui/material');
|
|
9
|
+
var useControllerActionGrade = require('./useControllerActionGrade.js');
|
|
10
|
+
var useExericseShortcut = require('../../../../hooks/useExericseShortcut.js');
|
|
11
|
+
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
//
|
|
15
|
+
var ControllerActionGrade = function ControllerActionGrade() {
|
|
16
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
17
|
+
var _useControllerActionG = useControllerActionGrade.useControllerActionGrade(),
|
|
18
|
+
isHidden = _useControllerActionG.isHidden,
|
|
19
|
+
isDisabled = _useControllerActionG.isDisabled,
|
|
20
|
+
isLoading = _useControllerActionG.isLoading,
|
|
21
|
+
isNoGrade = _useControllerActionG.isNoGrade,
|
|
22
|
+
grade = _useControllerActionG.grade;
|
|
23
|
+
//
|
|
24
|
+
// register the shortcut
|
|
25
|
+
//
|
|
26
|
+
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_GRADE', grade);
|
|
27
|
+
//
|
|
28
|
+
//
|
|
29
|
+
//
|
|
30
|
+
if (isHidden) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return jsxRuntime.jsx(material.Tooltip, {
|
|
34
|
+
title: isNoGrade ? intl$1.formatMessage({
|
|
35
|
+
id: 'exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit'
|
|
36
|
+
}) : '',
|
|
37
|
+
placement: "top",
|
|
38
|
+
children: jsxRuntime.jsx(material.Box, {
|
|
39
|
+
component: "span",
|
|
40
|
+
sx: {
|
|
41
|
+
display: 'inline-flex'
|
|
42
|
+
},
|
|
43
|
+
children: jsxRuntime.jsx(lab.LoadingButton, {
|
|
44
|
+
size: "small",
|
|
45
|
+
variant: "contained",
|
|
46
|
+
color: "info",
|
|
47
|
+
loading: isLoading,
|
|
48
|
+
disabled: isDisabled,
|
|
49
|
+
onClick: grade,
|
|
50
|
+
children: intl$1.formatMessage({
|
|
51
|
+
id: 'exerciseRunner.controller.buttonGroup.button.submit'
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
exports.default = ControllerActionGrade;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var intl = require('@elice/intl');
|
|
7
|
+
var lab = require('@mui/lab');
|
|
8
|
+
var useControllerActionRun = require('./useControllerActionRun.js');
|
|
9
|
+
var useExericseShortcut = require('../../../../hooks/useExericseShortcut.js');
|
|
10
|
+
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ControllerActionRun = function ControllerActionRun() {
|
|
15
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
16
|
+
var _useControllerActionR = useControllerActionRun.useControllerActionRun(),
|
|
17
|
+
isHidden = _useControllerActionR.isHidden,
|
|
18
|
+
isDisabled = _useControllerActionR.isDisabled,
|
|
19
|
+
isLoading = _useControllerActionR.isLoading,
|
|
20
|
+
run = _useControllerActionR.run;
|
|
21
|
+
//
|
|
22
|
+
// register the shortcut
|
|
23
|
+
//
|
|
24
|
+
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_RUN', run);
|
|
25
|
+
//
|
|
26
|
+
//
|
|
27
|
+
//
|
|
28
|
+
if (isHidden) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return jsxRuntime.jsx(lab.LoadingButton, {
|
|
32
|
+
size: "small",
|
|
33
|
+
variant: "contained",
|
|
34
|
+
color: "primary",
|
|
35
|
+
loading: isLoading,
|
|
36
|
+
disabled: isDisabled,
|
|
37
|
+
onClick: run,
|
|
38
|
+
children: intl$1.formatMessage({
|
|
39
|
+
id: 'exerciseRunner.controller.buttonGroup.button.run'
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.default = ControllerActionRun;
|
package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var intl = require('@elice/intl');
|
|
7
|
+
var lab = require('@mui/lab');
|
|
8
|
+
var useControllerActionSyncRequest = require('./useControllerActionSyncRequest.js');
|
|
9
|
+
var useExericseShortcut = require('../../../../hooks/useExericseShortcut.js');
|
|
10
|
+
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ControllerActionSyncRequest = function ControllerActionSyncRequest() {
|
|
15
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
16
|
+
var _useControllerActionS = useControllerActionSyncRequest.useControllerActionSyncRequest(),
|
|
17
|
+
isHidden = _useControllerActionS.isHidden,
|
|
18
|
+
isDisabled = _useControllerActionS.isDisabled,
|
|
19
|
+
isLoading = _useControllerActionS.isLoading,
|
|
20
|
+
syncRequest = _useControllerActionS.syncRequest;
|
|
21
|
+
//
|
|
22
|
+
// register the shortcut
|
|
23
|
+
//
|
|
24
|
+
useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', syncRequest);
|
|
25
|
+
//
|
|
26
|
+
//
|
|
27
|
+
//
|
|
28
|
+
if (isHidden) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return jsxRuntime.jsx(lab.LoadingButton, {
|
|
32
|
+
size: "small",
|
|
33
|
+
variant: "contained",
|
|
34
|
+
color: "secondary",
|
|
35
|
+
loading: isLoading,
|
|
36
|
+
disabled: isDisabled,
|
|
37
|
+
onClick: syncRequest,
|
|
38
|
+
children: intl$1.formatMessage({
|
|
39
|
+
id: 'exerciseRunner.controller.buttonGroup.button.syncRequest'
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.default = ControllerActionSyncRequest;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as ControllerActionCancel } from './ControllerActionCancel';
|
|
2
|
+
export { default as ControllerActionGrade } from './ControllerActionGrade';
|
|
3
|
+
export { default as ControllerActionRun } from './ControllerActionRun';
|
|
4
|
+
export { default as ControllerActionSyncRequest } from './ControllerActionSyncRequest';
|
|
5
|
+
export { useControllerActionRun } from './useControllerActionRun';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ControllerActionCancel = require('./ControllerActionCancel.js');
|
|
4
|
+
var ControllerActionGrade = require('./ControllerActionGrade.js');
|
|
5
|
+
var ControllerActionRun = require('./ControllerActionRun.js');
|
|
6
|
+
var ControllerActionSyncRequest = require('./ControllerActionSyncRequest.js');
|
|
7
|
+
var useControllerActionRun = require('./useControllerActionRun.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.ControllerActionCancel = ControllerActionCancel.default;
|
|
12
|
+
exports.ControllerActionGrade = ControllerActionGrade.default;
|
|
13
|
+
exports.ControllerActionRun = ControllerActionRun.default;
|
|
14
|
+
exports.ControllerActionSyncRequest = ControllerActionSyncRequest.default;
|
|
15
|
+
exports.useControllerActionRun = useControllerActionRun.useControllerActionRun;
|
package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UseControllerActionCancelReturn {
|
|
2
|
+
/** Whether the cancel button should be hidden. */
|
|
3
|
+
isHidden: boolean;
|
|
4
|
+
/** Whether the cancel button should be disabled. */
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
/** Whether the cancel button should show a loading indicator. */
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
/** Cancel the running exercise. */
|
|
9
|
+
cancel: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Provides state and handler for the exercise runner's "cancel" action.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useControllerActionCancel: () => UseControllerActionCancelReturn;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var websocket = require('@elice/websocket');
|
|
6
|
+
var recoil = require('recoil');
|
|
7
|
+
var ExerciseRunnerContext = require('../ExerciseRunnerContext.js');
|
|
8
|
+
var recoil$1 = require('../../context/recoil.js');
|
|
9
|
+
var useExerciseFile = require('../../../../hooks/useExerciseFile.js');
|
|
10
|
+
|
|
11
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
|
+
|
|
15
|
+
//
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
/**
|
|
19
|
+
* Provides state and handler for the exercise runner's "cancel" action.
|
|
20
|
+
*/
|
|
21
|
+
var useControllerActionCancel = function useControllerActionCancel() {
|
|
22
|
+
var _return = React__default.default.useRef({});
|
|
23
|
+
var _React$useContext = React__default.default.useContext(ExerciseRunnerContext.ExerciseRunnerContext),
|
|
24
|
+
onCancel = _React$useContext.onCancel;
|
|
25
|
+
var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
|
|
26
|
+
var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
|
|
27
|
+
var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseWebSocketTotalStatusQuery([].concat(_rollupPluginBabelHelpers.toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
|
|
28
|
+
var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
|
|
29
|
+
var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
|
|
30
|
+
var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
|
|
31
|
+
var isHidden = !isRunning;
|
|
32
|
+
var isDisabled = isHidden || isNotReady || isConnecting;
|
|
33
|
+
var isLoading = isConnecting;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
var cancel = React__default.default.useCallback(function () {
|
|
38
|
+
if (!isDisabled) {
|
|
39
|
+
onCancel();
|
|
40
|
+
}
|
|
41
|
+
}, [isDisabled, onCancel]);
|
|
42
|
+
//
|
|
43
|
+
//
|
|
44
|
+
//
|
|
45
|
+
_return.current.isHidden = isHidden;
|
|
46
|
+
_return.current.isDisabled = isDisabled;
|
|
47
|
+
_return.current.isLoading = isLoading;
|
|
48
|
+
_return.current.cancel = cancel;
|
|
49
|
+
return _return.current;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.useControllerActionCancel = useControllerActionCancel;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface UseControllerActionGradeReturn {
|
|
2
|
+
/** Whether the grade button should be hidden. */
|
|
3
|
+
isHidden: boolean;
|
|
4
|
+
/** Whether the grade button should be disabled. */
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
/** Whether the grade button should show a loading indicator. */
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
/** Whether grading is disallowed for this exercise (used to show tooltip). */
|
|
9
|
+
isNoGrade: boolean;
|
|
10
|
+
/** Submit the exercise to grade. Resolves when the submission completes. */
|
|
11
|
+
grade: () => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Provides state and handler for the exercise runner's "grade" action.
|
|
15
|
+
*/
|
|
16
|
+
export declare const useControllerActionGrade: () => UseControllerActionGradeReturn;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var types = require('@elice/types');
|
|
6
|
+
var websocket = require('@elice/websocket');
|
|
7
|
+
var recoil = require('recoil');
|
|
8
|
+
var ExerciseRunnerContext = require('../ExerciseRunnerContext.js');
|
|
9
|
+
var recoil$1 = require('../../context/recoil.js');
|
|
10
|
+
var context = require('../../context/context.js');
|
|
11
|
+
var useExerciseFile = require('../../../../hooks/useExerciseFile.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
16
|
+
|
|
17
|
+
//
|
|
18
|
+
//
|
|
19
|
+
//
|
|
20
|
+
/**
|
|
21
|
+
* Provides state and handler for the exercise runner's "grade" action.
|
|
22
|
+
*/
|
|
23
|
+
var useControllerActionGrade = function useControllerActionGrade() {
|
|
24
|
+
var _return = React__default.default.useRef({});
|
|
25
|
+
var _React$useContext = React__default.default.useContext(context.ExerciseContext),
|
|
26
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
27
|
+
var _React$useContext2 = React__default.default.useContext(ExerciseRunnerContext.ExerciseRunnerContext),
|
|
28
|
+
onSubmit = _React$useContext2.onSubmit;
|
|
29
|
+
var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
|
|
30
|
+
var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
|
|
31
|
+
var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseWebSocketTotalStatusQuery([].concat(_rollupPluginBabelHelpers.toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
|
|
32
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
33
|
+
var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
|
|
34
|
+
var isNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
|
|
35
|
+
var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
|
|
36
|
+
var isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test;
|
|
37
|
+
var isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === types.enums.TestAdmissionStatus.Completed;
|
|
38
|
+
var isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
|
|
39
|
+
var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
|
|
40
|
+
var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
|
|
41
|
+
var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
|
|
42
|
+
var isHidden = isRunning;
|
|
43
|
+
var isDisabled = isHidden || isNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting;
|
|
44
|
+
var isLoading = isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Grade;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
var grade = React__default.default.useCallback(/*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
|
|
49
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
50
|
+
while (1) switch (_context.n) {
|
|
51
|
+
case 0:
|
|
52
|
+
if (isDisabled) {
|
|
53
|
+
_context.n = 1;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
_context.n = 1;
|
|
57
|
+
return onSubmit(types.enums.ExerciseRunType.Grade);
|
|
58
|
+
case 1:
|
|
59
|
+
return _context.a(2);
|
|
60
|
+
}
|
|
61
|
+
}, _callee);
|
|
62
|
+
})), [isDisabled, onSubmit]);
|
|
63
|
+
//
|
|
64
|
+
//
|
|
65
|
+
//
|
|
66
|
+
_return.current.isHidden = isHidden;
|
|
67
|
+
_return.current.isDisabled = isDisabled;
|
|
68
|
+
_return.current.isLoading = isLoading;
|
|
69
|
+
_return.current.isNoGrade = isNoGrade;
|
|
70
|
+
_return.current.grade = grade;
|
|
71
|
+
return _return.current;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
exports.useControllerActionGrade = useControllerActionGrade;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UseControllerActionRunReturn {
|
|
2
|
+
/** Whether the run button should be hidden. */
|
|
3
|
+
isHidden: boolean;
|
|
4
|
+
/** Whether the run button should be disabled. */
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
/** Whether the run button should show a loading indicator. */
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
/** Submit the exercise to run. Resolves when the submission completes. */
|
|
9
|
+
run: () => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Provides state and handler for the exercise runner's "run" action.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useControllerActionRun: () => UseControllerActionRunReturn;
|