enhance(file):加入文件信息扫描功能。
This commit is contained in:
		| @@ -2,14 +2,15 @@ import { Box, Stack } from '@mantine/core'; | ||||
| import { useVirtualizer } from '@tanstack/react-virtual'; | ||||
| import EventEmitter from 'events'; | ||||
| import { filter, indexOf, isEmpty, length, map, pluck } from 'ramda'; | ||||
| import { FC, useContext, useEffect, useLayoutEffect, useMemo, useRef } from 'react'; | ||||
| import { FC, useContext, useLayoutEffect, useMemo, useRef } from 'react'; | ||||
| import { useLifecycles } from 'react-use'; | ||||
| import { EventBusContext } from '../EventBus'; | ||||
| import { useFileListStore } from '../states/files'; | ||||
| import { useZoomState } from '../states/zoom'; | ||||
| import { withinRange } from '../utils/offset_func'; | ||||
|  | ||||
| export const ContinuationView: FC = () => { | ||||
|   const files = useFileListStore.use.files(); | ||||
|   const { files } = useFileListStore(); | ||||
|   const zoom = useZoomState.use.currentZoom(); | ||||
|   const viewHeight = useZoomState.use.viewHeight(); | ||||
|   const updateActives = useFileListStore.use.updateActiveFiles(); | ||||
| @@ -23,20 +24,21 @@ export const ContinuationView: FC = () => { | ||||
|   }); | ||||
|   const items = virtualizer.getVirtualItems(); | ||||
|  | ||||
|   useEffect(() => { | ||||
|     ebus?.addListener('navigate_offset', ({ filename }) => { | ||||
|       let index = indexOf(filename, pluck('filename', files)); | ||||
|       virtualizer.scrollToIndex(index); | ||||
|     }); | ||||
|     ebus?.addListener('reset_views', () => { | ||||
|       virtualizer.scrollToOffset(0); | ||||
|     }); | ||||
|  | ||||
|     return () => { | ||||
|   useLifecycles( | ||||
|     () => { | ||||
|       ebus?.addListener('navigate_offset', ({ filename }) => { | ||||
|         let index = indexOf(filename, pluck('filename', files)); | ||||
|         virtualizer.scrollToIndex(index); | ||||
|       }); | ||||
|       ebus?.addListener('reset_views', () => { | ||||
|         virtualizer.scrollToOffset(0); | ||||
|       }); | ||||
|     }, | ||||
|     () => { | ||||
|       ebus?.removeAllListeners('navigate_offset'); | ||||
|       ebus?.removeAllListeners('reset_views'); | ||||
|     }; | ||||
|   }, [ebus, files, virtualizer]); | ||||
|     } | ||||
|   ); | ||||
|  | ||||
|   useLayoutEffect(() => { | ||||
|     let rangeStart = virtualizer.scrollOffset; | ||||
|   | ||||
| @@ -2,4 +2,6 @@ export type FileItem = { | ||||
|   sort: number; | ||||
|   filename: string; | ||||
|   path: string; | ||||
|   width: number; | ||||
|   height: number; | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user