mirror of
https://github.com/ourongxing/newsnow.git
synced 2025-02-07 22:10:03 +08:00
32 lines
783 B
TypeScript
32 lines
783 B
TypeScript
import type { SourceID } from "@shared/types"
|
|
import { useUpdateQuery } from "./query"
|
|
|
|
export function useRefetch() {
|
|
const { enableLogin, loggedIn, login } = useLogin()
|
|
const toaster = useToast()
|
|
const updateQuery = useUpdateQuery()
|
|
/**
|
|
* force refresh
|
|
*/
|
|
const refresh = useCallback((...sources: SourceID[]) => {
|
|
if (enableLogin && !loggedIn) {
|
|
toaster("登录后可以强制拉取最新数据", {
|
|
type: "warning",
|
|
action: {
|
|
label: "登录",
|
|
onClick: login,
|
|
},
|
|
})
|
|
} else {
|
|
refetchSources.clear()
|
|
sources.forEach(id => refetchSources.add(id))
|
|
updateQuery(...sources)
|
|
}
|
|
}, [loggedIn, toaster, login, enableLogin, updateQuery])
|
|
|
|
return {
|
|
refresh,
|
|
refetchSources,
|
|
}
|
|
}
|