@@ -6,6 +6,7 @@ import { getTranslations, setRequestLocale } from 'next-intl/server'
66import { RichText } from '@payloadcms/richtext-lexical/react'
77import headersConverter from '@/lib/utils/converter'
88import NextProject from '@/components/nextProjects'
9+ import ScrollingText from '@/components/ScrollingText'
910import '@styles/project.scss'
1011
1112import { ReactNode } from 'react'
@@ -238,42 +239,75 @@ const Page = async ({ params }: Props) => {
238239 } ) }
239240 < >
240241 < div className = "hidden lg:block" >
241- { project . images ?. slice ( 1 ) . map ( ( img ) => (
242- < div
243- key = { img . id }
244- className = "min-h-svh flex items-center justify-center img-container"
245- style = { {
246- backgroundColor :
247- img . blockType === 'image'
248- ? img . bgColor
249- : img . blockType === 'imageGroup'
250- ? img . images ?. at ( - 1 ) ?. bgColor
251- : 'transparent' ,
252- } }
253- >
254- { img . blockType === 'image' ? DesktopImage ( img ) : DesktopImageGroup ( img ) }
255- </ div >
256- ) ) }
242+ { project . images ?. slice ( 1 ) . map ( ( img , i , arr ) => {
243+ const prevElement = arr . at ( Math . max ( i - 1 , 0 ) ) // To not cause it to wrap to -1
244+ const previousElementColor =
245+ prevElement ?. blockType === 'image'
246+ ? prevElement . bgColor
247+ : prevElement ?. blockType === 'imageGroup'
248+ ? prevElement . images ?. at ( - 1 ) ?. bgColor
249+ : 'transparent'
250+
251+ return (
252+ < div
253+ key = { img . id }
254+ className = { `${ img . blockType !== 'animatedText' ? 'min-h-svh' : '' } flex items-center justify-center img-container` }
255+ style = { {
256+ backgroundColor :
257+ img . blockType === 'image'
258+ ? img . bgColor
259+ : img . blockType === 'imageGroup'
260+ ? img . images ?. at ( - 1 ) ?. bgColor
261+ : 'transparent' ,
262+ } }
263+ >
264+ { img . blockType === 'image' ? (
265+ DesktopImage ( img )
266+ ) : img . blockType === 'imageGroup' ? (
267+ DesktopImageGroup ( img )
268+ ) : (
269+ < div style = { { backgroundColor : previousElementColor } } >
270+ < ScrollingText text = { img . text } color = { img . textColor } />
271+ </ div >
272+ ) }
273+ </ div >
274+ )
275+ } ) }
257276 </ div >
258277 < div className = "block lg:hidden" >
259- { project . images ?. slice ( 1 ) . map ( ( img ) => (
260- < div
261- key = { img . id }
262- className = "img-container"
263- style = { {
264- backgroundColor :
265- img . blockType === 'image'
266- ? img . bgColor
267- : img . blockType === 'imageGroup'
268- ? img . images ?. at ( - 1 ) ?. bgColor
269- : 'transparent' ,
270- } }
271- >
272- { img . blockType === 'image'
273- ? PhoneImage ( img )
274- : img . images ?. map ( ( groupedImg ) => PhoneImage ( groupedImg as ProjectImageSingle ) ) }
275- </ div >
276- ) ) }
278+ { project . images ?. slice ( 1 ) . map ( ( img , i , arr ) => {
279+ const prevElement = arr . at ( Math . max ( i - 1 , 0 ) ) // To not cause it to wrap to -1
280+ const previousElementColor =
281+ prevElement ?. blockType === 'image'
282+ ? prevElement . bgColor
283+ : prevElement ?. blockType === 'imageGroup'
284+ ? prevElement . images ?. at ( - 1 ) ?. bgColor
285+ : 'transparent'
286+ return (
287+ < div
288+ key = { img . id }
289+ className = "img-container"
290+ style = { {
291+ backgroundColor :
292+ img . blockType === 'image'
293+ ? img . bgColor
294+ : img . blockType === 'imageGroup'
295+ ? img . images ?. at ( - 1 ) ?. bgColor
296+ : 'transparent' ,
297+ } }
298+ >
299+ { img . blockType === 'image' ? (
300+ PhoneImage ( img )
301+ ) : img . blockType === 'imageGroup' ? (
302+ img . images ?. map ( ( groupedImg ) => PhoneImage ( groupedImg as ProjectImageSingle ) )
303+ ) : (
304+ < div style = { { backgroundColor : previousElementColor } } >
305+ < ScrollingText text = { img . text } color = { img . textColor } />
306+ </ div >
307+ ) }
308+ </ div >
309+ )
310+ } ) }
277311 </ div >
278312 </ >
279313 </ div >
0 commit comments