Last active
December 18, 2021 17:27
-
-
Save longdog/c212053c0c9b0e9c60aabc225ddb98aa to your computer and use it in GitHub Desktop.
effector antd pager config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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