touchstudy-core 0.1.163 → 0.1.164

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.
@@ -13,7 +13,7 @@ export { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
13
13
  import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
14
14
  export { DemoContainer } from '@mui/x-date-pickers/internals/demo';
15
15
  import React__default, { useState, useEffect, Fragment as Fragment$1, useRef, useCallback, useMemo, memo, createElement } from 'react';
16
- import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, useMediaQuery, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Skeleton, Tabs, Tab, Divider, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, RadioGroup, Radio, FormControl, InputLabel, Chip, Switch, CardMedia as CardMedia$1, MenuList } from '@mui/material';
16
+ import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, useMediaQuery, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Skeleton, Tabs, Tab, Divider, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, Switch, RadioGroup, Radio, FormControl, InputLabel, Chip, CardMedia as CardMedia$1, MenuList } from '@mui/material';
17
17
  import moment from 'moment';
18
18
  export { default as moment } from 'moment';
19
19
  import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaCalendar, FaUser, FaBookOpen, FaPlus, FaUpload, FaEye as FaEye$1, FaPencilAlt, FaCheckCircle, FaShare, FaExchangeAlt } from 'react-icons/fa';
@@ -1506,6 +1506,7 @@ var addedteachertoclass = "교사 수업 추가";
1506
1506
  var removedteacherfromclass = "교사 수업 제거";
1507
1507
  var addedstudenttoclass = "학생 수업 추가";
1508
1508
  var removedstudentfromclass = "학생 수업 제거";
1509
+ var hidden = "숨겨진";
1509
1510
  var lang_ko = {
1510
1511
  problem_solving: problem_solving,
1511
1512
  my_story: my_story,
@@ -2645,7 +2646,8 @@ var lang_ko = {
2645
2646
  addedteachertoclass: addedteachertoclass,
2646
2647
  removedteacherfromclass: removedteacherfromclass,
2647
2648
  addedstudenttoclass: addedstudenttoclass,
2648
- removedstudentfromclass: removedstudentfromclass
2649
+ removedstudentfromclass: removedstudentfromclass,
2650
+ hidden: hidden
2649
2651
  };
2650
2652
 
2651
2653
  var problem_solving$1 = "Problem Solving";
@@ -3808,6 +3810,7 @@ var addedteachertoclass$1 = "Added teacher to class";
3808
3810
  var removedteacherfromclass$1 = "Removed teacher from class";
3809
3811
  var addedstudenttoclass$1 = "Added student to class";
3810
3812
  var removedstudentfromclass$1 = "Removed student from class";
3813
+ var hidden$1 = "Hidden";
3811
3814
  var lang_en = {
3812
3815
  problem_solving: problem_solving$1,
3813
3816
  my_story: my_story$1,
@@ -4949,7 +4952,8 @@ var lang_en = {
4949
4952
  addedteachertoclass: addedteachertoclass$1,
4950
4953
  removedteacherfromclass: removedteacherfromclass$1,
4951
4954
  addedstudenttoclass: addedstudenttoclass$1,
4952
- removedstudentfromclass: removedstudentfromclass$1
4955
+ removedstudentfromclass: removedstudentfromclass$1,
4956
+ hidden: hidden$1
4953
4957
  };
4954
4958
 
4955
4959
  i18n.use(initReactI18next).init({
@@ -11059,7 +11063,11 @@ var useLoginPhoneNumber = function useLoginPhoneNumber(props) {
11059
11063
  });
11060
11064
  }, function (error) {
11061
11065
  var _error$response, _error$response2, _error$response2$data;
11062
- if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 500 && (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.title) === "PhoneNumberIsDuplicated") toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else toast.error(getErrorMessage(t, error));
11066
+ if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 500 && (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.title) === "PhoneNumberIsDuplicated") toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else {
11067
+ !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
11068
+ localStorage.removeItem(LEARNING_SPACE);
11069
+ toast.error(getErrorMessage(t, error));
11070
+ }
11063
11071
  });
11064
11072
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11065
11073
  } catch (e) {
@@ -11588,7 +11596,8 @@ var useLogin$1 = function useLogin(_ref) {
11588
11596
  }();
11589
11597
  return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
11590
11598
  }, function (error) {
11591
- console.log(error);
11599
+ !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
11600
+ localStorage.removeItem(LEARNING_SPACE);
11592
11601
  toast.error(getErrorMessage(t, error, t("request_login_fail")));
11593
11602
  });
11594
11603
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
@@ -11684,6 +11693,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
11684
11693
  error = _useState8[0],
11685
11694
  setError = _useState8[1];
11686
11695
  var firstLoadRef = useRef(true);
11696
+ var hasErrorRef = useRef(false);
11687
11697
  var onVerify = useCallback(function (token) {
11688
11698
  setTokenReCaptcha(token);
11689
11699
  }, []);
@@ -11699,7 +11709,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
11699
11709
  if (!tokenReCaptcha) return Promise.resolve();
11700
11710
  resetData();
11701
11711
  setLoadingQR(true);
11702
- if (!academyDomain) localStorage.setItem(LEARNING_SPACE, "true");
11712
+ if (!academyDomain || hasErrorRef.current) localStorage.setItem(LEARNING_SPACE, "true");
11713
+ if (hasErrorRef.current) localStorage.removeItem(ACADEMY_DOMAIN);
11703
11714
  var _temp = _catch(function () {
11704
11715
  return Promise.resolve(generateQRCode(academyDomain, tokenReCaptcha)).then(function (response) {
11705
11716
  setQrCodeData(response.data);
@@ -11720,6 +11731,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
11720
11731
  setInfo(recievedData === null || recievedData === void 0 ? void 0 : recievedData.data);
11721
11732
  setStatus(QRCodeStatus.Scanned);
11722
11733
  } catch (error) {
11734
+ hasErrorRef.current = true;
11723
11735
  setInvalid(true);
11724
11736
  }
11725
11737
  };
@@ -12025,7 +12037,8 @@ var useLoginWithEmail = function useLoginWithEmail(_ref) {
12025
12037
  }), token, redirectUrl);
12026
12038
  });
12027
12039
  }, function (error) {
12028
- console.log(error);
12040
+ !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
12041
+ localStorage.removeItem(LEARNING_SPACE);
12029
12042
  toast.error(getErrorMessage(t, error, t("request_login_fail")));
12030
12043
  });
12031
12044
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
@@ -12145,7 +12158,8 @@ var useLogin$2 = function useLogin(_ref) {
12145
12158
  }), token, redirectUrl);
12146
12159
  });
12147
12160
  }, function (error) {
12148
- console.log(error);
12161
+ !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
12162
+ localStorage.removeItem(LEARNING_SPACE);
12149
12163
  toast.error(getErrorMessage(t, error, t("request_login_fail")));
12150
12164
  }));
12151
12165
  } catch (e) {
@@ -14488,6 +14502,48 @@ var iconCloseDialog = function iconCloseDialog(_ref) {
14488
14502
  }));
14489
14503
  };
14490
14504
 
14505
+ var NoteTinyEditor = function NoteTinyEditor(_ref) {
14506
+ var _ref$disabled = _ref.disabled,
14507
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
14508
+ onChange = _ref.onChange,
14509
+ initValue = _ref.initValue,
14510
+ config = _ref.config;
14511
+ var isFirstChange = useRef(true);
14512
+ var _useTranslation = useTranslation(),
14513
+ t = _useTranslation.t;
14514
+ useEffect(function () {
14515
+ if (window.tinymce) {
14516
+ window.tinymce = tinymce;
14517
+ }
14518
+ }, []);
14519
+ var options = {
14520
+ height: 280,
14521
+ menubar: false,
14522
+ readonly: false,
14523
+ external_plugins: {
14524
+ tiny_mce_wiris: '/editor/wiris-for-tinymce.js'
14525
+ },
14526
+ plugins: ['anchor', 'autolink', 'charmap', 'codesample', 'emoticons', 'image', 'link', 'lists', 'media', 'searchreplace', 'table', 'textcolor', 'wordcount'],
14527
+ toolbar: 'undo redo | blocks fontfamily fontsize forecolor backcolor | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat | tiny_mce_wiris_formulaEditor | tiny_mce_wiris_formulaEditorChemistry',
14528
+ branding: false,
14529
+ extended_valid_elements: '*[.*]',
14530
+ placeholder: t("the_problem_is_difficult")
14531
+ };
14532
+ var handleChange = function handleChange(value, _) {
14533
+ if (isFirstChange.current) {
14534
+ isFirstChange.current = false;
14535
+ return;
14536
+ }
14537
+ onChange(value);
14538
+ };
14539
+ return React__default.createElement(Editor, {
14540
+ disabled: disabled,
14541
+ init: config || options,
14542
+ value: initValue,
14543
+ onEditorChange: handleChange
14544
+ });
14545
+ };
14546
+
14491
14547
  var schema$1 = object().shape({
14492
14548
  content: string().required()
14493
14549
  });
@@ -14538,7 +14594,8 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14538
14594
  handleSaveNote(values.content);
14539
14595
  }
14540
14596
  }, function (_ref2) {
14541
- var values = _ref2.values;
14597
+ var values = _ref2.values,
14598
+ setFieldValue = _ref2.setFieldValue;
14542
14599
  return React__default.createElement(Form, null, React__default.createElement(DialogContent$1, {
14543
14600
  sx: {
14544
14601
  padding: 0,
@@ -14567,17 +14624,22 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14567
14624
  flexDirection: "row",
14568
14625
  alignItems: "center"
14569
14626
  }, React__default.createElement(Field, {
14570
- as: "textarea",
14571
- rows: 3,
14572
14627
  id: "content-question",
14573
14628
  style: {
14574
- paddingRight: "40px",
14575
- minHeight: "96px",
14576
14629
  width: "100%"
14577
14630
  },
14578
14631
  name: "content",
14579
14632
  placeholder: t("the_problem_is_difficult"),
14580
- className: styles["form-control"]
14633
+ className: styles["form-control"],
14634
+ render: function render(_ref3) {
14635
+ var field = _ref3.field;
14636
+ return React__default.createElement(NoteTinyEditor, {
14637
+ initValue: field.value,
14638
+ onChange: function onChange(text) {
14639
+ return setFieldValue("content", text);
14640
+ }
14641
+ });
14642
+ }
14581
14643
  })), React__default.createElement(Box, {
14582
14644
  marginBottom: "4px"
14583
14645
  })))), React__default.createElement(DialogActions$1, {
@@ -15067,7 +15129,18 @@ var NoteItem = function NoteItem(_ref) {
15067
15129
  number: (data.questionOrder || 0) + 1
15068
15130
  }) : "" + utcToLocalTime(data.createdAt, t("date_format") + " HH:mm")), data.examSessionId && React__default.createElement(Typography, Object.assign({}, NoteItemStyles.text.right), data.categoryName)), React__default.createElement(Typography, Object.assign({
15069
15131
  className: "truncate"
15070
- }, NoteItemStyles.contentText), data.content)), React__default.createElement(Box, null, (isAdmin || data.isOwned) && React__default.createElement(ClickAwayListener, {
15132
+ }, NoteItemStyles.contentText, {
15133
+ sx: {
15134
+ display: "-webkit-box",
15135
+ lineClamp: 1,
15136
+ WebkitLineClamp: 1,
15137
+ WebkitBoxOrient: "vertical",
15138
+ overflow: "hidden"
15139
+ },
15140
+ dangerouslySetInnerHTML: {
15141
+ __html: data.content || ""
15142
+ }
15143
+ }))), React__default.createElement(Box, null, (isAdmin || data.isOwned) && React__default.createElement(ClickAwayListener, {
15071
15144
  onClickAway: onClose
15072
15145
  }, React__default.createElement(Box, null, React__default.createElement(CustomTooltip, {
15073
15146
  onClose: onClose,
@@ -15267,8 +15340,11 @@ var NoteDrawer = function NoteDrawer(props) {
15267
15340
  fontSize: "14px",
15268
15341
  fontWeight: "300",
15269
15342
  color: "#414E62"
15343
+ },
15344
+ dangerouslySetInnerHTML: {
15345
+ __html: (data === null || data === void 0 ? void 0 : data.content) || ""
15270
15346
  }
15271
- }, data === null || data === void 0 ? void 0 : data.content)));
15347
+ })));
15272
15348
  };
15273
15349
 
15274
15350
  var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsApi) {
@@ -25565,6 +25641,12 @@ var updateClassApi = function updateClassApi(id, model) {
25565
25641
  var deleteClassApi = function deleteClassApi(id) {
25566
25642
  return api["delete"](CLASS_URL + "/" + id);
25567
25643
  };
25644
+ var hiddenClassesApi = function hiddenClassesApi(hidden, classId) {
25645
+ return api.post(CLASS_URL + "/hidden", {
25646
+ hidden: hidden,
25647
+ courseIds: [classId]
25648
+ });
25649
+ };
25568
25650
  var addStudentToClass = function addStudentToClass(id, studentIds) {
25569
25651
  return api.post(CLASS_URL + "/" + id + "/students", studentIds);
25570
25652
  };
@@ -27098,6 +27180,27 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
27098
27180
  var handleUpdateClass = function handleUpdateClass(value) {
27099
27181
  value.id && classUpdateUrl && pushTo(history, "" + classUpdateUrl.replace(":id", "" + value.id));
27100
27182
  };
27183
+ var handleToggleHidden = function handleToggleHidden(e, classId) {
27184
+ try {
27185
+ var _temp5 = function _temp5() {
27186
+ dispatch(setLoading(false));
27187
+ };
27188
+ var checked = e.target.checked;
27189
+ dispatch(setLoading(true));
27190
+ var _temp4 = _catch(function () {
27191
+ return Promise.resolve(hiddenClassesApi(checked, classId)).then(function () {
27192
+ return Promise.resolve(getClassList()).then(function () {
27193
+ toast.success(t("update_data_successfully"));
27194
+ });
27195
+ });
27196
+ }, function (error) {
27197
+ toast.error(getErrorMessage(t, error));
27198
+ });
27199
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
27200
+ } catch (e) {
27201
+ return Promise.reject(e);
27202
+ }
27203
+ };
27101
27204
  var handleChangePage = function handleChangePage(_, page) {
27102
27205
  setClassFilter(_extends({}, classFilter, {
27103
27206
  currentPage: page
@@ -27123,7 +27226,8 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
27123
27226
  handleCreateClass: handleCreateClass,
27124
27227
  handleUpdateClass: handleUpdateClass,
27125
27228
  handleChangePage: handleChangePage,
27126
- handleDeleteClass: handleDeleteClass
27229
+ handleDeleteClass: handleDeleteClass,
27230
+ handleToggleHidden: handleToggleHidden
27127
27231
  };
27128
27232
  };
27129
27233
 
@@ -27136,7 +27240,15 @@ var ClassList = function ClassList(_ref) {
27136
27240
  var _state$common, _state$common$user;
27137
27241
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.isSuperAdmin;
27138
27242
  });
27139
- var isAdmin = role === Role.Admin;
27243
+ var isAdmin = useSelector(function (state) {
27244
+ var _state$common2, _state$common2$user, _state$common2$user$r;
27245
+ return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : (_state$common2$user$r = _state$common2$user.roles) === null || _state$common2$user$r === void 0 ? void 0 : _state$common2$user$r.includes(Role.Admin);
27246
+ });
27247
+ var isTeacher = useSelector(function (state) {
27248
+ var _state$common3, _state$common3$user, _state$common3$user$r;
27249
+ return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : (_state$common3$user = _state$common3.user) === null || _state$common3$user === void 0 ? void 0 : (_state$common3$user$r = _state$common3$user.roles) === null || _state$common3$user$r === void 0 ? void 0 : _state$common3$user$r.includes(Role.Teacher);
27250
+ }) && !isAdmin;
27251
+ var isAdminSite = role === Role.Admin;
27140
27252
  var _useClassList = useClassList(history, classCreateUrl, classUpdateUrl),
27141
27253
  t = _useClassList.t,
27142
27254
  paging = _useClassList.paging,
@@ -27151,7 +27263,11 @@ var ClassList = function ClassList(_ref) {
27151
27263
  handleCreateClass = _useClassList.handleCreateClass,
27152
27264
  handleUpdateClass = _useClassList.handleUpdateClass,
27153
27265
  handleChangePage = _useClassList.handleChangePage,
27154
- handleDeleteClass = _useClassList.handleDeleteClass;
27266
+ handleDeleteClass = _useClassList.handleDeleteClass,
27267
+ handleToggleHidden = _useClassList.handleToggleHidden;
27268
+ var headers = !isTeacher ? CLASS_HEADERS : [].concat(CLASS_HEADERS.slice(0, -1), [{
27269
+ title: "hidden"
27270
+ }], CLASS_HEADERS.slice(-1));
27155
27271
  return React__default.createElement(Box, null, React__default.createElement(Stack, {
27156
27272
  direction: "row",
27157
27273
  alignItems: "center",
@@ -27159,7 +27275,7 @@ var ClassList = function ClassList(_ref) {
27159
27275
  mb: 2
27160
27276
  }, React__default.createElement(Typography, {
27161
27277
  variant: "h4"
27162
- }, t("classes")), (isAdmin || isSuperAdmin) && React__default.createElement(MButton, {
27278
+ }, t("classes")), (isAdminSite || isSuperAdmin) && React__default.createElement(MButton, {
27163
27279
  variant: "contained",
27164
27280
  color: "inherit",
27165
27281
  startIcon: React__default.createElement(FaPlus, {
@@ -27182,7 +27298,7 @@ var ClassList = function ClassList(_ref) {
27182
27298
  }), React__default.createElement(Grid, {
27183
27299
  item: true,
27184
27300
  xs: 12
27185
- }, React__default.createElement(TableContainer, null, React__default.createElement(Table$1, null, React__default.createElement(TableHead$1, null, React__default.createElement(TableRow$1, null, CLASS_HEADERS.map(function (i, index) {
27301
+ }, React__default.createElement(TableContainer, null, React__default.createElement(Table$1, null, React__default.createElement(TableHead$1, null, React__default.createElement(TableRow$1, null, headers.map(function (i, index) {
27186
27302
  return React__default.createElement(TableCell$1, {
27187
27303
  key: index,
27188
27304
  onClick: !!i.sortKey ? function () {
@@ -27199,7 +27315,13 @@ var ClassList = function ClassList(_ref) {
27199
27315
  key: i.id
27200
27316
  }, React__default.createElement(TableCell$1, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell$1, {
27201
27317
  className: "text-nowrap"
27202
- }, i.name), React__default.createElement(TableCell$1, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell$1, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell$1, null, i.totalStudents), React__default.createElement(TableCell$1, null, i.totalTeachers), React__default.createElement(TableCell$1, null, i.totalLessons), React__default.createElement(TableCell$1, null, (isAdmin || isSuperAdmin) && React__default.createElement("div", {
27318
+ }, i.name), React__default.createElement(TableCell$1, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell$1, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell$1, null, i.totalStudents), React__default.createElement(TableCell$1, null, i.totalTeachers), React__default.createElement(TableCell$1, null, i.totalLessons), isTeacher && React__default.createElement(TableCell$1, null, React__default.createElement(Switch, {
27319
+ checked: i.hidden,
27320
+ onChange: function onChange(e) {
27321
+ var _i$id;
27322
+ return handleToggleHidden(e, (_i$id = i.id) != null ? _i$id : 0);
27323
+ }
27324
+ })), React__default.createElement(TableCell$1, null, (isAdminSite || isSuperAdmin) && React__default.createElement("div", {
27203
27325
  className: "d-flex"
27204
27326
  }, React__default.createElement(IconButton, {
27205
27327
  color: "default",
@@ -27217,7 +27339,7 @@ var ClassList = function ClassList(_ref) {
27217
27339
  }
27218
27340
  }, React__default.createElement(FaTrashCan, {
27219
27341
  size: 12
27220
- }))), !(isAdmin || isSuperAdmin) && React__default.createElement(IconButton, {
27342
+ }))), !(isAdminSite || isSuperAdmin) && React__default.createElement(IconButton, {
27221
27343
  color: "default",
27222
27344
  className: "bg-primary text-white me-1",
27223
27345
  onClick: function onClick() {
@@ -38319,6 +38441,7 @@ var Header = function Header(_ref) {
38319
38441
  }, [isTeacherSide, language]);
38320
38442
  return React__default.createElement(Stack, {
38321
38443
  width: "100%",
38444
+ height: "78px",
38322
38445
  display: "flex",
38323
38446
  flexDirection: "row",
38324
38447
  gap: {