@@ -35,14 +35,34 @@ contextMenu = {
3535
3636 options . share . addEventListener ( 'click' , async ( ) => {
3737
38- const activeFileName = contextMenu . activeEl . querySelector ( '.name' ) . textContent
38+ const activeItemName = contextMenu . activeEl . querySelector ( '.name' ) . textContent
3939 . replaceAll ( '\n' , '' ) ;
4040
41- const link = createLink ( {
42- dir : treeLoc ,
43- file : { name : activeFileName } ,
44- openLive : false
45- } ) ;
41+ let link ;
42+
43+ if ( contextMenu . activeEl . classList . contains ( 'file' ) ) {
44+
45+ link = createLink ( {
46+ dir : treeLoc ,
47+ file : { name : activeFileName } ,
48+ openLive : false
49+ } ) ;
50+
51+ } else if ( contextMenu . activeEl . classList . contains ( 'folder' ) ) {
52+
53+ link = createLink ( {
54+ dir : [ treeLoc [ 0 ] , treeLoc [ 1 ] , treeLoc [ 2 ] + '/' + activeItemName ]
55+ } ) ;
56+
57+ } else {
58+
59+ const [ user , repo ] = activeItemName . split ( '/' ) ;
60+
61+ link = createLink ( {
62+ dir : [ user , repo , '' ]
63+ } ) ;
64+
65+ }
4666
4767 copy ( link ) . then ( ( ) => {
4868
@@ -61,7 +81,7 @@ contextMenu = {
6181 } ) ;
6282
6383 }
64-
84+
6585 } ) ;
6686
6787 } ) ;
@@ -74,22 +94,30 @@ contextMenu = {
7494
7595 } ,
7696
77- addFileListener : ( file ) => {
97+ addItemListener : ( item ) => {
7898
7999 if ( ! isMobile ) {
80100
81- file . addEventListener ( 'contextmenu' , async ( e ) => {
101+ item . addEventListener ( 'contextmenu' , async ( e ) => {
82102
83- contextMenu . activeEl = file ;
84- file . classList . add ( 'active' ) ;
103+ contextMenu . activeEl = item ;
104+ item . classList . add ( 'active' ) ;
85105
86106 onNextFrame ( ( ) => {
87107 moveElToMouse ( contextMenu . el , e , 13 ) ;
88108 } ) ;
89109
90110 contextMenu . el . classList . add ( 'visible' , 'animating' ) ;
91111
92- contextMenu . el . classList . toggle ( 'modified' , file . classList . contains ( 'modified' ) ) ;
112+ if ( item . classList . contains ( 'file' ) ) {
113+
114+ contextMenu . el . classList . toggle ( 'modified' , item . classList . contains ( 'modified' ) ) ;
115+
116+ } else {
117+
118+ contextMenu . el . classList . remove ( 'modified' ) ;
119+
120+ }
93121
94122 window . setTimeout ( ( ) => {
95123
0 commit comments