ngsplanner/src/skilltree/skillTreeSelector.js

26 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-08-14 13:00:30 +09:00
import { useEffect, useState } from 'react'
function SkillTreeSelector(p) {
2021-08-19 06:53:56 +00:00
const { GetData } = p
2021-08-14 14:18:08 +09:00
const [skillList,setSkillList] = useState([])
2021-08-14 13:00:30 +09:00
useEffect(()=>{
2021-08-19 06:53:56 +00:00
setSkillList(GetData("class_skill"))
},[p.cl,GetData])
2021-08-14 13:00:30 +09:00
2021-08-14 14:18:08 +09:00
return <>
2021-08-17 22:42:25 +09:00
<select onChange={(f)=>{p.callback(f.currentTarget.value,Number(p.x),Number(p.y))}} style={{position:"absolute",left:p.ADJUSTMENT[0]+(p.x*p.gridSizeX+p.padX+p.gridSizeX/2),top:p.ADJUSTMENT[1]+((p.y/2)*p.gridSizeY+(p.y/2-1)*p.halflineheight+p.padY+(p.y===0?p.halflineheight:p.gridSizeY)/2)}} value={p.defaultValue}>
2021-08-14 14:18:08 +09:00
{[' ','─','│','□','┌','└','┐','┘','┬','┴','├','┤','┼'].map((ch)=>
<option value={ch} key={ch}>{ch}</option>)
2021-08-14 14:18:08 +09:00
}
</select>
2021-08-17 22:42:25 +09:00
{p.defaultValue==='□'&&<select style={{width:"64px",position:"absolute",left:p.ADJUSTMENT[0]+(p.x*p.gridSizeX+p.padX+p.gridSizeX/2),top:p.ADJUSTMENT[1]+((p.y/2)*p.gridSizeY+(p.y/2-1)*p.halflineheight+p.padY+(p.y===0?p.halflineheight:p.gridSizeY)/2)+28}} onChange={(f)=>{p.skillCallback(p.x,p.y,f.currentTarget.value)}} value={p.skill.split(",")[2]}>
{["",...Object.keys((skillList)).filter((skill)=>skillList[skill].class_id===p.cl)].map((skill)=><option key={skill} value={(skillList[skill])?skillList[skill].id:""}>{(skillList[skill])?skillList[skill].name:""}</option>)}
2021-08-14 14:18:08 +09:00
</select>}
</>
2021-08-14 13:00:30 +09:00
}
export {SkillTreeSelector}