Skip to content

Commit 09982d0

Browse files
committed
refactor: Standardize disabled prop naming and add slider disabled style
Unifies CustomSlider to accept only 'disabled' (removes disable/isDisabled). Cleans up commented code and imports in CustomSelect and CustomToggle. Adds visual disabled state (opacity + pointer-events) to Slider component. Fixes Turing Machine midCell ref sync in shift handlers.
1 parent 6217de2 commit 09982d0

5 files changed

Lines changed: 10 additions & 25 deletions

File tree

src/app/turing-machine/page.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,14 @@ export default function TuringMachine() {
3535
setCellStart(s => s + 1);
3636
setCellEnd(e => e + 1);
3737
setMidCell(m => m + 1);
38+
midCellRef.current += 1;
3839
};
3940

4041
const handleRightShift = () => {
4142
setCellStart(s => s - 1);
4243
setCellEnd(e => e - 1);
4344
setMidCell(m => m - 1);
45+
midCellRef.current -= 1;
4446
};
4547

4648
const handleSet = () => {

src/components/custom-select.jsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as React from "react"
1+
import { useState } from "react"
22
import {
33
Select,
44
SelectContent,
@@ -7,21 +7,17 @@ import {
77
SelectValue,
88
} from "@/components/ui/select"
99

10-
11-
1210
export function CustomSelect({ title, options, onChange, disabled }) {
13-
const [value, setValue] = React.useState(0)
11+
const [value, setValue] = useState(0)
1412
const onChangeCover = (value) => {
1513
setValue(value)
1614
onChange(value)
1715
}
1816
return (
1917
<div className="space-y-2">
20-
{/* <div className="flex items-center space-x-2"> */}
2118
<label className="text-sm font-medium whitespace-nowrap">{title}</label>
2219
<Select value={value} onValueChange={onChangeCover} disabled={disabled}>
2320
<SelectTrigger className="w-full">
24-
{/* <SelectTrigger className="w-[180px]"> */}
2521
<SelectValue />
2622
</SelectTrigger>
2723
<SelectContent>
@@ -35,4 +31,3 @@ export function CustomSelect({ title, options, onChange, disabled }) {
3531
</div>
3632
)
3733
}
38-

src/components/custom-slider.jsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
import * as React from "react"
1+
import { useState } from "react"
22
import { Slider } from "@/components/ui/slider"
33

4-
5-
export function CustomSlider({ title, onChange, min, max, step, defaultValue, disable, isDisabled, disabled: disabledProp }) {
6-
const disabled = disable || isDisabled || disabledProp || false;
7-
const [value, setValue] = React.useState(defaultValue)
4+
export function CustomSlider({ title, onChange, min, max, step, defaultValue, disabled }) {
5+
const [value, setValue] = useState(defaultValue)
86
const onChangeCover = (values) => {
97
const val = values[0]
108
setValue(val)
119
onChange(val)
1210
}
1311

14-
1512
return (
1613
<div className="space-y-2">
17-
{/* <div className="flex items-center space-x-2"> */}
1814
<label className="text-sm font-medium whitespace-nowrap">{title}</label>
1915
<Slider
2016
value={[value]}
@@ -29,4 +25,3 @@ export function CustomSlider({ title, onChange, min, max, step, defaultValue, di
2925
</div>
3026
)
3127
}
32-

src/components/custom-toggle.jsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
1-
import * as React from "react"
1+
import { useState } from "react"
22
import { Switch } from "@/components/ui/switch"
33

4-
// interface CustomToggleProps {
5-
// title: string
6-
// checked: boolean
7-
// onCheckedChange: (checked: boolean) => void
8-
// }
9-
104
export function CustomToggle({ title, onCheckedChange, disabled }) {
11-
const [checked, setChecked] = React.useState(false)
5+
const [checked, setChecked] = useState(false)
126
const onCheckedChangeCover = (checked) => {
137
setChecked(checked)
148
onCheckedChange(checked)
@@ -25,4 +19,3 @@ export function CustomToggle({ title, onCheckedChange, disabled }) {
2519
</div>
2620
)
2721
}
28-

src/components/ui/slider.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { cn } from "@/lib/utils"
88
const Slider = React.forwardRef(({ className, ...props }, ref) => (
99
<SliderPrimitive.Root
1010
ref={ref}
11-
className={cn("relative flex w-full touch-none select-none items-center", className)}
11+
className={cn("relative flex w-full touch-none select-none items-center data-[disabled]:opacity-50 data-[disabled]:pointer-events-none", className)}
1212
{...props}>
1313
<SliderPrimitive.Track
1414
className="relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20">

0 commit comments

Comments
 (0)