diff --git a/src/components/AnimatedBackground.tsx b/src/components/AnimatedBackground.tsx new file mode 100644 index 0000000..4695887 --- /dev/null +++ b/src/components/AnimatedBackground.tsx @@ -0,0 +1,190 @@ +import { useQuery } from '@tanstack/react-query' +import { brandingApi } from '../api/branding' + +export default function AnimatedBackground() { + const { data: animationSettings } = useQuery({ + queryKey: ['animation-enabled'], + queryFn: brandingApi.getAnimationEnabled, + staleTime: 1000 * 60 * 5, // 5 minutes + retry: false, + }) + + // Don't render if animation is disabled + if (animationSettings && !animationSettings.enabled) { + return null + } + + return ( + <> + {/* SVG Filter for glow effect */} + + + + + + + + + + + {/* Animated wave gradients */} +
+
+
+
+
+
+ + + + ) +} diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx index a6263e9..8ab2c62 100644 --- a/src/components/layout/Layout.tsx +++ b/src/components/layout/Layout.tsx @@ -6,6 +6,7 @@ import { useAuthStore } from '../../store/auth' import LanguageSwitcher from '../LanguageSwitcher' import PromoDiscountBadge from '../PromoDiscountBadge' import TicketNotificationBell from '../TicketNotificationBell' +import AnimatedBackground from '../AnimatedBackground' import { contestsApi } from '../../api/contests' import { pollsApi } from '../../api/polls' import { brandingApi } from '../../api/branding' @@ -270,6 +271,9 @@ export default function Layout({ children }: LayoutProps) { return (
+ {/* Animated Background */} + + {/* Header */}