fix:memperbaiki input kernel

This commit is contained in:
muhamad fais aizat 2025-05-08 11:27:28 +07:00
parent e1135dd91c
commit 4d6d9d27ee
1 changed files with 34 additions and 24 deletions

View File

@ -11,10 +11,17 @@ const InputKernel = ({ setShowProses, dataHarga, result, setResult }) => {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [selectedKernel, setSelectedKernel] = useState(""); const [selectedKernel, setSelectedKernel] = useState("");
const [params, setParams] = useState({ C: "0", epsilon: "0", gamma: "0", degree: "0", coef0: "0" }); const [params, setParams] = useState({ C: "0", epsilon: "0", gamma: "0", degree: "0", coef0: "0" });
const kernelParamsMap = {
linear: ['C', 'epsilon'],
rbf: ['C', 'epsilon', 'gamma'],
sigmoid: ['C', 'epsilon', 'gamma', 'coef0'],
poly: ['C', 'epsilon', 'gamma', 'coef0', 'degree']
};
const handleCheckboxChange = (kernel) => { const handleCheckboxChange = (kernel) => {
setSelectedKernel(kernel); setSelectedKernel(kernel);
setParams({ C: "0", epsilon: "0", gamma: "0", degree: "0", coef0: "0" });
}; };
const handleChange = (e) => { const handleChange = (e) => {
@ -122,7 +129,9 @@ const InputKernel = ({ setShowProses, dataHarga, result, setResult }) => {
</div> </div>
<div className="xl:w-[70%] md:w-full w-full px-5 py-2"> <div className="xl:w-[70%] md:w-full w-full px-5 py-2">
<div className="grid grid-cols-auto-fit md:grid-cols-2 xl:grid-cols-3 gap-4"> <div className="grid grid-cols-auto-fit md:grid-cols-2 xl:grid-cols-3 gap-4">
{Object.keys(params).map((key) => ( {Object.keys(params).map((key) => {
const isEnabled = kernelParamsMap[selectedKernel]?.includes(key);
return (
<div key={key} className="grid w-full items-center gap-1.5"> <div key={key} className="grid w-full items-center gap-1.5">
<Label>Masukan nilai {key}</Label> <Label>Masukan nilai {key}</Label>
<Input <Input
@ -131,12 +140,13 @@ const InputKernel = ({ setShowProses, dataHarga, result, setResult }) => {
name={key} name={key}
value={params[key]} value={params[key]}
onChange={handleChange} onChange={handleChange}
style={{ disabled={!isEnabled}
color: params[key] === 0 || params[key] === "0" ? "gray" : "black" className={!isEnabled ? 'opacity-50 cursor-not-allowed' : ''}
}}
/> />
</div> </div>
))} );
})}
</div> </div>
</div> </div>
</div> </div>