dependency.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import type { FC } from 'react'
  2. import React from 'react'
  3. import RemoveButton from '../_base/components/remove-button'
  4. import type { CodeDependency } from './types'
  5. import DependencyPicker from './dependency-picker'
  6. type Props = {
  7. available_dependencies: CodeDependency[]
  8. dependencies: CodeDependency[]
  9. handleRemove: (index: number) => void
  10. handleChange: (index: number, dependency: CodeDependency) => void
  11. }
  12. const Dependencies: FC<Props> = ({
  13. available_dependencies, dependencies, handleRemove, handleChange,
  14. }) => {
  15. return (
  16. <div className='space-y-2'>
  17. {dependencies.map((dependency, index) => (
  18. <div className='flex items-center space-x-1' key={index}>
  19. <DependencyPicker
  20. value={dependency}
  21. available_dependencies={available_dependencies}
  22. onChange={dependency => handleChange(index, dependency)}
  23. />
  24. <RemoveButton
  25. className='!p-2 !bg-gray-100 hover:!bg-gray-200'
  26. onClick={() => handleRemove(index)}
  27. />
  28. </div>
  29. ))}
  30. </div>
  31. )
  32. }
  33. export default React.memo(Dependencies)