Skip to content

Commit da0d979

Browse files
fake partner with logo and company name
1 parent 3773315 commit da0d979

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
'use client'
2+
3+
import Image from 'next/image'
4+
import { faker } from '@faker-js/faker'
5+
import logoipsum0 from '@/assets/logoipsum0.webp'
6+
import logoipsum1 from '@/assets/logoipsum1.webp'
7+
import logoipsum2 from '@/assets/logoipsum2.webp'
8+
import logoipsum3 from '@/assets/logoipsum3.webp'
9+
import logoipsum4 from '@/assets/logoipsum4.webp'
10+
import logoipsum5 from '@/assets/logoipsum5.webp'
11+
import logoipsum6 from '@/assets/logoipsum6.webp'
12+
import logoipsum7 from '@/assets/logoipsum7.webp'
13+
import logoipsum8 from '@/assets/logoipsum8.webp'
14+
import logoipsum9 from '@/assets/logoipsum9.webp'
15+
import logoipsum10 from '@/assets/logoipsum10.webp'
16+
import logoipsum11 from '@/assets/logoipsum11.webp'
17+
import logoipsum12 from '@/assets/logoipsum12.webp'
18+
import logoipsum13 from '@/assets/logoipsum13.webp'
19+
import logoipsum14 from '@/assets/logoipsum14.webp'
20+
import logoipsum15 from '@/assets/logoipsum15.webp'
21+
import { SectionHeader } from '@/components/ui/sectionheader'
22+
import { useState, useEffect } from 'react'
23+
24+
const Partners = () => {
25+
const images = [
26+
logoipsum0,
27+
logoipsum1,
28+
logoipsum2,
29+
logoipsum3,
30+
logoipsum4,
31+
logoipsum5,
32+
logoipsum6,
33+
logoipsum7,
34+
logoipsum8,
35+
logoipsum9,
36+
logoipsum10,
37+
logoipsum11,
38+
logoipsum12,
39+
logoipsum13,
40+
logoipsum14,
41+
logoipsum15,
42+
]
43+
44+
const [partners, setPartners] = useState<{ name: string }[]>([])
45+
46+
useEffect(() => {
47+
const generated = Array.from({ length: images.length }, () => ({
48+
name: faker.company.name(),
49+
}))
50+
setPartners([...generated, ...generated])
51+
}, [images.length])
52+
53+
return (
54+
<section className="w-full max-w-7xl bg-stone-100 text-stone-950 my-6 lg:my-8 overflow-hidden">
55+
<SectionHeader className="p-2 sm:p-3 lg:p-6">
56+
Our Partners
57+
</SectionHeader>
58+
<div className="flex gap-6 lg:gap-10 pb-2 sm:pb-3 lg:pb-6 animate-scroll">
59+
{[...images, ...images].map((item, index) => {
60+
return (
61+
<div
62+
className="w-fit min-w-8 sm:min-w-12 lg:min-w-16 self-center"
63+
key={index}
64+
>
65+
<div className="h-8 sm:h-12 lg:h-16 flex items-center">
66+
<Image
67+
src={item}
68+
alt={
69+
partners[index]?.name ||
70+
`Company ${index}`
71+
}
72+
title={
73+
partners[index]?.name ||
74+
`Company ${index}`
75+
}
76+
className="object-contain h-full w-auto saturate-0"
77+
/>
78+
</div>
79+
</div>
80+
)
81+
})}
82+
</div>
83+
</section>
84+
)
85+
}
86+
87+
export default Partners

0 commit comments

Comments
 (0)