Files
natreex c9cf99e166 Update imports and Electron compatibility
- Removed unnecessary React imports.
- Adjusted package.json scripts for Electron integration.
- Updated components to replace Next.js-specific imports with Electron-compatible alternatives.
- Minor tsconfig.json changes for better compatibility.
2025-11-16 11:55:52 -05:00

45 lines
1.3 KiB
TypeScript

import {ChangeEvent, Dispatch} from "react";
interface NumberInputProps {
value: number;
setValue: Dispatch<React.SetStateAction<number>>;
placeholder?: string;
readOnly?: boolean;
disabled?: boolean;
}
export default function NumberInput(
{
value,
setValue,
placeholder,
readOnly = false,
disabled = false
}: NumberInputProps
) {
function handleChange(e: ChangeEvent<HTMLInputElement>) {
const newValue: number = parseInt(e.target.value);
if (!isNaN(newValue)) {
setValue(newValue);
}
}
return (
<input
type="number"
value={value}
onChange={handleChange}
className={`w-full bg-secondary/50 text-text-primary px-4 py-2.5 rounded-xl border border-secondary/50
focus:border-primary focus:ring-4 focus:ring-primary/20 focus:bg-secondary
hover:bg-secondary hover:border-secondary
placeholder:text-muted/60
outline-none transition-all duration-200
${disabled ? 'opacity-50 cursor-not-allowed' : ''}
${readOnly ? 'cursor-default' : ''}`}
placeholder={placeholder}
readOnly={readOnly}
disabled={disabled}
/>
)
}