@@ -129,19 +129,20 @@ export function FileExplorer({
129129 startWidth : 0 ,
130130 } )
131131
132- const startResize = ( e : React . MouseEvent ) => {
132+ const startResize = ( e : React . MouseEvent | React . TouchEvent ) => {
133133 setIsResizing ( true )
134134 startResizeRef . current = {
135- startX : e . clientX ,
135+ startX : 'touches' in e ? e . touches [ 0 ] . clientX : e . clientX ,
136136 startWidth : sidebarWidth ,
137137 }
138138 }
139139
140140 React . useEffect ( ( ) => {
141- const handleMouseMove = ( e : MouseEvent ) => {
141+ const handleMouseMove = ( e : MouseEvent | TouchEvent ) => {
142142 if ( ! isResizing ) return
143143
144- const diff = e . clientX - startResizeRef . current . startX
144+ const clientX = 'touches' in e ? e . touches [ 0 ] . clientX : e . clientX
145+ const diff = clientX - startResizeRef . current . startX
145146 const newWidth = startResizeRef . current . startWidth + diff
146147
147148 if ( newWidth >= MIN_SIDEBAR_WIDTH && newWidth <= 600 ) {
@@ -153,10 +154,8 @@ export function FileExplorer({
153154
154155 const handleMouseUp = ( ) => {
155156 setIsResizing ( false )
156- // Check if we should close the sidebar
157157 if ( sidebarWidth <= MIN_SIDEBAR_WIDTH ) {
158- setSidebarWidth ( 200 ) // Reset width to default
159- // Find setIsSidebarOpen in parent scope
158+ setSidebarWidth ( 200 )
160159 const event = new CustomEvent ( 'closeSidebar' )
161160 window . dispatchEvent ( event )
162161 }
@@ -165,11 +164,15 @@ export function FileExplorer({
165164 if ( isResizing ) {
166165 document . addEventListener ( 'mousemove' , handleMouseMove )
167166 document . addEventListener ( 'mouseup' , handleMouseUp )
167+ document . addEventListener ( 'touchmove' , handleMouseMove )
168+ document . addEventListener ( 'touchend' , handleMouseUp )
168169 }
169170
170171 return ( ) => {
171172 document . removeEventListener ( 'mousemove' , handleMouseMove )
172173 document . removeEventListener ( 'mouseup' , handleMouseUp )
174+ document . removeEventListener ( 'touchmove' , handleMouseMove )
175+ document . removeEventListener ( 'touchend' , handleMouseUp )
173176 }
174177 } , [ isResizing , sidebarWidth ] )
175178
@@ -190,10 +193,13 @@ export function FileExplorer({
190193 return (
191194 < >
192195 < div
193- style = { { width : isSidebarOpen ? sidebarWidth : 0 } }
194- className = { `flex-shrink-0 overflow-y-auto bg-gradient-to-r from-gray-50 via-gray-50 to-transparent dark:from-gray-800/50 dark:via-gray-800/50 dark:to-transparent lg:pr-2 shadow-sm ${
196+ style = { {
197+ width : isSidebarOpen ? sidebarWidth : 0 ,
198+ paddingRight : isSidebarOpen ? '0.5rem' : 0 ,
199+ } }
200+ className = { `flex-shrink-0 overflow-y-auto bg-gradient-to-r from-gray-50 via-gray-50 to-transparent dark:from-gray-800/50 dark:via-gray-800/50 dark:to-transparent shadow-sm ${
195201 isResizing ? '' : 'transition-all duration-300'
196- } ${ isSidebarOpen ? '' : 'w-0 pr-0' } `}
202+ } `}
197203 >
198204 { githubContents && isSidebarOpen ? (
199205 < div className = "p-2" >
@@ -214,6 +220,7 @@ export function FileExplorer({
214220 isResizing ? '' : 'transition-colors'
215221 } ${ isSidebarOpen ? '' : 'hidden' } `}
216222 onMouseDown = { startResize }
223+ onTouchStart = { startResize }
217224 />
218225 </ >
219226 )
0 commit comments