import { Fragment, FC } from "react"; import { View, ViewStyle } from "react-native"; import { IconBackground } from "./IconBackground"; interface StorageStackIconProps { size?: number; color?: string; glowColor?: string; colorPreset?: "yellow" | "cyan" | "green" | "purple" | "pink" | "orange"; variant?: "circuit" | "matrix" | "glitch" | "nodes" | "grid"; noBackground?: boolean; } const ColorPresets = { yellow: { color: "#FFD700", glow: "#FFD700" }, cyan: { color: "#00D4FF", glow: "#00D4FF" }, green: { color: "#00FF88", glow: "#00FF88" }, purple: { color: "#9945FF", glow: "#9945FF" }, pink: { color: "#FF45FF", glow: "#FF45FF" }, orange: { color: "#FF8800", glow: "#FF8800" }, }; // Simplified cylinder data const CYLINDERS = [ { y: 0.25, opacity: 0.9 }, { y: 0.45, opacity: 0.8 }, { y: 0.65, opacity: 0.7 }, ]; export const StorageStackIcon: FC = ({ size = 24, color, glowColor, colorPreset = "yellow", variant = "nodes", noBackground = true, }) => { const scale = noBackground ? size / 24 : size / 26; const preset = ColorPresets[colorPreset as keyof typeof ColorPresets] || ColorPresets.yellow; const activeColor = color || preset.color; const activeGlow = glowColor || preset.glow; const renderCylinder = (y: number, opacity: number, index: number) => ( {/* Single shadow/glow per cylinder */} {/* Main cylinder body */} {/* Top surface highlight */} {/* Edge glow */} ); const iconContent = ( <> {/* Render all cylinders with loop */} {CYLINDERS.map(({ y, opacity }, index) => renderCylinder(y, opacity, index), )} {/* Simplified connection lines */} {[0.35, 0.55].map((y, i) => ( ))} {/* Minimal data dots - only 3 strategic ones */} {[0.25, 0.45, 0.65].map((y, i) => ( ))} ); if (noBackground) { return ( {iconContent} ); } return ( {iconContent} ); };