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