diff --git a/frontend/src/pages/DPVisualizer.jsx b/frontend/src/pages/DPVisualizer.jsx index 08e68b9..e540ea0 100644 --- a/frontend/src/pages/DPVisualizer.jsx +++ b/frontend/src/pages/DPVisualizer.jsx @@ -1,28 +1,109 @@ import React, { useState } from 'react'; -import { useTheme } from '../contexts/ThemeContext'; +import { Play, RotateCcw, Puzzle, Hash } from 'lucide-react'; const DPVisualizer = () => { - const { classes, getThemedGradient } = useTheme(); - const [algorithm, setAlgorithm] = useState('lcs'); - + const [selectedProblem, setSelectedProblem] = useState('fibonacci'); + const [inputValue, setInputValue] = useState(8); // Example: n for Fibonacci + + const handleVisualize = () => console.log('Visualize clicked!', { selectedProblem, inputValue }); + const handleReset = () => { + setInputValue(0); + console.log('Reset clicked!'); + }; + return ( -
-
-
-

- Dynamic Programming Visualizer -

-

- Visualize dynamic programming algorithms and optimization problems -

-
+
+ {/* Spacer div */} +
+ + {/* 1. Gradient Header Card */} +
+

+ Dynamic Programming Visualizer +

+

+ Visualize dynamic programming algorithms and optimization problems. +

+
+ +
-
-

DP visualizer coming soon...

+ {/* 2. Left Column: Inputs & Controls Card */} +
+
+

+ + Problem & Controls +

+ + {/* Problem Selection */} +
+ + +
+ + {/* Conditional Inputs based on selected problem */} +
+ + setInputValue(Number(e.target.value))} + className="w-full p-3 bg-slate-100 text-slate-800 placeholder-slate-400 rounded-lg border border-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition" + placeholder="Enter a number..." + /> +
+ + {/* Buttons */} +
+ + +
+
+ + {/* 3. Right Column: Display Area Card */} +
+
+

+ + Visualization +

+
+ The visualization area for the {selectedProblem} problem will appear here. +
+
+
+
); }; -export default DPVisualizer; +export default DPVisualizer; \ No newline at end of file