Fixed the refresh bug
This commit is contained in:
		
							parent
							
								
									0ba8dca0b4
								
							
						
					
					
						commit
						abcf08f98e
					
				| @ -135,7 +135,7 @@ export interface GridlerState { | |||||||
|   _gridSelectionRows?: GridSelection['rows']; |   _gridSelectionRows?: GridSelection['rows']; | ||||||
|   _loadingList: CompactSelection; |   _loadingList: CompactSelection; | ||||||
|   _page_data: Record<number, Array<any>>; |   _page_data: Record<number, Array<any>>; | ||||||
|   _refresh: () => void; |   _refresh: () => Promise<void>; | ||||||
|   _scrollTimeout?: any | number; |   _scrollTimeout?: any | number; | ||||||
|   _visibleArea: Rectangle; |   _visibleArea: Rectangle; | ||||||
|   _visiblePages: Rectangle; |   _visiblePages: Rectangle; | ||||||
| @ -219,12 +219,11 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat | |||||||
|     _events: new EventTarget(), |     _events: new EventTarget(), | ||||||
|     _loadingList: CompactSelection.empty(), |     _loadingList: CompactSelection.empty(), | ||||||
|     _page_data: {}, |     _page_data: {}, | ||||||
|     _refresh: () => { |     _refresh: async () => { | ||||||
|       const s = get(); |       const s = get(); | ||||||
|       s.loadPage(0, 'all').then(() => { |       await s.loadPage(0, 'all'); | ||||||
|         s.refreshCells(); |       await s.refreshCells(); | ||||||
|         s.reload?.(); |       await s.reload?.(); | ||||||
|       }); |  | ||||||
|     }, |     }, | ||||||
|     _visibleArea: { height: 10000, width: 1000, x: 0, y: 0 }, |     _visibleArea: { height: 10000, width: 1000, x: 0, y: 0 }, | ||||||
|     _visiblePages: { height: 0, width: 0, x: 0, y: 0 }, |     _visiblePages: { height: 0, width: 0, x: 0, y: 0 }, | ||||||
| @ -717,9 +716,11 @@ const { Provider, useStore: useGridlerStore } = createSyncStore<GridlerStoreStat | |||||||
|           isDivider: true, |           isDivider: true, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|  |           id: 'refesh', | ||||||
|           label: `Refresh`, |           label: `Refresh`, | ||||||
|           onClickAsync: async () => { |           onClick: () => { | ||||||
|             await s._refresh?.(); |             const s = get(); | ||||||
|  |             s._refresh?.(); | ||||||
|           }, |           }, | ||||||
|         }, |         }, | ||||||
|       ]; |       ]; | ||||||
|  | |||||||
| @ -19,13 +19,12 @@ export interface GlidlerAPIAdaptorForGoLangv2Props<T = unknown> extends APIOptio | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForGoLangv2Props<T>) { | function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForGoLangv2Props<T>) { | ||||||
|   const [setStateFN, setState, getState, addError, mounted, loadPage] = useGridlerStore((s) => [ |   const [setStateFN, setState, getState, addError, mounted] = useGridlerStore((s) => [ | ||||||
|     s.setStateFN, |     s.setStateFN, | ||||||
|     s.setState, |     s.setState, | ||||||
|     s.getState, |     s.getState, | ||||||
|     s.addError, |     s.addError, | ||||||
|     s.mounted, |     s.mounted, | ||||||
|     s.loadPage, |  | ||||||
|   ]); |   ]); | ||||||
| 
 | 
 | ||||||
|   const useAPIQuery: (index: number) => Promise<any> = useCallback( |   const useAPIQuery: (index: number) => Promise<any> = useCallback( | ||||||
| @ -266,8 +265,10 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | |||||||
|     setState('useAPIQuery', useAPIQuery); |     setState('useAPIQuery', useAPIQuery); | ||||||
|     setState('askAPIRowNumber', askAPIRowNumber); |     setState('askAPIRowNumber', askAPIRowNumber); | ||||||
| 
 | 
 | ||||||
|  |     const _refresh = getState('_refresh'); | ||||||
|  | 
 | ||||||
|     //Reset the loaded pages to new rules
 |     //Reset the loaded pages to new rules
 | ||||||
|     loadPage(0, 'all').then(() => { |     _refresh?.().then(() => { | ||||||
|       const onChange = getState('onChange'); |       const onChange = getState('onChange'); | ||||||
|       const getGridSelectedRows = getState('getGridSelectedRows'); |       const getGridSelectedRows = getState('getGridSelectedRows'); | ||||||
|       if (onChange && typeof onChange === 'function') { |       if (onChange && typeof onChange === 'function') { | ||||||
|  | |||||||
| @ -24,11 +24,10 @@ export function GlidlerFormAdaptor(props: { | |||||||
|   ) => void; |   ) => void; | ||||||
|   showDescriptionInMenu?: boolean; |   showDescriptionInMenu?: boolean; | ||||||
| }) { | }) { | ||||||
|   const [getState, mounted, setState, reload, _events] = useGridlerStore((s) => [ |   const [getState, mounted, setState, _events] = useGridlerStore((s) => [ | ||||||
|     s.getState, |     s.getState, | ||||||
|     s.mounted, |     s.mounted, | ||||||
|     s.setState, |     s.setState, | ||||||
|     s.reload, |  | ||||||
|     s._events, |     s._events, | ||||||
|   ]); |   ]); | ||||||
| 
 | 
 | ||||||
| @ -164,8 +163,9 @@ export function GlidlerFormAdaptor(props: { | |||||||
|         c: 'orange', |         c: 'orange', | ||||||
|         label: 'Refresh', |         label: 'Refresh', | ||||||
|         leftSection: <IconRefresh color="orange" size={16} />, |         leftSection: <IconRefresh color="orange" size={16} />, | ||||||
|         onClick: () => { |         onClickAsync: async () => { | ||||||
|           reload?.(); |           const _refresh = getState('_refresh'); | ||||||
|  |           await _refresh?.(); | ||||||
|         }, |         }, | ||||||
|       }); |       }); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -80,7 +80,7 @@ const MenuItemRenderer = ({ children, label, ...props }: MantineBetterMenuInstan | |||||||
|               props.onClick?.(e); |               props.onClick?.(e); | ||||||
|               if (props.onClickAsync) { |               if (props.onClickAsync) { | ||||||
|                 setLoading(true); |                 setLoading(true); | ||||||
|                 props.onClickAsync().finally(() => setLoading(false)); |                 props.onClickAsync(e).finally(() => setLoading(false)); | ||||||
|               } |               } | ||||||
|             }} |             }} | ||||||
|             styles={{ |             styles={{ | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user