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