'use client'; import { useEffect, useRef, useState } from 'react'; import clsx from 'clsx'; import { convertToRgba } from '@/lib/utils'; export const LandingConicCtaBg = ({ className, variant = 'default', }: { className?: string; variant?: 'default' | 'primary' | 'secondary'; }) => { const domRef = useRef(null); const [bgColors, setBgColors] = useState({ from: 'rgba(177, 177, 177, 0.1)', to: 'rgba(177, 177, 177, 0.5)', viaLight: 'rgba(12, 10, 9, 0.8)', viaDark: 'rgba(12, 10, 9, 0.8)', }); useEffect(() => { if (!domRef.current) return; const computedStyle = getComputedStyle(domRef.current); const colors = { from: 'rgba(177, 177, 177, 0.1)', to: 'rgba(177, 177, 177, 0.5)', viaLight: 'rgba(12, 10, 9, 0.8)', viaDark: 'rgba(12, 10, 9, 0.8)', }; switch (variant) { case 'primary': { const primaryDarkColor = computedStyle .getPropertyValue('--primary-darker') .trim(); const primaryLightColor = computedStyle .getPropertyValue('--primary-lighter') .trim(); colors.from = convertToRgba({ color: primaryLightColor, opacity: 0.3 }); colors.to = convertToRgba({ color: primaryDarkColor, opacity: 0.8 }); colors.viaLight = convertToRgba({ color: primaryDarkColor, opacity: 0.9, }); colors.viaDark = convertToRgba({ color: primaryDarkColor, opacity: 0.9, }); break; } case 'secondary': { const secondaryDarkColor = computedStyle .getPropertyValue('--secondary-darker') .trim(); const secondaryLightColor = computedStyle .getPropertyValue('--secondary-lighter') .trim(); colors.from = convertToRgba({ color: secondaryLightColor, opacity: 0.3, }); colors.to = convertToRgba({ color: secondaryDarkColor, opacity: 0.8 }); colors.viaLight = convertToRgba({ color: secondaryDarkColor, opacity: 0.9, }); colors.viaDark = convertToRgba({ color: secondaryDarkColor, opacity: 0.9, }); break; } } setBgColors(colors); }, [variant]); return (
); };