import React, { useMemo } from 'react'
import { Checkbox } from 'antd'
import { CheckboxGroupProps } from 'antd/es/checkbox'
import { LoadingOutlined } from '@ant-design/icons'
import { run } from '@fexd/tools'
import useLocales from '../../locales'
import useRemoteOptions from '../type-select-box/useRemoteOptions'
export interface RemoteCheckboxProps extends CheckboxGroupProps {
renderOption?: (option: any, index: number) => React.ReactNode
}
export default function RemoteCheckbox({ renderOption, ...props }: RemoteCheckboxProps) {
const { loading, options: rawOptions } = useRemoteOptions(props?.options)
const { t } = useLocales(({ t }) => [t])
const options = useMemo(
() =>
rawOptions
?.map((option: any) => ({
...option,
label: run(option?.getLabel, undefined) ?? option?.label,
}))
.filter((option) => !option?.readonly),
[rawOptions, t],
)
if (loading) {
return
}
if (renderOption) {
return (
{(options ?? []).map((option: any, index: number) => renderOption(option, index))}
)
}
return
}