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