@elice/material-shared-utils 1.231227.0 → 1.240112.0-cloud.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.
@@ -1,33 +1,24 @@
1
- import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { sessionKeySubject$, MaterialConfigContext } from './MaterialConfigContext.js';
4
3
 
5
- var MaterialConfigProvider = function MaterialConfigProvider(_ref) {
6
- var children = _ref.children,
7
- apiOriginUrl = _ref.apiOriginUrl,
8
- apiWsOriginUrl = _ref.apiWsOriginUrl,
9
- _ref$orgNameShort = _ref.orgNameShort,
10
- orgNameShortProp = _ref$orgNameShort === void 0 ? 'academy' : _ref$orgNameShort;
11
- var _React$useState = React.useState(orgNameShortProp),
12
- _React$useState2 = _slicedToArray(_React$useState, 2),
13
- orgNameShort = _React$useState2[0],
14
- setOrgNameShort = _React$useState2[1];
15
- var _React$useState3 = React.useState(null),
16
- _React$useState4 = _slicedToArray(_React$useState3, 2),
17
- sessionKey = _React$useState4[0],
18
- setSessionKey = _React$useState4[1];
4
+ const MaterialConfigProvider = ({
5
+ children,
6
+ apiOriginUrl,
7
+ apiWsOriginUrl,
8
+ orgNameShort: orgNameShortProp = 'academy'
9
+ }) => {
10
+ const [orgNameShort, setOrgNameShort] = React.useState(orgNameShortProp);
11
+ const [sessionKey, setSessionKey] = React.useState(null);
19
12
  //
20
13
  // Update org name short.
21
14
  //
22
- React.useEffect(function () {
23
- return setOrgNameShort(orgNameShortProp);
24
- }, [orgNameShortProp]);
15
+ React.useEffect(() => setOrgNameShort(orgNameShortProp), [orgNameShortProp]);
25
16
  //
26
17
  // Update session key when session key subject emits.
27
18
  //
28
- React.useEffect(function () {
29
- var sub = sessionKeySubject$.subscribe(setSessionKey);
30
- return function () {
19
+ React.useEffect(() => {
20
+ const sub = sessionKeySubject$.subscribe(setSessionKey);
21
+ return () => {
31
22
  sub.unsubscribe();
32
23
  };
33
24
  }, []);
@@ -37,10 +28,10 @@ var MaterialConfigProvider = function MaterialConfigProvider(_ref) {
37
28
  return React.createElement(MaterialConfigContext.Provider, {
38
29
  children: children,
39
30
  value: {
40
- apiOriginUrl: apiOriginUrl,
41
- apiWsOriginUrl: apiWsOriginUrl,
42
- orgNameShort: orgNameShort,
43
- sessionKey: sessionKey
31
+ apiOriginUrl,
32
+ apiWsOriginUrl,
33
+ orgNameShort,
34
+ sessionKey
44
35
  }
45
36
  });
46
37
  };
@@ -1,8 +1,8 @@
1
1
  import { useContext } from 'react';
2
2
  import { MaterialConfigContext } from './MaterialConfigContext.js';
3
3
 
4
- var useMaterialConfig = function useMaterialConfig() {
5
- var context = useContext(MaterialConfigContext);
4
+ const useMaterialConfig = () => {
5
+ const context = useContext(MaterialConfigContext);
6
6
  if (context === undefined) {
7
7
  throw new Error('Oops, `useMaterialConfig` must be used within a `MaterialConfigProvider`');
8
8
  }
@@ -1,18 +1,14 @@
1
- import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useContext, useState } from 'react';
3
2
  import { useDeepCompareEffect } from 'react-use';
4
3
  import { MaterialConfigContext } from './MaterialConfigContext.js';
5
4
 
6
- var useMaterialConfigApiClientUpdate = function useMaterialConfigApiClientUpdate(callback) {
7
- var context = useContext(MaterialConfigContext);
5
+ const useMaterialConfigApiClientUpdate = callback => {
6
+ const context = useContext(MaterialConfigContext);
8
7
  if (!context) {
9
8
  throw new Error('Oops, Elice material component must be used within a `MaterialConfigProvider`');
10
9
  }
11
- var _useState = useState(false),
12
- _useState2 = _slicedToArray(_useState, 2),
13
- isReady = _useState2[0],
14
- setReady = _useState2[1];
15
- useDeepCompareEffect(function () {
10
+ const [isReady, setReady] = useState(false);
11
+ useDeepCompareEffect(() => {
16
12
  var _a;
17
13
  callback({
18
14
  apiBaseUrl: context.apiOriginUrl,
@@ -24,8 +24,8 @@ import { useMaterialFetchRaw } from './useMaterialFetchRaw.js';
24
24
  * eliceApiClientConfigs.init
25
25
  * );
26
26
  */
27
- var useMaterialFetch = function useMaterialFetch(materialType, materialFetchFn, init) {
28
- var isReady = useMaterialConfigApiClientUpdate(init);
27
+ const useMaterialFetch = (materialType, materialFetchFn, init) => {
28
+ const isReady = useMaterialConfigApiClientUpdate(init);
29
29
  return useMaterialFetchRaw(materialType, materialFetchFn, isReady);
30
30
  };
31
31
 
@@ -1,10 +1,23 @@
1
- import { defineProperty as _defineProperty, slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useRef, useState, useCallback, useEffect } from 'react';
3
2
  import { getOrgLecturePageResolve, getOrgLecturePageGet } from '@elice/api-client';
4
3
  import { enums } from '@elice/types';
5
4
 
6
- var _Object$freeze;
7
- var MATERIAL_FETCH_KEY_MAP = Object.freeze((_Object$freeze = {}, _defineProperty(_Object$freeze, enums.LectureMaterialType.Nothing, 'materialNothing'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Note, 'materialNote'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Video, 'materialVideo'), _defineProperty(_Object$freeze, enums.LectureMaterialType.PDF, 'materialPdf'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Exercise, 'materialExercise'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Quiz, 'materialQuiz'), _defineProperty(_Object$freeze, enums.LectureMaterialType.LegacyRunbox, 'materialLegacyRunbox'), _defineProperty(_Object$freeze, enums.LectureMaterialType.VideoFile, 'materialVideoFile'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Live, 'materialLive'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Assignment, 'materialAssignment'), _defineProperty(_Object$freeze, enums.LectureMaterialType.LMSPublicContent, 'materialLmsPublicContent'), _defineProperty(_Object$freeze, enums.LectureMaterialType.External, 'materialExternal'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Survey, 'materialSurvey'), _defineProperty(_Object$freeze, enums.LectureMaterialType.Runbox, 'materialRunbox'), _Object$freeze));
5
+ const MATERIAL_FETCH_KEY_MAP = Object.freeze({
6
+ [enums.LectureMaterialType.Nothing]: 'materialNothing',
7
+ [enums.LectureMaterialType.Note]: 'materialNote',
8
+ [enums.LectureMaterialType.Video]: 'materialVideo',
9
+ [enums.LectureMaterialType.PDF]: 'materialPdf',
10
+ [enums.LectureMaterialType.Exercise]: 'materialExercise',
11
+ [enums.LectureMaterialType.Quiz]: 'materialQuiz',
12
+ [enums.LectureMaterialType.LegacyRunbox]: 'materialLegacyRunbox',
13
+ [enums.LectureMaterialType.VideoFile]: 'materialVideoFile',
14
+ [enums.LectureMaterialType.Live]: 'materialLive',
15
+ [enums.LectureMaterialType.Assignment]: 'materialAssignment',
16
+ [enums.LectureMaterialType.LMSPublicContent]: 'materialLmsPublicContent',
17
+ [enums.LectureMaterialType.External]: 'materialExternal',
18
+ [enums.LectureMaterialType.Survey]: 'materialSurvey',
19
+ [enums.LectureMaterialType.Runbox]: 'materialRunbox'
20
+ });
8
21
  //
9
22
  //
10
23
  //
@@ -26,85 +39,54 @@ var MATERIAL_FETCH_KEY_MAP = Object.freeze((_Object$freeze = {}, _defineProperty
26
39
  * isReady // boolean
27
40
  * );
28
41
  */
29
- var useMaterialFetchRaw = function useMaterialFetchRaw(materialType, materialFetchFn) {
30
- var isReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
31
- var _return = useRef({});
32
- var materialKey = MATERIAL_FETCH_KEY_MAP[materialType];
33
- var _createEmptyFetchRes = function _createEmptyFetchRes() {
34
- var _ref;
35
- return _ref = {}, _defineProperty(_ref, materialKey, null), _defineProperty(_ref, "materialLecturePage", null), _ref;
36
- };
37
- var _useState = useState(_createEmptyFetchRes),
38
- _useState2 = _slicedToArray(_useState, 2),
39
- matFetchRes = _useState2[0],
40
- setMatFetchRes = _useState2[1];
41
- var _useState3 = useState('idle'),
42
- _useState4 = _slicedToArray(_useState3, 2),
43
- matFetchStatus = _useState4[0],
44
- setMatFetchStatus = _useState4[1];
42
+ const useMaterialFetchRaw = (materialType, materialFetchFn, isReady = true) => {
43
+ const _return = useRef({});
44
+ const materialKey = MATERIAL_FETCH_KEY_MAP[materialType];
45
+ const _createEmptyFetchRes = () => ({
46
+ [materialKey]: null,
47
+ materialLecturePage: null
48
+ });
49
+ const [matFetchRes, setMatFetchRes] = useState(_createEmptyFetchRes);
50
+ const [matFetchStatus, setMatFetchStatus] = useState('idle');
45
51
  /**
46
52
  * fetch material and lecture page
47
53
  */
48
- var fetch = useCallback( /*#__PURE__*/function () {
49
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(signal) {
50
- return _regeneratorRuntime().wrap(function _callee$(_context) {
51
- while (1) switch (_context.prev = _context.next) {
52
- case 0:
53
- setMatFetchStatus('pending');
54
- return _context.abrupt("return", materialFetchFn(signal).then(function (resMaterialGet) {
55
- return resMaterialGet[materialKey];
56
- }).then(function (material) {
57
- return Promise.all([material, getOrgLecturePageResolve({
58
- materialId: material.id,
59
- materialType: materialType
60
- }, {
61
- signal: signal
62
- }).then(function (resLecturePageResolve) {
63
- return getOrgLecturePageGet({
64
- lecturePageId: resLecturePageResolve.lecturePageId
65
- }, {
66
- signal: signal
67
- });
68
- }).then(function (resLecturePageGet) {
69
- return resLecturePageGet.lecturePage;
70
- })]);
71
- }).then(function (_ref3) {
72
- var _setMatFetchRes;
73
- var _ref4 = _slicedToArray(_ref3, 2),
74
- material = _ref4[0],
75
- materialLecturePage = _ref4[1];
76
- setMatFetchRes((_setMatFetchRes = {}, _defineProperty(_setMatFetchRes, materialKey, material), _defineProperty(_setMatFetchRes, "materialLecturePage", materialLecturePage), _setMatFetchRes));
77
- setMatFetchStatus('resolved');
78
- }).catch(function (err) {
79
- if (err.name !== 'AbortError') {
80
- setMatFetchRes(_createEmptyFetchRes);
81
- setMatFetchStatus('rejected');
82
- }
83
- }));
84
- case 2:
85
- case "end":
86
- return _context.stop();
87
- }
88
- }, _callee);
89
- }));
90
- return function (_x) {
91
- return _ref2.apply(this, arguments);
92
- };
93
- }(),
54
+ const fetch = useCallback(async signal => {
55
+ setMatFetchStatus('pending');
56
+ return materialFetchFn(signal).then(resMaterialGet => resMaterialGet[materialKey]).then(material => Promise.all([material, getOrgLecturePageResolve({
57
+ materialId: material.id,
58
+ materialType
59
+ }, {
60
+ signal: signal
61
+ }).then(resLecturePageResolve => getOrgLecturePageGet({
62
+ lecturePageId: resLecturePageResolve.lecturePageId
63
+ }, {
64
+ signal: signal
65
+ })).then(resLecturePageGet => resLecturePageGet.lecturePage)])).then(([material, materialLecturePage]) => {
66
+ setMatFetchRes({
67
+ [materialKey]: material,
68
+ materialLecturePage
69
+ });
70
+ setMatFetchStatus('resolved');
71
+ }).catch(err => {
72
+ if (err.name !== 'AbortError') {
73
+ setMatFetchRes(_createEmptyFetchRes);
74
+ setMatFetchStatus('rejected');
75
+ }
76
+ });
77
+ },
94
78
  // eslint-disable-next-line react-hooks/exhaustive-deps
95
79
  [materialKey, materialFetchFn]);
96
80
  //
97
81
  // emit `fetch` when `isReady` is changed
98
82
  //
99
- useEffect(function () {
83
+ useEffect(() => {
100
84
  if (!isReady) {
101
85
  return;
102
86
  }
103
- var abortCtrl = new AbortController();
104
- fetch(abortCtrl.signal).catch(function () {
105
- return void 0;
106
- });
107
- return function () {
87
+ const abortCtrl = new AbortController();
88
+ fetch(abortCtrl.signal).catch(() => void 0);
89
+ return () => {
108
90
  abortCtrl.abort();
109
91
  };
110
92
  },
@@ -15,11 +15,10 @@ import { useMaterialConfigApiClientUpdate } from '../material-config/useMaterial
15
15
  * - `<RecoilRoot />`
16
16
  * - `<IntlProvider />`
17
17
  */
18
- var withMaterial = function withMaterial(Component, eliceApiClientConfigInit) {
19
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20
- return function (props) {
18
+ const withMaterial = (Component, eliceApiClientConfigInit, options = {}) => {
19
+ return props => {
21
20
  var _a;
22
- var isReady = useMaterialConfigApiClientUpdate(eliceApiClientConfigInit);
21
+ const isReady = useMaterialConfigApiClientUpdate(eliceApiClientConfigInit);
23
22
  // do not render component, if material config is not ready
24
23
  if (!isReady) {
25
24
  return React.createElement(Flex, {
@@ -46,11 +45,10 @@ var withMaterial = function withMaterial(Component, eliceApiClientConfigInit) {
46
45
  * - `<RecoilRoot />`
47
46
  * - `<IntlProvider />`
48
47
  */
49
- var withForwardRefMaterial = function withForwardRefMaterial(Component, eliceApiClientConfigInit) {
50
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
51
- return forwardRef(function (props, ref) {
48
+ const withForwardRefMaterial = (Component, eliceApiClientConfigInit, options = {}) => {
49
+ return forwardRef((props, ref) => {
52
50
  var _a;
53
- var isReady = useMaterialConfigApiClientUpdate(eliceApiClientConfigInit);
51
+ const isReady = useMaterialConfigApiClientUpdate(eliceApiClientConfigInit);
54
52
  // do not render component, if material config is not ready
55
53
  if (!isReady) {
56
54
  return React.createElement(Flex, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-shared-utils",
3
- "version": "1.231227.0",
3
+ "version": "1.240112.0-cloud.0",
4
4
  "description": "Shared typings for elice material projects",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -18,9 +18,9 @@
18
18
  "start": "run-s watch",
19
19
  "prebuild": "run-s clean",
20
20
  "build": "run-p build:es build:cjs",
21
- "build:es": "rollup -c ../../rollup.config.ts -f es",
22
- "build:cjs": "rollup -c ../../rollup.config.ts -f cjs",
23
- "watch": "rollup -c ../../rollup.config.ts -f es -w",
21
+ "build:es": "rollup -c ../../rollup.config.ts --configPlugin typescript -f es",
22
+ "build:cjs": "rollup -c ../../rollup.config.ts --configPlugin typescript -f cjs",
23
+ "watch": "rollup -c ../../rollup.config.ts --configPlugin typescript -f es -w",
24
24
  "lint": "eslint --ext .ts,.tsx ./src --max-warnings=0",
25
25
  "clean": "del-cli \"es/*\" \"cjs/*\" \"dist/*\""
26
26
  },
@@ -37,11 +37,11 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@elice/api-client": "^1.230815.0",
40
- "@elice/material-shared-types": "1.231227.0",
40
+ "@elice/material-shared-types": "1.240112.0-cloud.0",
41
41
  "@elice/types": "^1.230815.0",
42
42
  "@types/lodash-es": "^4.17.6",
43
43
  "@types/react": "~17.0.9",
44
44
  "react-use": "^17.2.4"
45
45
  },
46
- "gitHead": "9c84854123a8e6ae3a8d734e3bc9b944bf20d924"
46
+ "gitHead": "5724868dc938b0d4987541030e911b60c0dfcff7"
47
47
  }