'use client'; import { useVisualization } from '@/lib/visualizations/use-visualization'; import type { AlgorithmDefinition } from '@/lib/visualizations/types'; import { VisualizationContainer } from '../core/visualization-container'; import { ArrayView } from '../data-structures/array-view'; import { GridView } from '../data-structures/grid-view'; import { CalculationBubble } from '../primitives/calculation-bubble'; interface CoinChangeVisualizationProps { algorithm: AlgorithmDefinition; className?: string; } export function CoinChangeVisualization({ algorithm, className, }: CoinChangeVisualizationProps) { const { currentStep, currentStepIndex, totalSteps, playback, controls, currentPhase, progress, } = useVisualization(algorithm); const { dataState } = currentStep; const coinsArray = dataState.arrays.find((a) => a.id === 'coins') ?? null; const dpGrid = dataState.grids?.[0] ?? null; const calculation = dataState.calculations[0] ?? null; const gridPointers = dataState.gridPointers ?? []; return (
{/* Calculation bubble */}
{/* Coins array */} {coinsArray && ( )} {/* DP Table grid */} {dpGrid && ( )}
); }