| 
						
						
						
						 |  | @ -1,5 +1,5 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | /* eslint-disable @typescript-eslint/no-explicit-any */ |  |  |  | /* eslint-disable @typescript-eslint/no-explicit-any */ | 
			
		
	
		
		
			
				
					
					|  |  |  | import React, { useEffect } from 'react'; |  |  |  | import React, { useCallback, useEffect } from 'react'; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import type { APIOptions } from '../../utils/types'; |  |  |  | import type { APIOptions } from '../../utils/types'; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					
					|  |  | @ -20,7 +20,8 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | 
			
		
	
		
		
			
				
					
					|  |  |  |     s.mounted, |  |  |  |     s.mounted, | 
			
		
	
		
		
			
				
					
					|  |  |  |   ]); |  |  |  |   ]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   const useAPIQuery: (index: number) => Promise<any> = async (index: number) => { |  |  |  |   const useAPIQuery: (index: number) => Promise<any> = useCallback( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     async (index: number) => { | 
			
		
	
		
		
			
				
					
					|  |  |  |       const colSort = getState('colSort'); |  |  |  |       const colSort = getState('colSort'); | 
			
		
	
		
		
			
				
					
					|  |  |  |       const pageSize = getState('pageSize'); |  |  |  |       const pageSize = getState('pageSize'); | 
			
		
	
		
		
			
				
					
					|  |  |  |       const colFilters = getState('colFilters'); |  |  |  |       const colFilters = getState('colFilters'); | 
			
		
	
	
		
		
			
				
					
					|  |  | @ -67,14 +68,21 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | 
			
		
	
		
		
			
				
					
					|  |  |  |               r.controller?.abort?.(); |  |  |  |               r.controller?.abort?.(); | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |           }); |  |  |  |           }); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (_active_requests && currentRequestIndex >= 0 && _active_requests[currentRequestIndex]) { |  |  |  |           if ( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             _active_requests && | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             currentRequestIndex >= 0 && | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             _active_requests[currentRequestIndex] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           ) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             //console.log(`Already queued ${index}`, index, s._active_requests);
 |  |  |  |             //console.log(`Already queued ${index}`, index, s._active_requests);
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             setState('loadingData', false); |  |  |  |             setState('loadingData', false); | 
			
		
	
		
		
			
				
					
					|  |  |  |             return undefined; |  |  |  |             return undefined; | 
			
		
	
		
		
			
				
					
					|  |  |  |           } |  |  |  |           } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |           const controller = new AbortController(); |  |  |  |           const controller = new AbortController(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         await setStateFN('_active_requests', (cv) => [...(cv ?? []), { controller, page: index }]); |  |  |  |           await setStateFN('_active_requests', (cv) => [ | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ...(cv ?? []), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { controller, page: index }, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           ]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |           const res = await fetch( |  |  |  |           const res = await fetch( | 
			
		
	
		
		
			
				
					
					|  |  |  |             `${props.url}?x-limit=${String(pageSize ?? 50)}&x-offset=${String((pageSize ?? 50) * index)}`, |  |  |  |             `${props.url}?x-limit=${String(pageSize ?? 50)}&x-offset=${String((pageSize ?? 50) * index)}`, | 
			
		
	
	
		
		
			
				
					
					|  |  | @ -107,9 +115,12 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | 
			
		
	
		
		
			
				
					
					|  |  |  |       } |  |  |  |       } | 
			
		
	
		
		
			
				
					
					|  |  |  |       setState('loadingData', false); |  |  |  |       setState('loadingData', false); | 
			
		
	
		
		
			
				
					
					|  |  |  |       return []; |  |  |  |       return []; | 
			
		
	
		
		
			
				
					
					|  |  |  |   }; |  |  |  |     }, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     [getState, props.authtoken, props.url, props.options, setState, setStateFN, addError] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   ); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   const askAPIRowNumber: (key: string) => Promise<number> = async (key: string) => { |  |  |  |   const askAPIRowNumber: (key: string) => Promise<number> = useCallback( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     async (key: string) => { | 
			
		
	
		
		
			
				
					
					|  |  |  |       const colFilters = getState('colFilters'); |  |  |  |       const colFilters = getState('colFilters'); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       //console.log('APIAdaptorGoLangv2', { _active_requests, index, pageSize, props });
 |  |  |  |       //console.log('APIAdaptorGoLangv2', { _active_requests, index, pageSize, props });
 | 
			
		
	
	
		
		
			
				
					
					|  |  | @ -130,6 +141,13 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | 
			
		
	
		
		
			
				
					
					|  |  |  |             }); |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (props.options && props.options.length > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           const optionHeaders = GoAPIHeaders(props.options); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           for (const oh in optionHeaders) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             head.set(oh, optionHeaders[oh]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         const controller = new AbortController(); |  |  |  |         const controller = new AbortController(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         const res = await fetch(`${props.url}?x-fetch-rownumber=${key}}`, { |  |  |  |         const res = await fetch(`${props.url}?x-fetch-rownumber=${key}}`, { | 
			
		
	
	
		
		
			
				
					
					|  |  | @ -146,12 +164,14 @@ function _GlidlerAPIAdaptorForGoLangv2<T = unknown>(props: GlidlerAPIAdaptorForG | 
			
		
	
		
		
			
				
					
					|  |  |  |         addError(`${res.status} ${res.statusText}`, 'api', props.url); |  |  |  |         addError(`${res.status} ${res.statusText}`, 'api', props.url); | 
			
		
	
		
		
			
				
					
					|  |  |  |       } |  |  |  |       } | 
			
		
	
		
		
			
				
					
					|  |  |  |       return []; |  |  |  |       return []; | 
			
		
	
		
		
			
				
					
					|  |  |  |   }; |  |  |  |     }, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     [props.url, props.authtoken, props.options, getState, addError] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   ); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   useEffect(() => { |  |  |  |   useEffect(() => { | 
			
		
	
		
		
			
				
					
					|  |  |  |     setState('useAPIQuery', useAPIQuery); |  |  |  |     setState('useAPIQuery', useAPIQuery); | 
			
		
	
		
		
			
				
					
					|  |  |  |     setState('askAPIRowNumber', askAPIRowNumber); |  |  |  |     setState('askAPIRowNumber', askAPIRowNumber); | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, [props.url, props.authtoken, mounted, setState]); |  |  |  |   }, [props.url, props.authtoken, props.options, mounted, setState]); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   return <></>; |  |  |  |   return <></>; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					
					|  |  | 
 |