11import { Link } from 'react-router-dom'
2+ import { useState } from 'react'
23import './Install.css'
34
5+ const CodeBlock = ( { code, id, onCopy, copiedCommand } ) => (
6+ < div className = "code-block-wrapper" >
7+ < pre > < code > { code } </ code > </ pre >
8+ < button
9+ className = { `copy-btn ${ copiedCommand === id ? 'copied' : '' } ` }
10+ onClick = { ( ) => onCopy ( code , id ) }
11+ aria-label = "Copiar comando"
12+ >
13+ { copiedCommand === id ? '✓' : '📋' }
14+ </ button >
15+ </ div >
16+ )
17+
418const Install = ( ) => {
19+ const [ copiedCommand , setCopiedCommand ] = useState ( '' )
20+
21+ const copyToClipboard = ( text , id ) => {
22+ navigator . clipboard . writeText ( text )
23+ . then ( ( ) => {
24+ setCopiedCommand ( id )
25+ setTimeout ( ( ) => setCopiedCommand ( '' ) , 2000 )
26+ } )
27+ . catch ( ( err ) => {
28+ console . error ( 'Failed to copy:' , err )
29+ } )
30+ }
31+
532 return (
633 < div className = "install" >
734 < div className = "container" >
@@ -26,17 +53,17 @@ const Install = () => {
2653
2754 < div className = "install-step" >
2855 < h4 > 1. Verifica que tienes Python instalado</ h4 >
29- < pre > < code > python --version</ code > </ pre >
56+ < CodeBlock code = " python --version" id = "python-version" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
3057 </ div >
3158
3259 < div className = "install-step" >
3360 < h4 > 2. Instala ESRM con pip</ h4 >
34- < pre > < code > pip install effect-srm</ code > </ pre >
61+ < CodeBlock code = " pip install effect-srm" id = "pip-install" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
3562 </ div >
3663
3764 < div className = "install-step" >
3865 < h4 > 3. Ejecuta ESRM</ h4 >
39- < pre > < code > esrm</ code > </ pre >
66+ < CodeBlock code = " esrm" id = "esrm-run" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
4067 < p className = "step-note" > También puedes usar: < code > srm</ code > o < code > effect-screen-recorder-master</ code > </ p >
4168 </ div >
4269
@@ -59,7 +86,7 @@ const Install = () => {
5986
6087 < div className = "install-step" >
6188 < h4 > 1. Descarga el instalador</ h4 >
62- < p > Descarga la última versión desde GitHub Releases o SourceForge.</ p >
89+ < p > Descarga la última versión desde SourceForge.</ p >
6390 </ div >
6491
6592 < div className = "install-step" >
@@ -72,24 +99,14 @@ const Install = () => {
7299 < p > Busca ESRM en el menú de inicio o ejecuta desde el escritorio.</ p >
73100 </ div >
74101
75- < div className = "method-buttons" >
76- < a
77- href = "https://github.com/tutosrive/E-SRM/releases"
78- target = "_blank"
79- rel = "noopener noreferrer"
80- className = "btn btn-secondary"
81- >
82- GitHub Releases
83- </ a >
84- < a
85- href = "https://sourceforge.net/projects/e-srm/files/"
86- target = "_blank"
87- rel = "noopener noreferrer"
88- className = "btn btn-download"
89- >
90- SourceForge
91- </ a >
92- </ div >
102+ < a
103+ href = "https://sourceforge.net/projects/e-srm/files/"
104+ target = "_blank"
105+ rel = "noopener noreferrer"
106+ className = "btn btn-download"
107+ >
108+ SourceForge
109+ </ a >
93110 </ div >
94111
95112 { /* Local Development */ }
@@ -101,17 +118,17 @@ const Install = () => {
101118
102119 < div className = "install-step" >
103120 < h4 > 1. Clona el repositorio</ h4 >
104- < pre > < code > git clone https://github.com/tutosrive/E-SRM.git</ code > </ pre >
121+ < CodeBlock code = " git clone https://github.com/tutosrive/E-SRM.git" id = "git-clone" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
105122 </ div >
106123
107124 < div className = "install-step" >
108125 < h4 > 2. Instala dependencias</ h4 >
109- < pre > < code > pip install -r requirements.txt</ code > </ pre >
126+ < CodeBlock code = " pip install -r requirements.txt" id = "pip-requirements" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
110127 </ div >
111128
112129 < div className = "install-step" >
113130 < h4 > 3. Ejecuta la aplicación</ h4 >
114- < pre > < code > python code/__main__.py</ code > </ pre >
131+ < CodeBlock code = " python code/__main__.py" id = "python-run" onCopy = { copyToClipboard } copiedCommand = { copiedCommand } / >
115132 </ div >
116133
117134 < a
0 commit comments