'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 { StackView } from '../data-structures/stack-view'; interface MonotonicStackVisualizationProps { algorithm: AlgorithmDefinition; className?: string; } export function MonotonicStackVisualization({ algorithm, className, }: MonotonicStackVisualizationProps) { const { currentStep, currentStepIndex, totalSteps, playback, controls, currentPhase, progress, } = useVisualization(algorithm); const { dataState } = currentStep; // Input array with i pointer const inputArray = dataState.arrays.find((a) => a.id === 'input'); // Result array const resultArray = dataState.arrays.find((a) => a.id === 'result'); // Stack const stack = dataState.stacks?.[0]; // Filter pointers for the input array (only show 'i' pointer on input) const inputPointers = dataState.pointers.filter((p) => p.id === 'i'); return (
{/* Input array with i pointer */} {inputArray && ( )}
{/* Stack (left side) */} {stack && } {/* Result array (right side) */} {resultArray && ( )}
); }