22
33import { useState } from 'react' ;
44
5- import { useRenderTracker } from './ReactTracker' ;
6-
75export function TestComponentWithState ( ) {
8- const ref = useRenderTracker ( 'TestComponentWithState' ) ;
96 const [ accent , setAccent ] = useState < 'violet' | 'emerald' | 'amber' > ( 'violet' ) ;
107 const [ theme , setTheme ] = useState < 'light' | 'dark' > ( 'light' ) ;
118 const [ menuOpen , setMenuOpen ] = useState < boolean > ( false ) ;
129
1310 return (
1411 < div
15- ref = { ref }
1612 className = { `flex h-full w-full flex-col justify-between space-y-4 py-8 **:transition-all **:duration-300 ${ theme === 'dark' ? 'bg-gray-900' : 'bg-gray-100' } ` } >
1713 < Header theme = { theme } />
1814 < ThemeSwitcher
@@ -41,12 +37,8 @@ export function TestComponentWithState() {
4137
4238// Header Component
4339function Header ( { theme } : { theme : 'light' | 'dark' } ) {
44- const ref = useRenderTracker ( 'Header' ) ;
45-
4640 return (
47- < div
48- ref = { ref }
49- className = "space-y-2 text-center" >
41+ < div className = "space-y-2 text-center" >
5042 < h1 className = { `text-3xl font-bold ${ theme === 'light' ? 'text-gray-900' : 'text-white' } ` } >
5143 React State < span className = "max-[450px]:hidden" > Management</ span >
5244 </ h1 >
@@ -61,12 +53,8 @@ function Header({ theme }: { theme: 'light' | 'dark' }) {
6153
6254// Theme Switcher Component
6355function ThemeSwitcher ( { theme, setTheme } : { theme : 'light' | 'dark' ; setTheme : ( t : 'light' | 'dark' ) => void } ) {
64- const ref = useRenderTracker ( 'ThemeSwitcher' ) ;
65-
6656 return (
67- < div
68- ref = { ref }
69- className = "flex justify-center gap-2" >
57+ < div className = "flex justify-center gap-2" >
7058 < button
7159 aria-label = "button"
7260 onClick = { ( ) => setTheme ( 'light' ) }
@@ -93,12 +81,8 @@ function AccentPicker({
9381 setAccent : ( a : 'violet' | 'emerald' | 'amber' ) => void ;
9482 theme : 'light' | 'dark' ;
9583} ) {
96- const ref = useRenderTracker ( 'AccentPicker' ) ;
97-
9884 return (
99- < div
100- ref = { ref }
101- className = "space-y-4 pb-2" >
85+ < div className = "space-y-4 pb-2" >
10286 < h2 className = { `text-center text-lg font-semibold ${ theme === 'light' ? 'text-gray-800' : 'text-gray-200' } ` } > Choose Accent</ h2 >
10387 < div className = "flex justify-center gap-3" >
10488 < button
@@ -133,11 +117,8 @@ function InteractiveCard({
133117 setMenuOpen : ( open : boolean ) => void ;
134118 accent : 'violet' | 'emerald' | 'amber' ;
135119} ) {
136- const ref = useRenderTracker ( 'InteractiveCard' ) ;
137-
138120 return (
139121 < div
140- ref = { ref }
141122 className = { `relative mx-auto max-w-md overflow-hidden rounded-2xl border border-gray-200 shadow-lg transition-all duration-0! ${ theme === 'light' ? 'bg-gray-50 shadow-gray-200' : 'bg-gray-700 shadow-black/50' } ` } >
142123 < div className = "space-y-4 p-6" >
143124 < h3 className = { `text-xl font-semibold ${ theme === 'light' ? 'text-gray-900' : 'text-white' } ` } > Open Menu Demo</ h3 >
@@ -162,12 +143,8 @@ function InteractiveCard({
162143
163144// State Display Component
164145function StateDisplay ( { theme, accent, menuOpen } : { theme : 'light' | 'dark' ; accent : 'violet' | 'emerald' | 'amber' ; menuOpen : boolean } ) {
165- const ref = useRenderTracker ( 'StateDisplay' ) ;
166-
167146 return (
168- < div
169- ref = { ref }
170- className = "max-[450px]:hidden" >
147+ < div className = "max-[450px]:hidden" >
171148 < div
172149 className = { `mt-5 **:text-nowrap flex justify-center gap-4 space-y-1 text-center font-mono text-sm capitalize ${ accent === 'violet' ? 'text-violet-500' : accent === 'emerald' ? 'text-emerald-500' : 'text-amber-500' } ` } >
173150 < div className = "flex gap-1" > theme: { theme } </ div >
0 commit comments