File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -658,6 +658,15 @@ button {
658658 100% { transform : translateX (120% ); }
659659}
660660
661+ /* Fixed copy button footer */
662+ .copy-button-fixed {
663+ position : fixed;
664+ right : var (--space-8 );
665+ bottom : 1rem ;
666+ z-index : 101 ;
667+ transition : bottom 0.2s ease;
668+ }
669+
661670/* Footer progress bar container pinned to bottom padding area */
662671.status-footer-fixed {
663672 position : fixed;
@@ -675,6 +684,19 @@ button {
675684 z-index : 100 ;
676685}
677686
687+ /* Mobile: center the copy button */
688+ @media (max-width : 600px ) {
689+ .copy-button-fixed {
690+ left : var (--space-3 );
691+ right : var (--space-3 );
692+ bottom : 1rem ;
693+ }
694+
695+ .copy-button-fixed button {
696+ width : 100% ;
697+ }
698+ }
699+
678700.gc-overlay-card {
679701 max-width : 680px ;
680702 width : 100% ;
Original file line number Diff line number Diff line change @@ -681,16 +681,6 @@ function AppContent() {
681681 fileTreeTokens = { includeFileTree ? fileTreeTokens : 0 }
682682 limit = { tokenLimit }
683683 />
684-
685- { /* Copy button */ }
686- < button
687- onClick = { copyAllSelected }
688- disabled = { selectedPaths . size === 0 || ! ! copyFlash }
689- className = "gc-button gc-button-primary"
690- style = { { width : '100%' , marginTop : '12px' } }
691- >
692- { copyFlash ? copyFlash : ( < > < Copy size = { 16 } /> COPY ALL SELECTED</ > ) }
693- </ button >
694684 </ div >
695685
696686 { /* Selected files list */ }
@@ -714,6 +704,23 @@ function AppContent() {
714704 { renderPreview ( ) }
715705 </ div >
716706
707+ { /* Fixed Copy Button Footer */ }
708+ { selectedPaths . size > 0 && gitClient && (
709+ < div
710+ className = "copy-button-fixed"
711+ style = { { bottom : copyFlash ? '1rem' : '5rem' } }
712+ >
713+ < button
714+ onClick = { copyAllSelected }
715+ disabled = { selectedPaths . size === 0 || ! ! copyFlash }
716+ className = "gc-button gc-button-primary"
717+ style = { { minWidth : '200px' , fontSize : '1rem' , padding : 'var(--space-3) var(--space-5)' } }
718+ >
719+ { copyFlash ? copyFlash : ( < > < Copy size = { 18 } /> COPY ALL SELECTED</ > ) }
720+ </ button >
721+ </ div >
722+ ) }
723+
717724 { /* Status bar */ }
718725 < div style = { { padding : '0 1rem 1rem 1rem' } } >
719726 { repoStatus . state === 'error' && (
Original file line number Diff line number Diff line change @@ -449,6 +449,15 @@ button {
449449 100% { transform : translateX (120% ); }
450450}
451451
452+ /* Fixed copy button footer */
453+ .copy-button-fixed {
454+ position : fixed;
455+ right : var (--space-8 );
456+ bottom : 1rem ;
457+ z-index : 101 ;
458+ transition : bottom 0.2s ease;
459+ }
460+
452461/* Footer progress bar container pinned to bottom padding area */
453462.status-footer-fixed {
454463 position : fixed;
@@ -466,6 +475,19 @@ button {
466475 z-index : 100 ;
467476}
468477
478+ /* Mobile: center the copy button */
479+ @media (max-width : 600px ) {
480+ .copy-button-fixed {
481+ left : var (--space-3 );
482+ right : var (--space-3 );
483+ bottom : 1rem ;
484+ }
485+
486+ .copy-button-fixed button {
487+ width : 100% ;
488+ }
489+ }
490+
469491.gc-overlay-card {
470492 max-width : 680px ;
471493 width : 100% ;
Original file line number Diff line number Diff line change @@ -1279,17 +1279,6 @@ function App() {
12791279 />
12801280 Include Binary as Paths
12811281 </ label >
1282- < div className = "row ml-auto" >
1283- < button
1284- data-testid = "copy-all-selected"
1285- type = "button"
1286- className = "btn btn-primary"
1287- onClick = { ( ) => { void copyAllSelected ( ) } }
1288- disabled = { selectedPaths . size === 0 || ! gitClient }
1289- >
1290- { copyFlash ? copyFlash : ( < > < Copy size = { 16 } /> COPY ALL SELECTED</ > ) }
1291- </ button >
1292- </ div >
12931282 </ div >
12941283
12951284 < div className = "row" style = { { width : '100%' } } >
@@ -1358,6 +1347,25 @@ function App() {
13581347 ) }
13591348 { notif && < div className = "hint" style = { { color : 'green' } } > { notif } </ div > }
13601349
1350+ { /* Fixed Copy Button Footer */ }
1351+ { selectedPaths . size > 0 && gitClient && (
1352+ < div
1353+ className = "copy-button-fixed"
1354+ style = { { bottom : copyFlash ? '1rem' : hideStatus && appStatus . state === 'READY' ? '1rem' : '5rem' } }
1355+ >
1356+ < button
1357+ data-testid = "copy-all-selected"
1358+ type = "button"
1359+ className = "btn btn-primary"
1360+ onClick = { ( ) => { void copyAllSelected ( ) } }
1361+ disabled = { selectedPaths . size === 0 || ! gitClient }
1362+ style = { { minWidth : '200px' , fontSize : '1rem' , padding : 'var(--space-3) var(--space-5)' } }
1363+ >
1364+ { copyFlash ? copyFlash : ( < > < Copy size = { 18 } /> COPY ALL SELECTED</ > ) }
1365+ </ button >
1366+ </ div >
1367+ ) }
1368+
13611369 { ! copyFlash && (
13621370 < div
13631371 className = "status-footer-fixed"
You can’t perform that action at this time.
0 commit comments