Skip to content

Instantly share code, notes, and snippets.

@longdog
Last active December 18, 2021 17:27
Show Gist options
  • Save longdog/c212053c0c9b0e9c60aabc225ddb98aa to your computer and use it in GitHub Desktop.
Save longdog/c212053c0c9b0e9c60aabc225ddb98aa to your computer and use it in GitHub Desktop.
effector antd pager config
export type BaseFilter = {
offset: number;
};
export type BaseList = {
count: number;
};
export function pagerConfig(
pageLimit: number,
$filter: Store<BaseFilter | null>,
$list: Store<BaseList | null>
) {
const doChangePage = createEvent<number>();
sample({
clock: doChangePage,
source: $filter,
fn: (filter, num) => ({
...filter!,
offset: pageLimit * (num - 1),
}),
target: $filter,
});
return combine({ $list, $filter }, ({ $list, $filter }) => ({
current: !!$filter ? $filter.offset / pageLimit + 1 : 1,
onChange: doChangePage,
defaultCurrent: 1,
pageSize: pageLimit,
total: $list?.count,
hideOnSinglePage: true,
showSizeChanger: false,
}));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment