@selfcommunity/react-ui 0.10.2-courses.150 → 0.10.2-courses.151
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/lib/cjs/components/Course/Course.js +1 -9
- package/lib/cjs/components/CourseJoinButton/CourseJoinButton.js +1 -1
- package/lib/esm/components/Course/Course.js +1 -9
- package/lib/esm/components/CourseJoinButton/CourseJoinButton.js +1 -1
- package/lib/umd/react-ui.js +1 -1
- package/package.json +8 -8
|
@@ -17,7 +17,6 @@ const constants_1 = require("./constants");
|
|
|
17
17
|
const Skeleton_1 = tslib_1.__importDefault(require("./Skeleton"));
|
|
18
18
|
const BaseItem_1 = tslib_1.__importDefault(require("../../shared/BaseItem"));
|
|
19
19
|
const course_2 = require("../../utils/course");
|
|
20
|
-
const CourseJoinButton_1 = tslib_1.__importDefault(require("../CourseJoinButton"));
|
|
21
20
|
const classes = {
|
|
22
21
|
root: `${constants_1.PREFIX}-root`,
|
|
23
22
|
chip: `${constants_1.PREFIX}-chip`,
|
|
@@ -117,13 +116,6 @@ function Course(inProps) {
|
|
|
117
116
|
// CONTEXT
|
|
118
117
|
const scRoutingContext = (0, react_core_1.useSCRouting)();
|
|
119
118
|
const isCourseAdmin = (0, react_1.useMemo)(() => scCourse && (scCourse.join_status === types_1.SCCourseJoinStatusType.CREATOR || scCourse.join_status === types_1.SCCourseJoinStatusType.MANAGER), [scCourse]);
|
|
120
|
-
//HANDLERS
|
|
121
|
-
/**
|
|
122
|
-
* Handles callback join course
|
|
123
|
-
*/
|
|
124
|
-
const handleJoinCourse = (course, status) => {
|
|
125
|
-
setSCCourse(Object.assign(Object.assign({}, course), { join_status: status }));
|
|
126
|
-
};
|
|
127
119
|
/**
|
|
128
120
|
* Renders course object
|
|
129
121
|
*/
|
|
@@ -162,7 +154,7 @@ function Course(inProps) {
|
|
|
162
154
|
? 'primary'
|
|
163
155
|
: isCourseAdmin && !scCourse.privacy
|
|
164
156
|
? 'default'
|
|
165
|
-
: 'secondary', label: chipLabel, className: classes.chip })), (0, jsx_runtime_1.jsx)(material_1.Avatar, { alt: scCourse.name, src: scCourse.created_by.avatar, className: classes.previewAvatar })] })), (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.previewContent }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2", className: classes.previewCreator }, { children: scCourse.created_by.username })), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse), className: classes.previewNameWrapper }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h6", className: classes.previewName }, { children: scCourse.name })) })), (0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ className: classes.previewInfo }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), "-", (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.previewCategory }, { children: scCourse.categories.map((category) => ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", label: category.name }, category.id))) })), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.previewProgress }, { children: renderProgress() }))] })), actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.previewActions }, { children:
|
|
157
|
+
: 'secondary', label: chipLabel, className: classes.chip })), (0, jsx_runtime_1.jsx)(material_1.Avatar, { alt: scCourse.name, src: scCourse.created_by.avatar, className: classes.previewAvatar })] })), (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.previewContent }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2", className: classes.previewCreator }, { children: scCourse.created_by.username })), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse), className: classes.previewNameWrapper }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h6", className: classes.previewName }, { children: scCourse.name })) })), (0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ className: classes.previewInfo }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), "-", (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.previewCategory }, { children: scCourse.categories.map((category) => ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", label: category.name }, category.id))) })), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.previewProgress }, { children: renderProgress() }))] })), actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.previewActions }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ variant: "outlined", size: "small", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.see.preview", id: "ui.course.see.preview" }) })) })))] })));
|
|
166
158
|
}
|
|
167
159
|
else {
|
|
168
160
|
contentObj = ((0, jsx_runtime_1.jsx)(SnippetRoot, { elevation: 0, className: classes.snippetRoot, image: (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.snippetImage }, { children: [(0, jsx_runtime_1.jsx)(material_1.Avatar, { variant: "square", alt: scCourse.name, src: scCourse.image_medium, className: classes.snippetAvatar }), (isCourseAdmin || (0, course_2.isCourseCompleted)(scCourse) || (0, course_2.isCourseNew)(scCourse)) && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", color: (0, course_2.isCourseCompleted)(scCourse) || (isCourseAdmin && scCourse.privacy)
|
|
@@ -65,7 +65,7 @@ function CourseJoinButton(inProps) {
|
|
|
65
65
|
course,
|
|
66
66
|
cacheStrategy: authUserId ? utils_1.CacheStrategies.CACHE_FIRST : utils_1.CacheStrategies.STALE_WHILE_REVALIDATE
|
|
67
67
|
});
|
|
68
|
-
const isCourseAdmin = (0, react_1.useMemo)(() => scCourse &&
|
|
68
|
+
const isCourseAdmin = (0, react_1.useMemo)(() => scCourse && scCourse.join_status === types_1.SCCourseJoinStatusType.CREATOR, [scCourse]);
|
|
69
69
|
(0, react_1.useEffect)(() => {
|
|
70
70
|
/**
|
|
71
71
|
* Call scCoursesManager.joinStatus inside an effect
|
|
@@ -15,7 +15,6 @@ import { PREFIX } from './constants';
|
|
|
15
15
|
import CourseSkeleton from './Skeleton';
|
|
16
16
|
import BaseItem from '../../shared/BaseItem';
|
|
17
17
|
import { isCourseCompleted, isCourseNew } from '../../utils/course';
|
|
18
|
-
import CourseJoinButton from '../CourseJoinButton';
|
|
19
18
|
const classes = {
|
|
20
19
|
root: `${PREFIX}-root`,
|
|
21
20
|
chip: `${PREFIX}-chip`,
|
|
@@ -115,13 +114,6 @@ export default function Course(inProps) {
|
|
|
115
114
|
// CONTEXT
|
|
116
115
|
const scRoutingContext = useSCRouting();
|
|
117
116
|
const isCourseAdmin = useMemo(() => scCourse && (scCourse.join_status === SCCourseJoinStatusType.CREATOR || scCourse.join_status === SCCourseJoinStatusType.MANAGER), [scCourse]);
|
|
118
|
-
//HANDLERS
|
|
119
|
-
/**
|
|
120
|
-
* Handles callback join course
|
|
121
|
-
*/
|
|
122
|
-
const handleJoinCourse = (course, status) => {
|
|
123
|
-
setSCCourse(Object.assign(Object.assign({}, course), { join_status: status }));
|
|
124
|
-
};
|
|
125
117
|
/**
|
|
126
118
|
* Renders course object
|
|
127
119
|
*/
|
|
@@ -160,7 +152,7 @@ export default function Course(inProps) {
|
|
|
160
152
|
? 'primary'
|
|
161
153
|
: isCourseAdmin && !scCourse.privacy
|
|
162
154
|
? 'default'
|
|
163
|
-
: 'secondary', label: chipLabel, className: classes.chip })), _jsx(Avatar, { alt: scCourse.name, src: scCourse.created_by.avatar, className: classes.previewAvatar })] })), _jsxs(CardContent, Object.assign({ className: classes.previewContent }, { children: [_jsx(Typography, Object.assign({ variant: "body2", className: classes.previewCreator }, { children: scCourse.created_by.username })), _jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.COURSE_ROUTE_NAME, scCourse), className: classes.previewNameWrapper }, { children: _jsx(Typography, Object.assign({ variant: "h6", className: classes.previewName }, { children: scCourse.name })) })), _jsxs(Typography, Object.assign({ className: classes.previewInfo }, { children: [_jsx(FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), "-", _jsx(FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })), _jsx(Box, Object.assign({ className: classes.previewCategory }, { children: scCourse.categories.map((category) => (_jsx(Chip, { size: "small", label: category.name }, category.id))) })), _jsx(Box, Object.assign({ className: classes.previewProgress }, { children: renderProgress() }))] })), actions !== null && actions !== void 0 ? actions : (_jsx(CardActions, Object.assign({ className: classes.previewActions }, { children:
|
|
155
|
+
: 'secondary', label: chipLabel, className: classes.chip })), _jsx(Avatar, { alt: scCourse.name, src: scCourse.created_by.avatar, className: classes.previewAvatar })] })), _jsxs(CardContent, Object.assign({ className: classes.previewContent }, { children: [_jsx(Typography, Object.assign({ variant: "body2", className: classes.previewCreator }, { children: scCourse.created_by.username })), _jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.COURSE_ROUTE_NAME, scCourse), className: classes.previewNameWrapper }, { children: _jsx(Typography, Object.assign({ variant: "h6", className: classes.previewName }, { children: scCourse.name })) })), _jsxs(Typography, Object.assign({ className: classes.previewInfo }, { children: [_jsx(FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), "-", _jsx(FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })), _jsx(Box, Object.assign({ className: classes.previewCategory }, { children: scCourse.categories.map((category) => (_jsx(Chip, { size: "small", label: category.name }, category.id))) })), _jsx(Box, Object.assign({ className: classes.previewProgress }, { children: renderProgress() }))] })), actions !== null && actions !== void 0 ? actions : (_jsx(CardActions, Object.assign({ className: classes.previewActions }, { children: _jsx(Button, Object.assign({ variant: "outlined", size: "small", component: Link, to: scRoutingContext.url(SCRoutes.COURSE_ROUTE_NAME, scCourse) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.course.see.preview", id: "ui.course.see.preview" }) })) })))] })));
|
|
164
156
|
}
|
|
165
157
|
else {
|
|
166
158
|
contentObj = (_jsx(SnippetRoot, { elevation: 0, className: classes.snippetRoot, image: _jsxs(Box, Object.assign({ className: classes.snippetImage }, { children: [_jsx(Avatar, { variant: "square", alt: scCourse.name, src: scCourse.image_medium, className: classes.snippetAvatar }), (isCourseAdmin || isCourseCompleted(scCourse) || isCourseNew(scCourse)) && (_jsx(Chip, { size: "small", component: "div", color: isCourseCompleted(scCourse) || (isCourseAdmin && scCourse.privacy)
|
|
@@ -63,7 +63,7 @@ export default function CourseJoinButton(inProps) {
|
|
|
63
63
|
course,
|
|
64
64
|
cacheStrategy: authUserId ? CacheStrategies.CACHE_FIRST : CacheStrategies.STALE_WHILE_REVALIDATE
|
|
65
65
|
});
|
|
66
|
-
const isCourseAdmin = useMemo(() => scCourse &&
|
|
66
|
+
const isCourseAdmin = useMemo(() => scCourse && scCourse.join_status === SCCourseJoinStatusType.CREATOR, [scCourse]);
|
|
67
67
|
useEffect(() => {
|
|
68
68
|
/**
|
|
69
69
|
* Call scCoursesManager.joinStatus inside an effect
|