import React, { useState, useCallback } from "react"
import {
RenderCellProps,
RenderColHeaderProps,
RenderRowHeaderProps,
GridComponent,
RenderCellEditorProps,
SaveEditFunc
} from "./GridComponent"
import ReactSelect from "react-select"
export const GridComponentDemo = () => {
const [colWidths, setColWidths] = useState([100, 200, 300])
const renderCell = (props: RenderCellProps) => {
return
{`x${props.row}:${props.col}`}
}
const renderColHeader = (props: RenderColHeaderProps) => {
return {`x${props.col}`}
}
const renderRowHeader = (props: RenderRowHeaderProps) => {
return (
)
}
const renderCellEditor = (props: RenderCellEditorProps) => {
return
}
return (
"X"}
rowHeaderExtraHeight={20}
renderRowHeaderExtra={() => "X"}
canEdit={() => true}
/>
)
}
const Editor = (props: { width: number; setSaveEdit: (saveEditFunc: SaveEditFunc) => void }) => {
const [value, setValue] = useState(null)
props.setSaveEdit(() => {
//alert(value)
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(true)
}, 10000)
})
})
/** Focus on select */
const selectRef = useCallback((node: ReactSelect | null) => {
if (node) {
setTimeout(() => {
node.focus()
}, 0)
}
}, [])
return (
{
console.log("onChange")
setValue(v)
}}
onBlur={() => {
console.log("onBlur")
}}
isMulti={true}
ref={selectRef}
/>
)
}