This repository was archived by the owner on May 20, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +59
-11
lines changed Expand file tree Collapse file tree 4 files changed +59
-11
lines changed Original file line number Diff line number Diff line change @@ -287,5 +287,13 @@ export const getVideoObject = (video_data) => {
287
287
}
288
288
}
289
289
290
+ // remove spaces before appending "..." on truncated strings
291
+ const getLimit = ( input , limit ) => {
292
+ if ( input [ limit - 1 ] === ' ' ) {
293
+ return limit - 1
294
+ }
295
+ return limit
296
+ }
297
+
290
298
export const truncateString = ( input , limit ) =>
291
- input . length > limit ? `${ input . substring ( 0 , limit ) } ...` : input
299
+ input . length > limit ? `${ input . substring ( 0 , getLimit ( input , limit ) ) } ...` : input
Original file line number Diff line number Diff line change @@ -3,16 +3,22 @@ import PropTypes from 'prop-types'
3
3
import Dbanner from './components/video-banner/_DBanner'
4
4
import { Flex } from 'components/containers'
5
5
6
- const DVideoBanner = ( { video_list_data } ) => {
6
+ const DVideoBanner = ( { featured_video_list_data , non_featured_video_list_data } ) => {
7
7
return (
8
8
< Flex >
9
- { video_list_data && video_list_data . length && < Dbanner video_list = { video_list_data } /> }
9
+ { non_featured_video_list_data && non_featured_video_list_data . length && (
10
+ < Dbanner
11
+ featured_video_list = { featured_video_list_data }
12
+ non_featured_video_list = { non_featured_video_list_data }
13
+ />
14
+ ) }
10
15
</ Flex >
11
16
)
12
17
}
13
18
14
19
DVideoBanner . propTypes = {
15
- video_list_data : PropTypes . array ,
20
+ featured_video_list_data : PropTypes . array ,
21
+ non_featured_video_list_data : PropTypes . array ,
16
22
}
17
23
18
24
export default DVideoBanner
Original file line number Diff line number Diff line change @@ -70,12 +70,18 @@ const StyledDot = styled.img`
70
70
margin: 0 10px 4px;
71
71
`
72
72
73
- const Dbanner = ( { video_list } ) => {
73
+ const Dbanner = ( { featured_video_list , non_featured_video_list } ) => {
74
74
const [ show , setShow ] = useState ( false )
75
75
const handleCloseVideo = ( ) => setShow ( false )
76
76
const handleOpenVideo = ( ) => setShow ( true )
77
- const featured_video = video_list . find ( ( v ) => v . featured )
78
- const filtered_video = video_list . filter ( ( v ) => v !== featured_video )
77
+
78
+ let featured_video
79
+ if ( featured_video_list && featured_video_list . length ) {
80
+ featured_video = featured_video_list [ 0 ]
81
+ } else {
82
+ featured_video = non_featured_video_list [ 0 ]
83
+ non_featured_video_list . shift ( )
84
+ }
79
85
80
86
const {
81
87
published_date,
@@ -158,7 +164,7 @@ const Dbanner = ({ video_list }) => {
158
164
</ Header >
159
165
</ Flex >
160
166
</ Flex >
161
- < VideoCarousel carousel_items = { filtered_video } />
167
+ < VideoCarousel carousel_items = { non_featured_video_list } />
162
168
</ Container >
163
169
</ ParentWrapper >
164
170
{ show && < VideoPlayer video_src = { video_url } closeVideo = { handleCloseVideo } /> }
@@ -167,7 +173,8 @@ const Dbanner = ({ video_list }) => {
167
173
}
168
174
169
175
Dbanner . propTypes = {
170
- video_list : PropTypes . array ,
176
+ featured_video_list : PropTypes . array ,
177
+ non_featured_video_list : PropTypes . array ,
171
178
}
172
179
173
180
export default Dbanner
Original file line number Diff line number Diff line change @@ -79,6 +79,29 @@ export const query = graphql`
79
79
}
80
80
}
81
81
}
82
+ featured_video: videos(
83
+ filter: { status: { _eq: "published" }, featured: { _eq: true } }
84
+ sort: "-published_date"
85
+ limit: 1
86
+ ) {
87
+ video_title
88
+ published_date
89
+ video_description
90
+ video_duration
91
+ featured
92
+ video_thumbnail {
93
+ id
94
+ title
95
+ }
96
+ video_file {
97
+ id
98
+ }
99
+ tags {
100
+ tags_id {
101
+ tag_name
102
+ }
103
+ }
104
+ }
82
105
recent: blog(
83
106
filter: { status: { _eq: "published" } }
84
107
sort: "-published_date"
@@ -161,7 +184,8 @@ const DerivBlog = ({ data }) => {
161
184
162
185
const recent_data = data . directus . recent
163
186
const featured_data = data . directus . featured
164
- const video_list_data = data . directus . videos
187
+ const non_featured_video_list_data = data . directus . videos
188
+ const featured_video_list_data = data . directus . featured_video
165
189
166
190
return (
167
191
< Layout type = "academy" is_ppc_redirect = { true } >
@@ -196,7 +220,10 @@ const DerivBlog = ({ data }) => {
196
220
</ Carousel >
197
221
</ MainWrapper >
198
222
< RecentFeaturedPosts recent_data = { recent_data } featured_data = { featured_data } />
199
- < DVideoBanner video_list_data = { video_list_data } />
223
+ < DVideoBanner
224
+ featured_video_list_data = { featured_video_list_data }
225
+ non_featured_video_list_data = { non_featured_video_list_data }
226
+ />
200
227
< MarketNews data = { market_news_data } />
201
228
< Container >
202
229
< Flex
You can’t perform that action at this time.
0 commit comments