QuantIQ / frontend /src /components /LogoLoop.tsx
Karan6124's picture
style: fix infinite loop gap in LogoLoop marquee component
b74dfb6
Raw
History Blame Contribute Delete
1.22 kB
import type { ReactNode } from 'react';
import './LogoLoop.css';
interface LogoItem {
node: ReactNode;
title?: string;
href?: string;
}
interface LogoLoopProps {
logos: LogoItem[];
durationSeconds?: number;
logoSize?: number;
gap?: number;
}
export default function LogoLoop({ logos, durationSeconds = 20, logoSize = 48, gap = 64 }: LogoLoopProps) {
const renderSet = (key: string, hidden: boolean) => (
<div className="logoloop-set" aria-hidden={hidden} key={key}>
{logos.map((item, i) => (
<div className="logoloop-item" key={i} style={{ fontSize: `${logoSize}px`, marginRight: `${gap}px` }}>
{item.href ? (
<a href={item.href} target="_blank" rel="noopener noreferrer" title={item.title}>
{item.node}
</a>
) : (
<span title={item.title}>{item.node}</span>
)}
</div>
))}
</div>
);
return (
<div className="logoloop-wrapper">
<div className="logoloop-track" style={{ animationDuration: `${durationSeconds}s` }}>
{renderSet('a', false)}
{renderSet('b', true)}
{renderSet('c', true)}
{renderSet('d', true)}
</div>
</div>
);
}