@elice/material-exercise 1.260429.0-improvetimerpopoverui.0 → 1.260430.1
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 +68 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +54 -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 +156 -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 +132 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +88 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +103 -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 +64 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +50 -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 +141 -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 +122 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +80 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +95 -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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { toConsumableArray as _toConsumableArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { enums } from '@elice/types';
|
|
4
|
+
import { EliceWebSocket } from '@elice/websocket';
|
|
5
|
+
import { useRecoilValue } from 'recoil';
|
|
6
|
+
import { ExerciseRunnerContext } from '../ExerciseRunnerContext.js';
|
|
7
|
+
import { exerciseActiveFilenameState, exerciseWebSocketTotalStatusQuery, exerciseRunnerRunTypeState, exerciseRunnerSubmittingState, exerciseRunnerRunningState } from '../../context/recoil.js';
|
|
8
|
+
import { useExerciseFileEditable } from '../../../../hooks/useExerciseFile.js';
|
|
9
|
+
|
|
10
|
+
//
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
/**
|
|
14
|
+
* Provides state and handler for the exercise runner's "run" action.
|
|
15
|
+
*/
|
|
16
|
+
var useControllerActionRun = function useControllerActionRun() {
|
|
17
|
+
var _return = React.useRef({});
|
|
18
|
+
var _React$useContext = React.useContext(ExerciseRunnerContext),
|
|
19
|
+
onSubmit = _React$useContext.onSubmit;
|
|
20
|
+
var activeFilename = useRecoilValue(exerciseActiveFilenameState);
|
|
21
|
+
var isFileEditable = useExerciseFileEditable(activeFilename);
|
|
22
|
+
var runnerWebsocketStatus = useRecoilValue(exerciseWebSocketTotalStatusQuery([].concat(_toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
|
|
23
|
+
var exerciseRunType = useRecoilValue(exerciseRunnerRunTypeState);
|
|
24
|
+
var isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
|
|
25
|
+
var isRunning = useRecoilValue(exerciseRunnerRunningState);
|
|
26
|
+
var isConnecting = runnerWebsocketStatus === EliceWebSocket.CONNECTING;
|
|
27
|
+
var isNotReady = runnerWebsocketStatus !== EliceWebSocket.OPEN;
|
|
28
|
+
var isHidden = isRunning;
|
|
29
|
+
var isDisabled = isHidden || isNotReady || isConnecting || isSubmitting;
|
|
30
|
+
var isLoading = isConnecting || isSubmitting && exerciseRunType === enums.ExerciseRunType.Run;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
var run = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
35
|
+
return _regenerator().w(function (_context) {
|
|
36
|
+
while (1) switch (_context.n) {
|
|
37
|
+
case 0:
|
|
38
|
+
if (isDisabled) {
|
|
39
|
+
_context.n = 1;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
_context.n = 1;
|
|
43
|
+
return onSubmit(enums.ExerciseRunType.Run);
|
|
44
|
+
case 1:
|
|
45
|
+
return _context.a(2);
|
|
46
|
+
}
|
|
47
|
+
}, _callee);
|
|
48
|
+
})), [isDisabled, onSubmit]);
|
|
49
|
+
//
|
|
50
|
+
//
|
|
51
|
+
//
|
|
52
|
+
_return.current.isHidden = isHidden;
|
|
53
|
+
_return.current.isDisabled = isDisabled;
|
|
54
|
+
_return.current.isLoading = isLoading;
|
|
55
|
+
_return.current.run = run;
|
|
56
|
+
return _return.current;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { useControllerActionRun };
|
package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface UseControllerActionSyncRequestReturn {
|
|
2
|
+
/** Whether the sync-request button should be hidden. */
|
|
3
|
+
isHidden: boolean;
|
|
4
|
+
/** Whether the sync-request button should be disabled. */
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
/** Whether the sync-request button should show a loading indicator. */
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
/** Request the runner to sync the latest user code. */
|
|
9
|
+
syncRequest: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Provides state and handler for the exercise runner's "sync request" action,
|
|
13
|
+
* and forwards file-editor save actions to the same handler.
|
|
14
|
+
*/
|
|
15
|
+
export declare const useControllerActionSyncRequest: () => UseControllerActionSyncRequestReturn;
|
package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { toConsumableArray as _toConsumableArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { EliceWebSocket } from '@elice/websocket';
|
|
4
|
+
import { useRecoilValue } from 'recoil';
|
|
5
|
+
import { ExerciseRunnerContext } from '../ExerciseRunnerContext.js';
|
|
6
|
+
import { ExerciseContext } from '../../context/context.js';
|
|
7
|
+
import { exerciseActiveFilenameState, exerciseWebSocketTotalStatusQuery, exerciseState, exerciseRunnerRunningState } from '../../context/recoil.js';
|
|
8
|
+
import { useExerciseFileEditable } from '../../../../hooks/useExerciseFile.js';
|
|
9
|
+
import { exerciseFileEditorSaveAction$ } from '../../context/subjects.js';
|
|
10
|
+
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
/**
|
|
15
|
+
* Provides state and handler for the exercise runner's "sync request" action,
|
|
16
|
+
* and forwards file-editor save actions to the same handler.
|
|
17
|
+
*/
|
|
18
|
+
var useControllerActionSyncRequest = function useControllerActionSyncRequest() {
|
|
19
|
+
var _a;
|
|
20
|
+
var _return = React.useRef({});
|
|
21
|
+
var _React$useContext = React.useContext(ExerciseContext),
|
|
22
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
23
|
+
var _React$useContext2 = React.useContext(ExerciseRunnerContext),
|
|
24
|
+
onSyncRequest = _React$useContext2.onSyncRequest;
|
|
25
|
+
var activeFilename = useRecoilValue(exerciseActiveFilenameState);
|
|
26
|
+
var isFileEditable = useExerciseFileEditable(activeFilename);
|
|
27
|
+
var runnerWebsocketStatus = useRecoilValue(exerciseWebSocketTotalStatusQuery([].concat(_toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
|
|
28
|
+
var exercise = useRecoilValue(exerciseState(materialExerciseId));
|
|
29
|
+
var isRunning = useRecoilValue(exerciseRunnerRunningState);
|
|
30
|
+
var isConnecting = runnerWebsocketStatus === EliceWebSocket.CONNECTING;
|
|
31
|
+
var isNotReady = runnerWebsocketStatus !== EliceWebSocket.OPEN;
|
|
32
|
+
var isHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
|
|
33
|
+
var isDisabled = isHidden || isNotReady || isConnecting;
|
|
34
|
+
var isLoading = isConnecting;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
var syncRequest = React.useCallback(function () {
|
|
39
|
+
if (!isDisabled) {
|
|
40
|
+
onSyncRequest();
|
|
41
|
+
}
|
|
42
|
+
}, [isDisabled, onSyncRequest]);
|
|
43
|
+
//
|
|
44
|
+
//
|
|
45
|
+
//
|
|
46
|
+
React.useEffect(function () {
|
|
47
|
+
var saveActionSub = exerciseFileEditorSaveAction$.subscribe(syncRequest);
|
|
48
|
+
return function () {
|
|
49
|
+
saveActionSub.unsubscribe();
|
|
50
|
+
};
|
|
51
|
+
}, [syncRequest]);
|
|
52
|
+
//
|
|
53
|
+
//
|
|
54
|
+
//
|
|
55
|
+
_return.current.isHidden = isHidden;
|
|
56
|
+
_return.current.isDisabled = isDisabled;
|
|
57
|
+
_return.current.isLoading = isLoading;
|
|
58
|
+
_return.current.syncRequest = syncRequest;
|
|
59
|
+
return _return.current;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export { useControllerActionSyncRequest };
|
package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
3
|
+
import { usePermissionPhase } from '@elice/mcu-bridge';
|
|
4
|
+
import ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';
|
|
5
|
+
import Alert from '@mui/material/Alert';
|
|
6
|
+
import Dialog from '@mui/material/Dialog';
|
|
7
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
8
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
9
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
10
|
+
import Stack from '@mui/material/Stack';
|
|
11
|
+
import Typography from '@mui/material/Typography';
|
|
12
|
+
import { useArduinoBridge } from './_context.js';
|
|
13
|
+
import ArduinoConnectionGuideDialogNativeMock from './ArduinoConnectionGuideDialogNativeMock.js';
|
|
14
|
+
import ArduinoConnectionGuideDialogSteps from './ArduinoConnectionGuideDialogSteps.js';
|
|
15
|
+
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
//
|
|
19
|
+
var ArduinoConnectionGuideDialog = function ArduinoConnectionGuideDialog() {
|
|
20
|
+
var intl = useRawEliceIntl();
|
|
21
|
+
var phase = usePermissionPhase();
|
|
22
|
+
var _useArduinoBridge = useArduinoBridge(),
|
|
23
|
+
connectionIntent = _useArduinoBridge.connectionIntent;
|
|
24
|
+
var open = phase === 'requesting';
|
|
25
|
+
var isUpload = connectionIntent === 'upload';
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
var renderTitle = function renderTitle() {
|
|
30
|
+
return intl.formatMessage({
|
|
31
|
+
id: isUpload ? 'exerciseRunner.arduino.connectGuide.title.upload' : 'exerciseRunner.arduino.connectGuide.title.connect'
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
var renderUploadNotice = function renderUploadNotice() {
|
|
38
|
+
if (!isUpload) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return jsx(Alert, {
|
|
42
|
+
severity: "info",
|
|
43
|
+
children: intl.formatMessage({
|
|
44
|
+
id: 'exerciseRunner.arduino.connectGuide.upload.note'
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
var renderPreview = function renderPreview() {
|
|
52
|
+
return jsxs(Stack, {
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
spacing: 1.25,
|
|
55
|
+
sx: {
|
|
56
|
+
bgcolor: function bgcolor(theme) {
|
|
57
|
+
return theme.palette.background.paper;
|
|
58
|
+
},
|
|
59
|
+
border: function border(theme) {
|
|
60
|
+
return "1px solid ".concat(theme.palette.divider);
|
|
61
|
+
},
|
|
62
|
+
borderRadius: '10px',
|
|
63
|
+
p: '14px'
|
|
64
|
+
},
|
|
65
|
+
children: [jsxs(Stack, {
|
|
66
|
+
direction: "row",
|
|
67
|
+
spacing: 0.75,
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
children: [jsx(ArrowUpwardIcon, {
|
|
70
|
+
sx: {
|
|
71
|
+
fontSize: 11
|
|
72
|
+
}
|
|
73
|
+
}), jsx(Typography, {
|
|
74
|
+
color: "primary.main",
|
|
75
|
+
sx: {
|
|
76
|
+
fontSize: 12,
|
|
77
|
+
fontWeight: 700,
|
|
78
|
+
letterSpacing: '-.01em'
|
|
79
|
+
},
|
|
80
|
+
children: intl.formatMessage({
|
|
81
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.label'
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
}), jsx(ArduinoConnectionGuideDialogNativeMock, {})]
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
*
|
|
89
|
+
*/
|
|
90
|
+
var renderActions = function renderActions() {
|
|
91
|
+
return jsx(DialogActions, {
|
|
92
|
+
sx: {
|
|
93
|
+
justifyContent: 'flex-start',
|
|
94
|
+
px: 3,
|
|
95
|
+
py: 2
|
|
96
|
+
},
|
|
97
|
+
children: jsx(Typography, {
|
|
98
|
+
variant: "caption",
|
|
99
|
+
color: "text.secondary",
|
|
100
|
+
children: intl.formatMessage({
|
|
101
|
+
id: 'exerciseRunner.arduino.connectGuide.footer'
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
//
|
|
107
|
+
//
|
|
108
|
+
//
|
|
109
|
+
// No onClose: open state is fully derived from the picker phase.
|
|
110
|
+
return jsxs(Dialog, {
|
|
111
|
+
disableEnforceFocus: true,
|
|
112
|
+
hideBackdrop: true,
|
|
113
|
+
fullWidth: true,
|
|
114
|
+
open: open,
|
|
115
|
+
maxWidth: "sm",
|
|
116
|
+
sx: {
|
|
117
|
+
pointerEvents: 'none'
|
|
118
|
+
},
|
|
119
|
+
PaperProps: {
|
|
120
|
+
sx: {
|
|
121
|
+
pointerEvents: 'auto'
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
children: [jsx(DialogTitle, {
|
|
125
|
+
children: renderTitle()
|
|
126
|
+
}), jsx(DialogContent, {
|
|
127
|
+
children: jsxs(Stack, {
|
|
128
|
+
spacing: 2,
|
|
129
|
+
children: [renderUploadNotice(), jsx(Typography, {
|
|
130
|
+
variant: "body2",
|
|
131
|
+
color: "text.secondary",
|
|
132
|
+
children: intl.formatMessage({
|
|
133
|
+
id: 'exerciseRunner.arduino.connectGuide.body'
|
|
134
|
+
})
|
|
135
|
+
}), renderPreview(), jsx(ArduinoConnectionGuideDialogSteps, {})]
|
|
136
|
+
})
|
|
137
|
+
}), renderActions()]
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export { ArduinoConnectionGuideDialog as default };
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
3
|
+
import LockIcon from '@mui/icons-material/Lock';
|
|
4
|
+
import Box from '@mui/material/Box';
|
|
5
|
+
import Stack from '@mui/material/Stack';
|
|
6
|
+
import Typography from '@mui/material/Typography';
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
//
|
|
10
|
+
//
|
|
11
|
+
// Mirrors the Chromium serial picker palette so the kid sees what the native
|
|
12
|
+
// browser dialog will look like before it pops. Theme tokens are intentionally
|
|
13
|
+
// not used here — the goal is to imitate the OS chrome, not the app brand.
|
|
14
|
+
var MOCK_BG = '#2a2c30';
|
|
15
|
+
var MOCK_FOOT_BG = '#202124';
|
|
16
|
+
var MOCK_TEXT = '#e8eaed';
|
|
17
|
+
var MOCK_ROW_TEXT = '#cdd0d4';
|
|
18
|
+
var MOCK_BORDER = 'rgba(255,255,255,.08)';
|
|
19
|
+
var MOCK_SEL_BG = '#3367d6';
|
|
20
|
+
var MOCK_BTN_BORDER = 'rgba(255,255,255,.18)';
|
|
21
|
+
var MOCK_BTN_PRIMARY_BG = '#8ab4f8';
|
|
22
|
+
var MOCK_BTN_PRIMARY_TEXT = '#202124';
|
|
23
|
+
var MOCK_HELP_BORDER = 'rgba(255,255,255,.25)';
|
|
24
|
+
var MOCK_HELP_TEXT = '#9aa0a6';
|
|
25
|
+
var SYSTEM_FONT = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
|
|
26
|
+
//
|
|
27
|
+
//
|
|
28
|
+
//
|
|
29
|
+
var ArduinoConnectionGuideDialogNativeMock = function ArduinoConnectionGuideDialogNativeMock() {
|
|
30
|
+
var intl = useRawEliceIntl();
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
var renderHeader = function renderHeader() {
|
|
35
|
+
return jsxs(Stack, {
|
|
36
|
+
direction: "row",
|
|
37
|
+
spacing: 1,
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
sx: {
|
|
40
|
+
pt: '11px',
|
|
41
|
+
pb: '9px',
|
|
42
|
+
px: '14px',
|
|
43
|
+
borderBottom: "1px solid ".concat(MOCK_BORDER),
|
|
44
|
+
color: MOCK_TEXT
|
|
45
|
+
},
|
|
46
|
+
children: [jsx(LockIcon, {
|
|
47
|
+
sx: {
|
|
48
|
+
fontSize: 11,
|
|
49
|
+
color: '#5f6368'
|
|
50
|
+
}
|
|
51
|
+
}), jsx(Typography, {
|
|
52
|
+
noWrap: true,
|
|
53
|
+
sx: {
|
|
54
|
+
fontSize: 12.5,
|
|
55
|
+
fontFamily: SYSTEM_FONT,
|
|
56
|
+
color: MOCK_TEXT
|
|
57
|
+
},
|
|
58
|
+
children: intl.formatMessage({
|
|
59
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.host'
|
|
60
|
+
}, {
|
|
61
|
+
host: window.location.host
|
|
62
|
+
})
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
*
|
|
68
|
+
*/
|
|
69
|
+
var renderRows = function renderRows() {
|
|
70
|
+
var rowSx = {
|
|
71
|
+
px: '14px',
|
|
72
|
+
py: '7px',
|
|
73
|
+
fontSize: 12.5,
|
|
74
|
+
color: MOCK_ROW_TEXT,
|
|
75
|
+
fontFamily: SYSTEM_FONT
|
|
76
|
+
};
|
|
77
|
+
return jsxs(Stack, {
|
|
78
|
+
sx: {
|
|
79
|
+
py: '6px'
|
|
80
|
+
},
|
|
81
|
+
children: [jsx(Box, {
|
|
82
|
+
sx: rowSx,
|
|
83
|
+
children: "cu.Bluetooth-Incoming-Port"
|
|
84
|
+
}), jsx(Box, {
|
|
85
|
+
sx: rowSx,
|
|
86
|
+
children: "cu.debug-console"
|
|
87
|
+
}), jsx(Box, {
|
|
88
|
+
sx: Object.assign(Object.assign({}, rowSx), {
|
|
89
|
+
bgcolor: MOCK_SEL_BG,
|
|
90
|
+
color: '#fff',
|
|
91
|
+
fontWeight: 500
|
|
92
|
+
}),
|
|
93
|
+
children: "cu.usbmodem2112401"
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
*/
|
|
100
|
+
var renderFooter = function renderFooter() {
|
|
101
|
+
var btnBaseSx = {
|
|
102
|
+
display: 'inline-flex',
|
|
103
|
+
alignItems: 'center',
|
|
104
|
+
height: 28,
|
|
105
|
+
px: '14px',
|
|
106
|
+
borderRadius: '4px',
|
|
107
|
+
fontSize: 12,
|
|
108
|
+
fontWeight: 500,
|
|
109
|
+
fontFamily: SYSTEM_FONT
|
|
110
|
+
};
|
|
111
|
+
return jsxs(Stack, {
|
|
112
|
+
direction: "row",
|
|
113
|
+
spacing: 1,
|
|
114
|
+
alignItems: "center",
|
|
115
|
+
sx: {
|
|
116
|
+
py: '8px',
|
|
117
|
+
px: '12px',
|
|
118
|
+
bgcolor: MOCK_FOOT_BG,
|
|
119
|
+
borderTop: "1px solid ".concat(MOCK_BORDER)
|
|
120
|
+
},
|
|
121
|
+
children: [jsx(Box, {
|
|
122
|
+
sx: {
|
|
123
|
+
width: 22,
|
|
124
|
+
height: 22,
|
|
125
|
+
borderRadius: '50%',
|
|
126
|
+
border: "1px solid ".concat(MOCK_HELP_BORDER),
|
|
127
|
+
display: 'flex',
|
|
128
|
+
alignItems: 'center',
|
|
129
|
+
justifyContent: 'center',
|
|
130
|
+
fontSize: 11,
|
|
131
|
+
color: MOCK_HELP_TEXT
|
|
132
|
+
},
|
|
133
|
+
children: "?"
|
|
134
|
+
}), jsx(Box, {
|
|
135
|
+
sx: {
|
|
136
|
+
flex: 1
|
|
137
|
+
}
|
|
138
|
+
}), jsx(Box, {
|
|
139
|
+
sx: Object.assign(Object.assign({}, btnBaseSx), {
|
|
140
|
+
border: "1px solid ".concat(MOCK_BTN_BORDER),
|
|
141
|
+
color: MOCK_ROW_TEXT,
|
|
142
|
+
bgcolor: 'transparent'
|
|
143
|
+
}),
|
|
144
|
+
children: intl.formatMessage({
|
|
145
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.cancel'
|
|
146
|
+
})
|
|
147
|
+
}), jsx(Box, {
|
|
148
|
+
sx: Object.assign(Object.assign({}, btnBaseSx), {
|
|
149
|
+
border: "1px solid ".concat(MOCK_BTN_PRIMARY_BG),
|
|
150
|
+
bgcolor: MOCK_BTN_PRIMARY_BG,
|
|
151
|
+
color: MOCK_BTN_PRIMARY_TEXT
|
|
152
|
+
}),
|
|
153
|
+
children: intl.formatMessage({
|
|
154
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.connect'
|
|
155
|
+
})
|
|
156
|
+
})]
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
//
|
|
160
|
+
//
|
|
161
|
+
//
|
|
162
|
+
return jsxs(Box, {
|
|
163
|
+
sx: {
|
|
164
|
+
bgcolor: MOCK_BG,
|
|
165
|
+
color: MOCK_TEXT,
|
|
166
|
+
borderRadius: '8px',
|
|
167
|
+
boxShadow: '0 4px 14px rgba(0,0,0,.25)',
|
|
168
|
+
width: 340,
|
|
169
|
+
maxWidth: '100%',
|
|
170
|
+
border: "1px solid ".concat(MOCK_BORDER),
|
|
171
|
+
overflow: 'hidden'
|
|
172
|
+
},
|
|
173
|
+
children: [renderHeader(), renderRows(), renderFooter()]
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export { ArduinoConnectionGuideDialogNativeMock as default };
|
package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
3
|
+
import Box from '@mui/material/Box';
|
|
4
|
+
import Stack from '@mui/material/Stack';
|
|
5
|
+
import Typography from '@mui/material/Typography';
|
|
6
|
+
|
|
7
|
+
//
|
|
8
|
+
//
|
|
9
|
+
//
|
|
10
|
+
var STEP_KEYS = [1, 2, 3];
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ArduinoConnectionGuideDialogSteps = function ArduinoConnectionGuideDialogSteps() {
|
|
15
|
+
var intl = useRawEliceIntl();
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
var renderInlineCode = function renderInlineCode(text) {
|
|
20
|
+
return jsx(Box, {
|
|
21
|
+
component: "code",
|
|
22
|
+
sx: {
|
|
23
|
+
fontFamily: 'monospace',
|
|
24
|
+
fontSize: 12,
|
|
25
|
+
fontWeight: 600,
|
|
26
|
+
px: 0.75,
|
|
27
|
+
py: '1px',
|
|
28
|
+
mx: 0.25,
|
|
29
|
+
borderRadius: 0.5,
|
|
30
|
+
bgcolor: function bgcolor(theme) {
|
|
31
|
+
return theme.palette.background.inverse;
|
|
32
|
+
},
|
|
33
|
+
border: function border(theme) {
|
|
34
|
+
return "1px solid ".concat(theme.palette.divider);
|
|
35
|
+
},
|
|
36
|
+
color: function color(theme) {
|
|
37
|
+
return theme.palette.inverse.main;
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
children: text
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
var renderStrong = function renderStrong(text) {
|
|
47
|
+
return jsx(Typography, {
|
|
48
|
+
component: "span",
|
|
49
|
+
variant: "inherit",
|
|
50
|
+
color: "text.primary",
|
|
51
|
+
fontWeight: 700,
|
|
52
|
+
children: text
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
58
|
+
var renderStepBadge = function renderStepBadge(step) {
|
|
59
|
+
return jsx(Box, {
|
|
60
|
+
"aria-hidden": "true",
|
|
61
|
+
sx: {
|
|
62
|
+
flexShrink: 0,
|
|
63
|
+
width: 22,
|
|
64
|
+
height: 22,
|
|
65
|
+
borderRadius: '50%',
|
|
66
|
+
bgcolor: function bgcolor(theme) {
|
|
67
|
+
return theme.palette.primary.main;
|
|
68
|
+
},
|
|
69
|
+
color: function color(theme) {
|
|
70
|
+
return theme.palette.background.paper;
|
|
71
|
+
},
|
|
72
|
+
display: 'inline-flex',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
justifyContent: 'center',
|
|
75
|
+
fontSize: 11.5,
|
|
76
|
+
fontWeight: 800,
|
|
77
|
+
mt: '1px'
|
|
78
|
+
},
|
|
79
|
+
children: step
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
var renderStep = function renderStep(step) {
|
|
86
|
+
return jsxs(Stack, {
|
|
87
|
+
direction: "row",
|
|
88
|
+
spacing: 1.25,
|
|
89
|
+
alignItems: "flex-start",
|
|
90
|
+
children: [renderStepBadge(step), jsx(Typography, {
|
|
91
|
+
variant: "body2",
|
|
92
|
+
color: "text.secondary",
|
|
93
|
+
sx: {
|
|
94
|
+
whiteSpace: 'pre-line'
|
|
95
|
+
},
|
|
96
|
+
children: intl.formatMessage({
|
|
97
|
+
id: "exerciseRunner.arduino.connectGuide.steps.".concat(step)
|
|
98
|
+
}, {
|
|
99
|
+
usbmodem: renderInlineCode('usbmodem'),
|
|
100
|
+
usbserial: renderInlineCode('usbserial'),
|
|
101
|
+
connect: renderStrong(intl.formatMessage({
|
|
102
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.connect'
|
|
103
|
+
})),
|
|
104
|
+
cancel: renderStrong(intl.formatMessage({
|
|
105
|
+
id: 'exerciseRunner.arduino.connectGuide.preview.cancel'
|
|
106
|
+
}))
|
|
107
|
+
})
|
|
108
|
+
})]
|
|
109
|
+
}, step);
|
|
110
|
+
};
|
|
111
|
+
//
|
|
112
|
+
//
|
|
113
|
+
//
|
|
114
|
+
return jsx(Stack, {
|
|
115
|
+
spacing: 1.25,
|
|
116
|
+
children: STEP_KEYS.map(function (step) {
|
|
117
|
+
return renderStep(step);
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { ArduinoConnectionGuideDialogSteps as default };
|
package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
5
|
+
import { colors } from '@elice/mui-system';
|
|
6
|
+
import { LoadingButton } from '@mui/lab';
|
|
7
|
+
import { useArduinoBridge } from './_context.js';
|
|
8
|
+
import { useControllerActionRun } from '../action/useControllerActionRun.js';
|
|
9
|
+
import { useExericseShortcut } from '../../../../hooks/useExericseShortcut.js';
|
|
10
|
+
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ArduinoControllerActionCompile = function ArduinoControllerActionCompile() {
|
|
15
|
+
var intl = useRawEliceIntl();
|
|
16
|
+
var _useControllerActionR = useControllerActionRun(),
|
|
17
|
+
isHidden = _useControllerActionR.isHidden,
|
|
18
|
+
isDisabled = _useControllerActionR.isDisabled,
|
|
19
|
+
isLoading = _useControllerActionR.isLoading,
|
|
20
|
+
run = _useControllerActionR.run;
|
|
21
|
+
var _useArduinoBridge = useArduinoBridge(),
|
|
22
|
+
setPendingIntent = _useArduinoBridge.setPendingIntent,
|
|
23
|
+
isPending = _useArduinoBridge.isPending,
|
|
24
|
+
isFlashing = _useArduinoBridge.isFlashing;
|
|
25
|
+
var isCompileDisabled = isDisabled || isPending || isFlashing;
|
|
26
|
+
var isCompileLoading = isLoading || isPending;
|
|
27
|
+
/**
|
|
28
|
+
* Submit the Arduino sketch for compilation without flashing the board.
|
|
29
|
+
*/
|
|
30
|
+
var compile = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
31
|
+
return _regenerator().w(function (_context) {
|
|
32
|
+
while (1) switch (_context.n) {
|
|
33
|
+
case 0:
|
|
34
|
+
if (!isCompileDisabled) {
|
|
35
|
+
_context.n = 1;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
return _context.a(2);
|
|
39
|
+
case 1:
|
|
40
|
+
setPendingIntent('compile');
|
|
41
|
+
_context.n = 2;
|
|
42
|
+
return run();
|
|
43
|
+
case 2:
|
|
44
|
+
return _context.a(2);
|
|
45
|
+
}
|
|
46
|
+
}, _callee);
|
|
47
|
+
})), [isCompileDisabled, setPendingIntent, run]);
|
|
48
|
+
//
|
|
49
|
+
// register the shortcut
|
|
50
|
+
//
|
|
51
|
+
useExericseShortcut('RUNNER_SUBMIT_RUN', compile);
|
|
52
|
+
//
|
|
53
|
+
//
|
|
54
|
+
//
|
|
55
|
+
if (isHidden) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return jsx(LoadingButton, {
|
|
59
|
+
size: "small",
|
|
60
|
+
variant: "contained",
|
|
61
|
+
color: "primary",
|
|
62
|
+
loading: isCompileLoading,
|
|
63
|
+
disabled: isCompileDisabled,
|
|
64
|
+
sx: {
|
|
65
|
+
color: function color(theme) {
|
|
66
|
+
return theme.palette.getContrastText(colors.elicepurple[500]);
|
|
67
|
+
},
|
|
68
|
+
bgcolor: colors.elicepurple[500],
|
|
69
|
+
'&:hover, &:active': {
|
|
70
|
+
bgcolor: colors.elicepurple[600]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
onClick: compile,
|
|
74
|
+
children: intl.formatMessage({
|
|
75
|
+
id: 'exerciseRunner.controller.arduino.button.compile'
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export { ArduinoControllerActionCompile as default };
|