content.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Copy } from 'lucide-react'
  2. import { useState } from 'react'
  3. import { Button, copyToClipboard } from 'ui'
  4. import type { StepContentProps } from '@/components/interfaces/ConnectSheet/Connect.types'
  5. const SKILLS_COMMAND = 'npx skills add briven/agent-skills'
  6. function SkillsInstallContent(_props: StepContentProps) {
  7. const [copyLabel, setCopyLabel] = useState('Copy')
  8. const handleCopy = () => {
  9. copyToClipboard(SKILLS_COMMAND, () => {
  10. setCopyLabel('Copied')
  11. setTimeout(() => setCopyLabel('Copy'), 2000)
  12. })
  13. }
  14. return (
  15. <div className="relative group">
  16. <div className="bg-surface-75 border rounded-lg p-3 pr-20 font-mono text-sm text-foreground-light overflow-x-auto">
  17. <code>{SKILLS_COMMAND}</code>
  18. </div>
  19. <div className="absolute right-2 top-1/2 -translate-y-1/2">
  20. <Button
  21. type="default"
  22. size="tiny"
  23. icon={<Copy size={14} />}
  24. onClick={handleCopy}
  25. className="opacity-0 group-hover:opacity-100 transition-opacity"
  26. >
  27. {copyLabel}
  28. </Button>
  29. </div>
  30. </div>
  31. )
  32. }
  33. export default SkillsInstallContent