A lot of refectoring

This commit is contained in:
Hein
2025-10-21 14:10:59 +02:00
parent 4186219c50
commit c92cabc569
24 changed files with 756 additions and 626 deletions

View File

@@ -0,0 +1,29 @@
import React, { useEffect } from 'react';
import { useGridlerStore } from '../GridlerStore';
export interface GlidlerLocalDataAdaptorProps {
data: Array<unknown>;
}
//The computer component does not need to be recalculated on every render, so we use React.memo to prevent unnecessary re-renders.
export const GlidlerLocalDataAdaptor = React.memo((props: GlidlerLocalDataAdaptorProps) => {
const [setState, getState, mounted] = useGridlerStore((s) => [s.setState, s.getState, s.mounted]);
const useAPIQuery: (index: number) => Promise<any> = async (index: number) => {
const pageSize = getState('pageSize');
if (!(props.data && Array.isArray(props.data))) {
return [];
}
setState('total_rows', props.data.length);
return props.data.slice(index * (pageSize ?? 50), (index + 1) * (pageSize ?? 50));
};
useEffect(() => {
setState('useAPIQuery', useAPIQuery);
}, [mounted, setState]);
return <></>;
});