@elice/material-exercise 1.240811.0 → 1.240816.0-helpyrequest.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.
@@ -28,7 +28,6 @@ require('lodash/debounce');
28
28
  require('random-words');
29
29
  require('unicount');
30
30
  var ExerciseRunnerContext = require('./ExerciseRunnerContext.js');
31
- var ExerciseRunnerControllerCodeHelpRequestButton = require('./ExerciseRunnerControllerCodeHelpRequestButton.js');
32
31
 
33
32
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
34
33
 
@@ -48,14 +47,12 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
48
47
  var _a;
49
48
  var intl$1 = intl.useRawEliceIntl();
50
49
  var _React$useContext = React__default.default.useContext(context.ExerciseContext),
51
- materialExerciseId = _React$useContext.materialExerciseId,
52
- onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
50
+ materialExerciseId = _React$useContext.materialExerciseId;
53
51
  var _React$useContext2 = React__default.default.useContext(ExerciseRunnerContext.ExerciseRunnerContext),
54
52
  onSubmit = _React$useContext2.onSubmit,
55
53
  onSyncRequest = _React$useContext2.onSyncRequest,
56
54
  onCancel = _React$useContext2.onCancel;
57
55
  var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseRunnerWebSocketStatusQuery);
58
- var editorCursorSelectionValue = recoil.useRecoilValue(recoil$1.exerciseFileEditorCursorSelectionValueState);
59
56
  var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
60
57
  var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
61
58
  var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
@@ -71,8 +68,6 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
71
68
  var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
72
69
  var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
73
70
  var arduinoOpenedPortName = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
74
- // monaco editor apis
75
- var exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState);
76
71
  //
77
72
  // ========= ui states =========
78
73
  //
@@ -224,30 +219,11 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
224
219
  })
225
220
  });
226
221
  };
227
- /**
228
- * Code help button
229
- */
230
- var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
231
- if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
232
- return null;
233
- }
234
- return jsxRuntime.jsx(ExerciseRunnerControllerCodeHelpRequestButton.default, {
235
- onClick: function onClick() {
236
- var _a, _b, _c;
237
- onCodeHelpRequest({
238
- code: editorCursorSelectionValue,
239
- readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
240
- instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
241
- openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
242
- });
243
- }
244
- });
245
- };
246
222
  //
247
223
  //
248
224
  //
249
225
  return jsxRuntime.jsxs(StyledControllerButtonGroup, {
250
- children: [renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton()]
226
+ children: [renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton()]
251
227
  });
252
228
  };
253
229
 
@@ -9,7 +9,7 @@ import { useRecoilValue } from 'recoil';
9
9
  import styled from 'styled-components';
10
10
  import 'react-use';
11
11
  import 'socket.io-client';
12
- import { exerciseRunnerWebSocketStatusQuery, exerciseFileEditorCursorSelectionValueState, exerciseState, exerciseRunnerRunTypeState, exerciseLectureState, exerciseRunnerSubmittingState, exerciseRunnerRunningState, exerciseArduinoUploadProgressState, exerciseArduinoOpenedPortNameState, exerciseMonacoEditorApisState } from '../context/recoil.js';
12
+ import { exerciseRunnerWebSocketStatusQuery, exerciseState, exerciseRunnerRunTypeState, exerciseLectureState, exerciseRunnerSubmittingState, exerciseRunnerRunningState, exerciseArduinoUploadProgressState, exerciseArduinoOpenedPortNameState } from '../context/recoil.js';
13
13
  import { ExerciseContext } from '../context/context.js';
14
14
  import '../context/recoilTypes.js';
15
15
  import { exerciseFileEditorSaveAction$ } from '../context/subjects.js';
@@ -24,7 +24,6 @@ import 'lodash/debounce';
24
24
  import 'random-words';
25
25
  import 'unicount';
26
26
  import { ExerciseRunnerContext } from './ExerciseRunnerContext.js';
27
- import ExerciseRunnerControllerCodeHelpRequestButton from './ExerciseRunnerControllerCodeHelpRequestButton.js';
28
27
 
29
28
  var StyledControllerButton = styled(Button).withConfig({
30
29
  componentId: "sc-d9xhed-0"
@@ -39,14 +38,12 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
39
38
  var _a;
40
39
  var intl = useRawEliceIntl();
41
40
  var _React$useContext = React.useContext(ExerciseContext),
42
- materialExerciseId = _React$useContext.materialExerciseId,
43
- onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
41
+ materialExerciseId = _React$useContext.materialExerciseId;
44
42
  var _React$useContext2 = React.useContext(ExerciseRunnerContext),
45
43
  onSubmit = _React$useContext2.onSubmit,
46
44
  onSyncRequest = _React$useContext2.onSyncRequest,
47
45
  onCancel = _React$useContext2.onCancel;
48
46
  var runnerWebsocketStatus = useRecoilValue(exerciseRunnerWebSocketStatusQuery);
49
- var editorCursorSelectionValue = useRecoilValue(exerciseFileEditorCursorSelectionValueState);
50
47
  var exercise = useRecoilValue(exerciseState(materialExerciseId));
51
48
  var exerciseRunType = useRecoilValue(exerciseRunnerRunTypeState);
52
49
  var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
@@ -62,8 +59,6 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
62
59
  var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === enums.ExerciseEnvType.Arduino;
63
60
  var arduinoUploadProgress = useRecoilValue(exerciseArduinoUploadProgressState);
64
61
  var arduinoOpenedPortName = useRecoilValue(exerciseArduinoOpenedPortNameState);
65
- // monaco editor apis
66
- var exerciseMonacoEditorApis = useRecoilValue(exerciseMonacoEditorApisState);
67
62
  //
68
63
  // ========= ui states =========
69
64
  //
@@ -215,30 +210,11 @@ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButto
215
210
  })
216
211
  });
217
212
  };
218
- /**
219
- * Code help button
220
- */
221
- var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
222
- if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
223
- return null;
224
- }
225
- return jsx(ExerciseRunnerControllerCodeHelpRequestButton, {
226
- onClick: function onClick() {
227
- var _a, _b, _c;
228
- onCodeHelpRequest({
229
- code: editorCursorSelectionValue,
230
- readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
231
- instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
232
- openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
233
- });
234
- }
235
- });
236
- };
237
213
  //
238
214
  //
239
215
  //
240
216
  return jsxs(StyledControllerButtonGroup, {
241
- children: [renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton()]
217
+ children: [renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton()]
242
218
  });
243
219
  };
244
220
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-exercise",
3
- "version": "1.240811.0",
3
+ "version": "1.240816.0-helpyrequest.0",
4
4
  "description": "User view and editing components of Elice material exercise",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -83,8 +83,8 @@
83
83
  "@elice/icons": "^1.230814.0",
84
84
  "@elice/intl": "0.240425.0-rc.2",
85
85
  "@elice/markdown": "^1.240124.0",
86
- "@elice/material-shared-types": "1.240811.0",
87
- "@elice/material-shared-utils": "1.240811.0",
86
+ "@elice/material-shared-types": "1.240816.0-helpyrequest.0",
87
+ "@elice/material-shared-utils": "1.240816.0-helpyrequest.0",
88
88
  "@elice/mui-elements": "^5.231130.0",
89
89
  "@elice/mui-system": "^5.240108.1",
90
90
  "@elice/types": "1.240709.0",
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { ButtonProps } from '@elice/blocks';
3
- type OmittedButtonProps = Omit<ButtonProps, 'size' | 'role' | 'icon' | 'iconAlign'>;
4
- declare const ExerciseRunnerControllerCodeHelpRequestButton: React.ForwardRefExoticComponent<OmittedButtonProps & React.RefAttributes<HTMLButtonElement>>;
5
- export default ExerciseRunnerControllerCodeHelpRequestButton;
@@ -1,107 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
- var jsxRuntime = require('react/jsx-runtime');
7
- var React = require('react');
8
- var blocks = require('@elice/blocks');
9
- var icons = require('@elice/icons');
10
- var intl = require('@elice/intl');
11
- var recoil = require('recoil');
12
- var styled = require('styled-components');
13
- var recoil$1 = require('../context/recoil.js');
14
- require('../context/context.js');
15
- require('../context/recoilTypes.js');
16
- require('../context/subjects.js');
17
- require('../context/ExerciseProvider.js');
18
-
19
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
20
-
21
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
22
- var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
23
-
24
- var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY = 'elice-material-exercise-aibot-tooltip-hidden';
25
- var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE = 'true';
26
- var StyledControllerButton = styled__default.default(blocks.Button).withConfig({
27
- componentId: "sc-10grd0k-0"
28
- })(["position:relative;transition:none;"]);
29
- var ExerciseRunnerControllerCodeHelpRequestButton = React__default.default.forwardRef(function (props, ref) {
30
- var intl$1 = intl.useRawEliceIntl();
31
- var _React$useState = React__default.default.useState(false),
32
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
33
- isTooltipHidden = _React$useState2[0],
34
- setIsTooltipHidden = _React$useState2[1];
35
- var isAibotInfoEnabled = recoil.useRecoilValue(recoil$1.exerciseAibotInfoEnableState);
36
- //
37
- //
38
- //
39
- React__default.default.useEffect(function () {
40
- var isTooltipHidden = sessionStorage.getItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY) === ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE;
41
- if (isTooltipHidden) {
42
- setIsTooltipHidden(true);
43
- return;
44
- }
45
- }, []);
46
- //
47
- //
48
- //
49
- /**
50
- *
51
- */
52
- var renderAiBotTooltipTitle = function renderAiBotTooltipTitle() {
53
- return jsxRuntime.jsxs(blocks.Flex, {
54
- align: "center",
55
- children: [jsxRuntime.jsx(blocks.BadgeNext, {
56
- role: "red",
57
- children: jsxRuntime.jsx(blocks.Text, {
58
- role: "white",
59
- size: "tiny",
60
- bold: true,
61
- children: "NEW"
62
- })
63
- }), jsxRuntime.jsx(blocks.Hspace, {
64
- width: 0.625
65
- }), jsxRuntime.jsx(blocks.Text, {
66
- role: "gray9",
67
- size: "small",
68
- bold: true,
69
- children: intl$1.formatMessage({
70
- id: 'exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp'
71
- })
72
- }), jsxRuntime.jsx(blocks.Hspace, {
73
- width: 0.625
74
- }), jsxRuntime.jsx(blocks.IconButton, {
75
- size: "tiny",
76
- role: "primary",
77
- hasPadding: false,
78
- border: false,
79
- icon: icons.eilMathsignMultiplyBasic,
80
- onClick: function onClick() {
81
- sessionStorage.setItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY, ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE);
82
- setIsTooltipHidden(true);
83
- }
84
- })]
85
- });
86
- };
87
- return isAibotInfoEnabled ? jsxRuntime.jsx(blocks.Tooltip, {
88
- placement: "top",
89
- dark: false,
90
- visible: !isTooltipHidden,
91
- title: renderAiBotTooltipTitle(),
92
- children: jsxRuntime.jsx(StyledControllerButton, Object.assign({}, props, {
93
- ref: ref,
94
- size: "tiny",
95
- role: "darkblue",
96
- icon: jsxRuntime.jsx(blocks.Icon, {
97
- icon: icons.eilArrowRightwardsBasic
98
- }),
99
- iconAlign: "right",
100
- children: intl$1.formatMessage({
101
- id: 'exerciseRunner.controller.buttonGroup.button.helpRequest'
102
- })
103
- }))
104
- }) : null;
105
- });
106
-
107
- exports.default = ExerciseRunnerControllerCodeHelpRequestButton;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { ButtonProps } from '@elice/blocks';
3
- type OmittedButtonProps = Omit<ButtonProps, 'size' | 'role' | 'icon' | 'iconAlign'>;
4
- declare const ExerciseRunnerControllerCodeHelpRequestButton: React.ForwardRefExoticComponent<OmittedButtonProps & React.RefAttributes<HTMLButtonElement>>;
5
- export default ExerciseRunnerControllerCodeHelpRequestButton;
@@ -1,98 +0,0 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import React from 'react';
4
- import { Button, Tooltip, Icon, Flex, BadgeNext, Text, Hspace, IconButton } from '@elice/blocks';
5
- import { eilArrowRightwardsBasic, eilMathsignMultiplyBasic } from '@elice/icons';
6
- import { useRawEliceIntl } from '@elice/intl';
7
- import { useRecoilValue } from 'recoil';
8
- import styled from 'styled-components';
9
- import { exerciseAibotInfoEnableState } from '../context/recoil.js';
10
- import '../context/context.js';
11
- import '../context/recoilTypes.js';
12
- import '../context/subjects.js';
13
- import '../context/ExerciseProvider.js';
14
-
15
- var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY = 'elice-material-exercise-aibot-tooltip-hidden';
16
- var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE = 'true';
17
- var StyledControllerButton = styled(Button).withConfig({
18
- componentId: "sc-10grd0k-0"
19
- })(["position:relative;transition:none;"]);
20
- var ExerciseRunnerControllerCodeHelpRequestButton = React.forwardRef(function (props, ref) {
21
- var intl = useRawEliceIntl();
22
- var _React$useState = React.useState(false),
23
- _React$useState2 = _slicedToArray(_React$useState, 2),
24
- isTooltipHidden = _React$useState2[0],
25
- setIsTooltipHidden = _React$useState2[1];
26
- var isAibotInfoEnabled = useRecoilValue(exerciseAibotInfoEnableState);
27
- //
28
- //
29
- //
30
- React.useEffect(function () {
31
- var isTooltipHidden = sessionStorage.getItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY) === ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE;
32
- if (isTooltipHidden) {
33
- setIsTooltipHidden(true);
34
- return;
35
- }
36
- }, []);
37
- //
38
- //
39
- //
40
- /**
41
- *
42
- */
43
- var renderAiBotTooltipTitle = function renderAiBotTooltipTitle() {
44
- return jsxs(Flex, {
45
- align: "center",
46
- children: [jsx(BadgeNext, {
47
- role: "red",
48
- children: jsx(Text, {
49
- role: "white",
50
- size: "tiny",
51
- bold: true,
52
- children: "NEW"
53
- })
54
- }), jsx(Hspace, {
55
- width: 0.625
56
- }), jsx(Text, {
57
- role: "gray9",
58
- size: "small",
59
- bold: true,
60
- children: intl.formatMessage({
61
- id: 'exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp'
62
- })
63
- }), jsx(Hspace, {
64
- width: 0.625
65
- }), jsx(IconButton, {
66
- size: "tiny",
67
- role: "primary",
68
- hasPadding: false,
69
- border: false,
70
- icon: eilMathsignMultiplyBasic,
71
- onClick: function onClick() {
72
- sessionStorage.setItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY, ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE);
73
- setIsTooltipHidden(true);
74
- }
75
- })]
76
- });
77
- };
78
- return isAibotInfoEnabled ? jsx(Tooltip, {
79
- placement: "top",
80
- dark: false,
81
- visible: !isTooltipHidden,
82
- title: renderAiBotTooltipTitle(),
83
- children: jsx(StyledControllerButton, Object.assign({}, props, {
84
- ref: ref,
85
- size: "tiny",
86
- role: "darkblue",
87
- icon: jsx(Icon, {
88
- icon: eilArrowRightwardsBasic
89
- }),
90
- iconAlign: "right",
91
- children: intl.formatMessage({
92
- id: 'exerciseRunner.controller.buttonGroup.button.helpRequest'
93
- })
94
- }))
95
- }) : null;
96
- });
97
-
98
- export { ExerciseRunnerControllerCodeHelpRequestButton as default };