import { FC } from "react"; import { View, ViewStyle } from "react-native"; import { IconBackground } from "./IconBackground"; interface ReactQueryIconProps { size?: number; color?: string; glowColor?: string; colorPreset?: "red" | "orange" | "yellow" | "purple" | "cyan" | "pink"; variant?: "circuit" | "matrix" | "glitch" | "nodes" | "grid"; noBackground?: boolean; } const ColorPresets = { red: { color: "#FF3366", glow: "#FF3366" }, orange: { color: "#FF8800", glow: "#FF8800" }, yellow: { color: "#FFD700", glow: "#FFD700" }, purple: { color: "#9945FF", glow: "#9945FF" }, cyan: { color: "#00D4FF", glow: "#00D4FF" }, pink: { color: "#FF45FF", glow: "#FF45FF" }, }; // Simplified orbital dots const ORBITAL_DOTS = [ { x: 0.08, y: 0.5 }, { x: 0.92, y: 0.5 }, { x: 0.5, y: 0.2 }, { x: 0.5, y: 0.8 }, ]; export const ReactQueryIcon: FC = ({ size = 24, color, glowColor, colorPreset = "red", variant = "circuit", noBackground = true, }) => { const scale = noBackground ? size / 24 : size / 60; const preset = ColorPresets[colorPreset as keyof typeof ColorPresets] || ColorPresets.red; const activeColor = color || preset.color; const activeGlow = glowColor || preset.glow; // Simplified hexagon using loop const renderHexagon = () => { const hexWidth = 8 * scale; const hexHeight = 2.5 * scale; const hexLeft = size / 2 - hexWidth / 2; const hexTop = size / 2 - hexHeight / 2; const rotations = [0, 60, -60]; return ( <> {rotations.map((rotation, i) => ( ))} {/* Single hexagon glow */} ); }; // Simplified orbital lines using loop const renderOrbitalLines = () => { const lineLength = 18 * scale; const lineThickness = 2 * scale; const orbitRadius = lineThickness / 2; const rotations = [0, 60, -60]; return ( <> {rotations.map((rotation, i) => ( ))} {/* Simplified dots */} {ORBITAL_DOTS.map((dot, i) => ( ))} ); }; const iconContent = ( <> {renderOrbitalLines()} {renderHexagon()} {/* Single outer ring glow */} ); if (noBackground) { return ( {iconContent} ); } return ( {iconContent} ); };