start of music store refactor

moving stuff into a state cache
better separate it from view logic
This commit is contained in:
austinried
2022-03-13 17:09:18 +09:00
parent 09ca4974c5
commit c45784bcbe
7 changed files with 361 additions and 21 deletions

View File

@@ -28,6 +28,25 @@ export const useFetchList = <T>(fetchList: () => Promise<T[]>) => {
return { list, refreshing, refresh, reset }
}
export const useFetchList2 = (fetchList: () => Promise<void>, resetList: () => Promise<void>) => {
const [refreshing, setRefreshing] = useState(false)
const refresh = useCallback(async () => {
setRefreshing(true)
await fetchList()
setRefreshing(false)
}, [fetchList])
useActiveServerRefresh(
useCallback(async () => {
await resetList()
await fetchList()
}, [fetchList, resetList]),
)
return { refreshing, refresh }
}
export const useFetchPaginatedList = <T>(
fetchList: (size?: number, offset?: number) => Promise<T[]>,
pageSize: number,