create-iking-admin
Version:
金合技术中台脚手架
18 lines (16 loc) • 498 B
text/typescript
export default function useViewTransition(callback: () => void) {
function startViewTransition() {
// @ts-expect-error: View Transition API
if (!document.startViewTransition || window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
callback()
return
}
// @ts-expect-error: View Transition API
return document.startViewTransition(async () => {
await Promise.resolve(callback())
})
}
return {
startViewTransition,
}
}