1
- import React from 'react' ;
2
- import { Link } from 'react-router-dom' ;
3
- import PropTypes from 'prop-types' ;
4
- import { connect } from 'react-redux' ;
5
- import clsx from 'clsx' ;
6
- import { makeStyles } from '@mui/styles' ;
7
- import { style } from '../../assets/js/styles/components/activity/activityStyle' ;
8
- import BookmarkIcon from '@mui/icons-material/Bookmark' ;
9
- import BookmarkBorderIcon from '@mui/icons-material/BookmarkBorder' ;
1
+ import EmojiObjectsIcon from '@mui/icons-material/EmojiObjects' ;
10
2
import VisibilityIcon from '@mui/icons-material/Visibility' ;
11
3
import {
12
- getActivities ,
13
- activityToggleSave ,
14
- setActivity ,
15
- } from '../../store/actions/activityActions' ;
16
- import {
4
+ Box ,
17
5
Card ,
18
6
CardActions ,
19
7
CardContent ,
20
8
CardMedia ,
21
- Typography ,
22
- Box ,
23
- Grid ,
24
- Avatar ,
25
9
Tooltip ,
10
+ Typography
26
11
} from '@mui/material' ;
27
- import VisibilityIcon from '@mui/icons-material/Visibility' ;
12
+ import { makeStyles } from '@mui/styles' ;
13
+ import clsx from 'clsx' ;
14
+ import PropTypes from 'prop-types' ;
15
+ import { default as React , default as React } from 'react' ;
28
16
import { MdPublicOff } from 'react-icons/md' ;
17
+ import { connect } from 'react-redux' ;
18
+ import { Link } from 'react-router-dom' ;
29
19
import commonStyles from '../../assets/js/styles' ;
20
+ import { style } from '../../assets/js/styles/components/activity/activityStyle' ;
30
21
import { dFormatter } from '../../assets/js/utils/scripts' ;
31
- import EmojiObjectsIcon from '@mui/icons-material/EmojiObjects' ;
22
+ import {
23
+ activityToggleSave ,
24
+ getActivities ,
25
+ setActivity ,
26
+ } from '../../store/actions/activityActions' ;
32
27
import Categories from '../categories/Categories' ;
33
28
import Creators from '../creators/Creators' ;
34
29
@@ -46,6 +41,13 @@ function Activity(props) {
46
41
onClick = { e => props . setActivity ( activity ) }
47
42
>
48
43
< Card className = { clsx ( classes . activityCard ) } >
44
+ { ! activity . publish && (
45
+ < Tooltip title = { t ( 'activities.tooltipUnpublished' ) } placement = "right-start" arrow >
46
+ < Box className = { classes . publishStyle } >
47
+ < MdPublicOff />
48
+ </ Box >
49
+ </ Tooltip >
50
+ ) }
49
51
{ ! activity . publish && (
50
52
< Tooltip title = { t ( 'activities.tooltipUnpublished' ) } placement = "right-start" arrow >
51
53
< Box className = { classes . publishStyle } >
@@ -59,6 +61,8 @@ function Activity(props) {
59
61
alt = { activity . title }
60
62
className = { clsx ( classes . activityCardImage , ! activity . publish && classes . unpublishedCardImage ) }
61
63
/>
64
+ className={ clsx ( classes . activityCardImage , ! activity . publish && classes . unpublishedCardImage ) }
65
+ />
62
66
</ CardMedia >
63
67
< CardActions >
64
68
< CardContent className = { classes . activityCardContent } >
@@ -69,6 +73,18 @@ function Activity(props) {
69
73
>
70
74
{ activity . title }
71
75
</ Typography >
76
+ < Typography
77
+ variant = "subtitle2"
78
+ color = "textSecondary"
79
+ component = "p"
80
+ className = { classes . activityDescription }
81
+ < Typography
82
+ variant = "h5"
83
+ component = "h2"
84
+ className = { classes . activityTitle }
85
+ >
86
+ { activity . title }
87
+ </ Typography >
72
88
< Typography
73
89
variant = "subtitle2"
74
90
color = "textSecondary"
@@ -81,13 +97,27 @@ function Activity(props) {
81
97
< Categories categories = { activity . category } />
82
98
) }
83
99
< Creators creators = { activity ?. creators } />
100
+ < Box className = { classes . footer } >
101
+ < Box className = { classes . captionStyle } >
102
+ { activity . introduction . replace ( / ( < ( [ ^ > ] + ) > ) / gi, "" ) }
103
+ </ Typography >
104
+ { activity . category . length > 0 && (
105
+ < Categories categories = { activity . category } />
106
+ ) }
107
+ < Creators creators = { activity ?. creators } />
84
108
< Box className = { classes . footer } >
85
109
< Box className = { classes . captionStyle } >
86
110
< Typography
87
111
className = { classes . captionIconStyle }
88
112
color = "textSecondary"
89
113
variant = "caption"
90
114
component = "span"
115
+ >
116
+ < VisibilityIcon /> { activity . views_count }
117
+ className={ classes . captionIconStyle }
118
+ color="textSecondary"
119
+ variant="caption"
120
+ component="span"
91
121
>
92
122
< VisibilityIcon /> { activity . views_count }
93
123
</ Typography >
@@ -102,8 +132,25 @@ function Activity(props) {
102
132
</ Box >
103
133
< Typography color = "textSecondary" variant = "caption" component = "span" className = { classes . date } >
104
134
{ `
105
- ${ dFormatter ( activity . created_on ) . value }
106
- ${ t ( `date.${ dFormatter ( activity . created_on ) . key } ` ) }
135
+ ${ dFormatter ( activity . created_on ) . value }
136
+ ${ t ( `date.${ dFormatter ( activity . created_on ) . key } ` ) }
137
+ ${ t ( 'date.ago' , ) }
138
+ ` }
139
+ </ Typography >
140
+ </ Box >
141
+ < Typography
142
+ className = { classes . captionIconStyle }
143
+ color = "textSecondary"
144
+ variant = "caption"
145
+ component = "span"
146
+ >
147
+ < EmojiObjectsIcon /> { activity . inspired_projects . length }
148
+ </ Typography >
149
+ </ Box >
150
+ < Typography color = "textSecondary" variant = "caption" component = "span" className = { classes . date } >
151
+ { `
152
+ ${ dFormatter ( activity . created_on ) . value }
153
+ ${ t ( `date.${ dFormatter ( activity . created_on ) . key } ` ) }
107
154
${ t ( 'date.ago' , ) }
108
155
` }
109
156
</ Typography >
0 commit comments