@@ -5,28 +5,48 @@ import styles from './styles.module.css';
55
66interface Integration {
77 name : string ;
8- icon : string ;
8+ logo : string ;
99 description : string ;
1010}
1111
1212const integrations : Integration [ ] = [
1313 {
1414 name : 'GitHub' ,
15- icon : '⬡ ' ,
15+ logo : '/img/github logo.webp ' ,
1616 description : 'Issues, PRs & repository files' ,
1717 } ,
1818 {
1919 name : 'Linear' ,
20- icon : '◇ ' ,
20+ logo : '/img/linear.jpeg ' ,
2121 description : 'Project & issue tracking' ,
2222 } ,
2323 {
2424 name : 'Notion' ,
25- icon : '▣ ' ,
25+ logo : '/img/notion logo.png ' ,
2626 description : 'Pages & databases' ,
2727 } ,
2828] ;
2929
30+ function IntegrationCard ( { integration, index } : { integration : Integration ; index : number } ) : React . ReactElement {
31+ const logoSrc = useBaseUrl ( integration . logo ) ;
32+ return (
33+ < div
34+ className = { `${ styles . card } ${ styles . animateIn } ` }
35+ style = { { transitionDelay : `${ 0.2 + index * 0.1 } s` } }
36+ >
37+ < img
38+ src = { logoSrc }
39+ alt = { integration . name }
40+ className = { styles . cardLogo }
41+ />
42+ < div className = { styles . cardInfo } >
43+ < h3 className = { styles . cardName } > { integration . name } </ h3 >
44+ < p className = { styles . cardDescription } > { integration . description } </ p >
45+ </ div >
46+ </ div >
47+ ) ;
48+ }
49+
3050export default function IntegrationShowcase ( ) : React . ReactElement {
3151 const [ isVisible , setIsVisible ] = useState ( false ) ;
3252 const sectionRef = useRef < HTMLElement > ( null ) ;
@@ -63,17 +83,7 @@ export default function IntegrationShowcase(): React.ReactElement {
6383
6484 < div className = { styles . grid } >
6585 { integrations . map ( ( integration , index ) => (
66- < div
67- key = { integration . name }
68- className = { `${ styles . card } ${ styles . animateIn } ` }
69- style = { { transitionDelay : `${ 0.2 + index * 0.1 } s` } }
70- >
71- < div className = { styles . cardIcon } > { integration . icon } </ div >
72- < div className = { styles . cardInfo } >
73- < h3 className = { styles . cardName } > { integration . name } </ h3 >
74- < p className = { styles . cardDescription } > { integration . description } </ p >
75- </ div >
76- </ div >
86+ < IntegrationCard key = { integration . name } integration = { integration } index = { index } />
7787 ) ) }
7888 </ div >
7989
0 commit comments