add-dataset.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use client'
  2. import { useBoolean } from 'ahooks'
  3. import type { FC } from 'react'
  4. import React, { useCallback } from 'react'
  5. import AddButton from '@/app/components/base/button/add-button'
  6. import SelectDataset from '@/app/components/app/configuration/dataset-config/select-dataset'
  7. import type { DataSet } from '@/models/datasets'
  8. type Props = {
  9. selectedIds: string[]
  10. onChange: (dataSets: DataSet[]) => void
  11. }
  12. const AddDataset: FC<Props> = ({
  13. selectedIds,
  14. onChange,
  15. }) => {
  16. const [isShowModal, {
  17. setTrue: showModal,
  18. setFalse: hideModal,
  19. }] = useBoolean(false)
  20. const handleSelect = useCallback((datasets: DataSet[]) => {
  21. onChange(datasets)
  22. hideModal()
  23. }, [onChange, hideModal])
  24. return (
  25. <div>
  26. <AddButton onClick={showModal} />
  27. {isShowModal && (
  28. <SelectDataset
  29. isShow={isShowModal}
  30. onClose={hideModal}
  31. selectedIds={selectedIds}
  32. onSelect={handleSelect}
  33. />
  34. )}
  35. </div>
  36. )
  37. }
  38. export default React.memo(AddDataset)