import state, { useSelector } from "state"
import styled from "styles"
import {
  ControlType,
  NumberCodeControl,
  SelectCodeControl,
  TextCodeControl,
  VectorCodeControl,
} from "types"
export default function Control({ id }: { id: string }) {
  const control = useSelector((s) => s.data.codeControls[id])
  if (!control) return null
  return (
    <>
      
      {control.type === ControlType.Number ? (
        
      ) : control.type === ControlType.Vector ? (
        
      ) : control.type === ControlType.Text ? (
        
      ) : control.type === ControlType.Select ? (
        
      ) : null}
    >
  )
}
function NumberControl({ id, min, max, step, value }: NumberCodeControl) {
  return (
    
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: Number(e.currentTarget.value),
          })
        }
      />
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: Number(e.currentTarget.value),
          })
        }
      />
    
  )
}
function VectorControl({ id, value, isNormalized }: VectorCodeControl) {
  return (
    
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: [Number(e.currentTarget.value), value[1]],
          })
        }
      />
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: [Number(e.currentTarget.value), value[1]],
          })
        }
      />
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: [value[0], Number(e.currentTarget.value)],
          })
        }
      />
      
          state.send("CHANGED_CODE_CONTROL", {
            [id]: [value[0], Number(e.currentTarget.value)],
          })
        }
      />
    
  )
}
function TextControl({}: TextCodeControl) {
  return <>>
}
function SelectControl({}: SelectCodeControl) {
  return <>>
}
const Inputs = styled("div", {
  display: "flex",
  gap: "8px",
  height: "100%",
  "& input": {
    font: "$ui",
    width: "64px",
    fontSize: "$1",
    border: "1px solid $inputBorder",
    backgroundColor: "$input",
    color: "$text",
    height: "100%",
    padding: "0px 6px",
  },
  "& input[type='range']": {
    padding: 0,
    flexGrow: 2,
  },
})