You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

provider-detail.tsx 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use client'
  2. import React from 'react'
  3. import type { FC } from 'react'
  4. import Drawer from '@/app/components/base/drawer'
  5. import MCPDetailContent from './content'
  6. import type { ToolWithProvider } from '../../../workflow/types'
  7. import cn from '@/utils/classnames'
  8. type Props = {
  9. detail?: ToolWithProvider
  10. onUpdate: () => void
  11. onHide: () => void
  12. isTriggerAuthorize: boolean
  13. onFirstCreate: () => void
  14. }
  15. const MCPDetailPanel: FC<Props> = ({
  16. detail,
  17. onUpdate,
  18. onHide,
  19. isTriggerAuthorize,
  20. onFirstCreate,
  21. }) => {
  22. const handleUpdate = (isDelete = false) => {
  23. if (isDelete)
  24. onHide()
  25. onUpdate()
  26. }
  27. if (!detail)
  28. return null
  29. return (
  30. <Drawer
  31. isOpen={!!detail}
  32. clickOutsideNotOpen={false}
  33. onClose={onHide}
  34. footer={null}
  35. mask={false}
  36. positionCenter={false}
  37. panelClassName={cn('mb-2 mr-2 mt-[64px] !w-[420px] !max-w-[420px] justify-start rounded-2xl border-[0.5px] border-components-panel-border !bg-components-panel-bg !p-0 shadow-xl')}
  38. >
  39. {detail && (
  40. <MCPDetailContent
  41. detail={detail}
  42. onHide={onHide}
  43. onUpdate={handleUpdate}
  44. isTriggerAuthorize={isTriggerAuthorize}
  45. onFirstCreate={onFirstCreate}
  46. />
  47. )}
  48. </Drawer>
  49. )
  50. }
  51. export default MCPDetailPanel