@elice/material-external 1.230915.0 → 1.231006.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.
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  export interface MaterialExternalProps {
3
3
  className?: string;
4
4
  materialExternalId: number;
5
+ /** studentId. only tutoring mode */
6
+ userId?: number;
5
7
  locale?: string;
6
8
  }
7
9
  declare const MaterialExternal: React.FC<MaterialExternalProps>;
@@ -4,11 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactIntl = require('react-intl');
7
- var apiClient = require('@elice/api-client');
8
- var materialSharedUtils = require('@elice/material-shared-utils');
9
- var types = require('@elice/types');
10
7
  var classnames = require('classnames');
11
8
  var locales = require('./locales.js');
9
+ var MaterialExternalAdminContent = require('./MaterialExternalAdminContent.js');
12
10
  var MaterialExternalContent = require('./MaterialExternalContent.js');
13
11
  var MaterialExternal_styled = require('./MaterialExternal.styled.js');
14
12
 
@@ -19,31 +17,22 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
19
17
 
20
18
  var MaterialExternal = function MaterialExternal(_ref) {
21
19
  var materialExternalId = _ref.materialExternalId,
20
+ userId = _ref.userId,
22
21
  className = _ref.className,
23
22
  _ref$locale = _ref.locale,
24
23
  locale = _ref$locale === void 0 ? 'en' : _ref$locale;
25
24
  var prefixCls = 'em-material-external';
26
- var _useMaterialFetch = materialSharedUtils.useMaterialFetch(types.enums.LectureMaterialType.External, React__default["default"].useCallback(function (signal) {
27
- return apiClient.getOrgMaterialExternalGet({
28
- materialExternalId: materialExternalId
29
- }, {
30
- signal: signal
31
- });
32
- }, [materialExternalId]), apiClient.config.init),
33
- materialExternal = _useMaterialFetch.materialExternal,
34
- materialExternalStatus = _useMaterialFetch.status;
35
- //
36
- //
37
- //
38
25
  return React__default["default"].createElement(MaterialExternal_styled.StyledExternalWrap, {
39
26
  className: classnames__default["default"](prefixCls, className)
40
27
  }, React__default["default"].createElement(reactIntl.IntlProvider, {
41
28
  locale: locale,
42
29
  defaultLocale: "en",
43
30
  messages: locale in locales ? locales[locale] : locales.en
44
- }, React__default["default"].createElement(MaterialExternalContent["default"], {
45
- materialExternal: materialExternal,
46
- externalGetStatus: materialExternalStatus
31
+ }, userId ? React__default["default"].createElement(MaterialExternalAdminContent["default"], {
32
+ materialExternalId: materialExternalId,
33
+ userId: userId
34
+ }) : React__default["default"].createElement(MaterialExternalContent["default"], {
35
+ materialExternalId: materialExternalId
47
36
  })));
48
37
  };
49
38
 
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface MaterialExternalContentProps {
3
+ materialExternalId: number;
4
+ userId: number;
5
+ }
6
+ declare const MaterialExternalContent: React.FC<MaterialExternalContentProps>;
7
+ export default MaterialExternalContent;
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var React = require('react');
7
+ var reactIntl = require('react-intl');
8
+ var apiClient = require('@elice/api-client');
9
+ var blocks = require('@elice/blocks');
10
+ var MaterialExternalIframe = require('./MaterialExternalIframe.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var MaterialExternalContent = function MaterialExternalContent(_ref) {
17
+ var materialExternalId = _ref.materialExternalId,
18
+ userId = _ref.userId;
19
+ var _React$useState = React__default["default"].useState(''),
20
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
21
+ externalUrl = _React$useState2[0],
22
+ setExternalUrl = _React$useState2[1];
23
+ var _React$useState3 = React__default["default"].useState('idle'),
24
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
25
+ externalGetStatus = _React$useState4[0],
26
+ setExternalGetStatus = _React$useState4[1];
27
+ React__default["default"].useEffect(function () {
28
+ if (materialExternalId && userId) {
29
+ setExternalGetStatus('pending');
30
+ apiClient.getOrgMaterialExternalTutorExternalUrlGet({
31
+ materialExternalId: materialExternalId,
32
+ userId: userId
33
+ }).then(function (value) {
34
+ setExternalUrl(value.externalUrl);
35
+ setExternalGetStatus('resolved');
36
+ }).catch(function () {
37
+ return setExternalGetStatus('rejected');
38
+ });
39
+ }
40
+ }, [materialExternalId, userId]);
41
+ if (externalGetStatus === 'pending') {
42
+ return React__default["default"].createElement(blocks.Spinner, null);
43
+ }
44
+ if (externalGetStatus === 'rejected' || !externalUrl) {
45
+ return React__default["default"].createElement(blocks.Text, {
46
+ role: "white"
47
+ }, React__default["default"].createElement(reactIntl.FormattedMessage, {
48
+ id: "external.status.rejected"
49
+ }));
50
+ }
51
+ return React__default["default"].createElement(MaterialExternalIframe["default"], {
52
+ materialExternal: {
53
+ title: 'External Admin',
54
+ externalUrl: externalUrl
55
+ }
56
+ });
57
+ };
58
+
59
+ exports["default"] = MaterialExternalContent;
@@ -1,9 +1,6 @@
1
1
  import React from 'react';
2
- import type { APIStatus } from '@elice/material-shared-types';
3
- import type { GetOrgMaterialExternalGetResponses } from '@elice/types';
4
2
  export interface MaterialExternalContentProps {
5
- externalGetStatus: APIStatus;
6
- materialExternal: null | GetOrgMaterialExternalGetResponses['materialExternal'];
3
+ materialExternalId: number;
7
4
  }
8
5
  declare const MaterialExternalContent: React.FC<MaterialExternalContentProps>;
9
6
  export default MaterialExternalContent;
@@ -4,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactIntl = require('react-intl');
7
+ var apiClient = require('@elice/api-client');
7
8
  var blocks = require('@elice/blocks');
9
+ var materialSharedUtils = require('@elice/material-shared-utils');
8
10
  var types = require('@elice/types');
9
11
  var MaterialExternalIframe = require('./MaterialExternalIframe.js');
10
12
  var MaterialExternalNewWindow = require('./MaterialExternalNewWindow.js');
@@ -15,8 +17,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
18
 
17
19
  var MaterialExternalContent = function MaterialExternalContent(_ref) {
18
- var externalGetStatus = _ref.externalGetStatus,
19
- materialExternal = _ref.materialExternal;
20
+ var materialExternalId = _ref.materialExternalId;
21
+ var _useMaterialFetch = materialSharedUtils.useMaterialFetch(types.enums.LectureMaterialType.External, React__default["default"].useCallback(function (signal) {
22
+ return apiClient.getOrgMaterialExternalGet({
23
+ materialExternalId: materialExternalId
24
+ }, {
25
+ signal: signal
26
+ });
27
+ }, [materialExternalId]), apiClient.config.init),
28
+ materialExternal = _useMaterialFetch.materialExternal,
29
+ externalGetStatus = _useMaterialFetch.status;
20
30
  if (externalGetStatus === 'pending') {
21
31
  return React__default["default"].createElement(blocks.Spinner, null);
22
32
  }
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { GetOrgMaterialExternalGetResponses } from '@elice/types/es/typings/apis/orgMaterialExternal';
3
- declare const MaterialExternalIframe: React.FC<GetOrgMaterialExternalGetResponses>;
3
+ declare const MaterialExternalIframe: React.FC<{
4
+ materialExternal: Pick<GetOrgMaterialExternalGetResponses['materialExternal'], 'title' | 'externalUrl'>;
5
+ }>;
4
6
  export default MaterialExternalIframe;
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  export interface MaterialExternalProps {
3
3
  className?: string;
4
4
  materialExternalId: number;
5
+ /** studentId. only tutoring mode */
6
+ userId?: number;
5
7
  locale?: string;
6
8
  }
7
9
  declare const MaterialExternal: React.FC<MaterialExternalProps>;
@@ -1,41 +1,30 @@
1
1
  import React from 'react';
2
2
  import { IntlProvider } from 'react-intl';
3
- import { getOrgMaterialExternalGet, config } from '@elice/api-client';
4
- import { useMaterialFetch } from '@elice/material-shared-utils';
5
- import { enums } from '@elice/types';
6
3
  import classnames from 'classnames';
7
4
  import * as locales from './locales.js';
8
5
  import { en } from './locales.js';
9
- import MaterialExternalContent from './MaterialExternalContent.js';
6
+ import MaterialExternalContent from './MaterialExternalAdminContent.js';
7
+ import MaterialExternalContent$1 from './MaterialExternalContent.js';
10
8
  import { StyledExternalWrap } from './MaterialExternal.styled.js';
11
9
 
12
10
  var MaterialExternal = function MaterialExternal(_ref) {
13
11
  var materialExternalId = _ref.materialExternalId,
12
+ userId = _ref.userId,
14
13
  className = _ref.className,
15
14
  _ref$locale = _ref.locale,
16
15
  locale = _ref$locale === void 0 ? 'en' : _ref$locale;
17
16
  var prefixCls = 'em-material-external';
18
- var _useMaterialFetch = useMaterialFetch(enums.LectureMaterialType.External, React.useCallback(function (signal) {
19
- return getOrgMaterialExternalGet({
20
- materialExternalId: materialExternalId
21
- }, {
22
- signal: signal
23
- });
24
- }, [materialExternalId]), config.init),
25
- materialExternal = _useMaterialFetch.materialExternal,
26
- materialExternalStatus = _useMaterialFetch.status;
27
- //
28
- //
29
- //
30
17
  return React.createElement(StyledExternalWrap, {
31
18
  className: classnames(prefixCls, className)
32
19
  }, React.createElement(IntlProvider, {
33
20
  locale: locale,
34
21
  defaultLocale: "en",
35
22
  messages: locale in locales ? locales[locale] : en
36
- }, React.createElement(MaterialExternalContent, {
37
- materialExternal: materialExternal,
38
- externalGetStatus: materialExternalStatus
23
+ }, userId ? React.createElement(MaterialExternalContent, {
24
+ materialExternalId: materialExternalId,
25
+ userId: userId
26
+ }) : React.createElement(MaterialExternalContent$1, {
27
+ materialExternalId: materialExternalId
39
28
  })));
40
29
  };
41
30
 
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface MaterialExternalContentProps {
3
+ materialExternalId: number;
4
+ userId: number;
5
+ }
6
+ declare const MaterialExternalContent: React.FC<MaterialExternalContentProps>;
7
+ export default MaterialExternalContent;
@@ -0,0 +1,51 @@
1
+ import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import { FormattedMessage } from 'react-intl';
4
+ import { getOrgMaterialExternalTutorExternalUrlGet } from '@elice/api-client';
5
+ import { Spinner, Text } from '@elice/blocks';
6
+ import MaterialExternalIframe from './MaterialExternalIframe.js';
7
+
8
+ var MaterialExternalContent = function MaterialExternalContent(_ref) {
9
+ var materialExternalId = _ref.materialExternalId,
10
+ userId = _ref.userId;
11
+ var _React$useState = React.useState(''),
12
+ _React$useState2 = _slicedToArray(_React$useState, 2),
13
+ externalUrl = _React$useState2[0],
14
+ setExternalUrl = _React$useState2[1];
15
+ var _React$useState3 = React.useState('idle'),
16
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
17
+ externalGetStatus = _React$useState4[0],
18
+ setExternalGetStatus = _React$useState4[1];
19
+ React.useEffect(function () {
20
+ if (materialExternalId && userId) {
21
+ setExternalGetStatus('pending');
22
+ getOrgMaterialExternalTutorExternalUrlGet({
23
+ materialExternalId: materialExternalId,
24
+ userId: userId
25
+ }).then(function (value) {
26
+ setExternalUrl(value.externalUrl);
27
+ setExternalGetStatus('resolved');
28
+ }).catch(function () {
29
+ return setExternalGetStatus('rejected');
30
+ });
31
+ }
32
+ }, [materialExternalId, userId]);
33
+ if (externalGetStatus === 'pending') {
34
+ return React.createElement(Spinner, null);
35
+ }
36
+ if (externalGetStatus === 'rejected' || !externalUrl) {
37
+ return React.createElement(Text, {
38
+ role: "white"
39
+ }, React.createElement(FormattedMessage, {
40
+ id: "external.status.rejected"
41
+ }));
42
+ }
43
+ return React.createElement(MaterialExternalIframe, {
44
+ materialExternal: {
45
+ title: 'External Admin',
46
+ externalUrl: externalUrl
47
+ }
48
+ });
49
+ };
50
+
51
+ export { MaterialExternalContent as default };
@@ -1,9 +1,6 @@
1
1
  import React from 'react';
2
- import type { APIStatus } from '@elice/material-shared-types';
3
- import type { GetOrgMaterialExternalGetResponses } from '@elice/types';
4
2
  export interface MaterialExternalContentProps {
5
- externalGetStatus: APIStatus;
6
- materialExternal: null | GetOrgMaterialExternalGetResponses['materialExternal'];
3
+ materialExternalId: number;
7
4
  }
8
5
  declare const MaterialExternalContent: React.FC<MaterialExternalContentProps>;
9
6
  export default MaterialExternalContent;
@@ -1,14 +1,24 @@
1
1
  import React from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
+ import { getOrgMaterialExternalGet, config } from '@elice/api-client';
3
4
  import { Spinner, Text } from '@elice/blocks';
5
+ import { useMaterialFetch } from '@elice/material-shared-utils';
4
6
  import { enums } from '@elice/types';
5
7
  import MaterialExternalIframe from './MaterialExternalIframe.js';
6
8
  import MaterialExternalNewWindow from './MaterialExternalNewWindow.js';
7
9
  import MaterialExternalRedirect from './MaterialExternalRedirect.js';
8
10
 
9
11
  var MaterialExternalContent = function MaterialExternalContent(_ref) {
10
- var externalGetStatus = _ref.externalGetStatus,
11
- materialExternal = _ref.materialExternal;
12
+ var materialExternalId = _ref.materialExternalId;
13
+ var _useMaterialFetch = useMaterialFetch(enums.LectureMaterialType.External, React.useCallback(function (signal) {
14
+ return getOrgMaterialExternalGet({
15
+ materialExternalId: materialExternalId
16
+ }, {
17
+ signal: signal
18
+ });
19
+ }, [materialExternalId]), config.init),
20
+ materialExternal = _useMaterialFetch.materialExternal,
21
+ externalGetStatus = _useMaterialFetch.status;
12
22
  if (externalGetStatus === 'pending') {
13
23
  return React.createElement(Spinner, null);
14
24
  }
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { GetOrgMaterialExternalGetResponses } from '@elice/types/es/typings/apis/orgMaterialExternal';
3
- declare const MaterialExternalIframe: React.FC<GetOrgMaterialExternalGetResponses>;
3
+ declare const MaterialExternalIframe: React.FC<{
4
+ materialExternal: Pick<GetOrgMaterialExternalGetResponses['materialExternal'], 'title' | 'externalUrl'>;
5
+ }>;
4
6
  export default MaterialExternalIframe;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-external",
3
- "version": "1.230915.0",
3
+ "version": "1.231006.0",
4
4
  "description": "User view and editing components of Elice material external",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -43,14 +43,14 @@
43
43
  "tslib": "^2.6.1"
44
44
  },
45
45
  "devDependencies": {
46
- "@elice/api-client": "^1.230815.0",
46
+ "@elice/api-client": "^1.230926.0",
47
47
  "@elice/blocks": "^1.230816.0",
48
48
  "@elice/design-tokens": "^1.220803.0",
49
49
  "@elice/icons": "^1.230814.0",
50
50
  "@elice/icons-legacy": "npm:@elice/icons@0.230814.0",
51
51
  "@elice/markdown": "^1.220815.0",
52
- "@elice/material-shared-types": "1.230915.0",
53
- "@elice/material-shared-utils": "1.230915.0",
52
+ "@elice/material-shared-types": "1.231006.0",
53
+ "@elice/material-shared-utils": "1.231006.0",
54
54
  "@elice/types": "^1.230815.0",
55
55
  "@types/classnames": "^2.3.1",
56
56
  "@types/react": "~17.0.9",
@@ -60,5 +60,5 @@
60
60
  "react-use": "^17.2.4",
61
61
  "styled-components": "^5.3.0"
62
62
  },
63
- "gitHead": "93bc5e05279bbb32c51cad07d5a5a27d8e418482"
63
+ "gitHead": "5295ff666ff5753acefb617a1921cfc4a39d0a3e"
64
64
  }