Files
WAI_Project_UNIX/uni_modules/cool-ui/hooks/page.ts

53 lines
881 B
TypeScript
Raw Normal View History

2025-08-11 23:48:02 +08:00
import { router, scroller, useParent } from "@/cool";
2025-08-11 19:14:03 +08:00
class Page {
pageRef: ClPageComponentPublicInstance | null = null;
constructor() {
this.pageRef = useParent<ClPageComponentPublicInstance>("cl-page");
}
/**
*
* @returns
*/
2025-08-11 23:48:02 +08:00
path = () => {
2025-08-11 19:14:03 +08:00
return router.path();
2025-08-11 23:48:02 +08:00
};
2025-08-11 19:14:03 +08:00
/**
*
* @returns
*/
2025-08-11 23:48:02 +08:00
getScrollTop = (): number => {
2025-08-11 19:14:03 +08:00
return this.pageRef!.scrollTop as number;
2025-08-11 23:48:02 +08:00
};
2025-08-11 19:14:03 +08:00
/**
*
* @param top
*/
2025-08-11 23:48:02 +08:00
scrollTo = (top: number) => {
2025-08-11 19:14:03 +08:00
this.pageRef!.scrollTo(top);
2025-08-11 23:48:02 +08:00
};
2025-08-11 19:14:03 +08:00
/**
*
*/
2025-08-11 23:48:02 +08:00
scrollToTop = () => {
2025-08-11 19:14:03 +08:00
this.pageRef!.scrollToTop();
2025-08-11 23:48:02 +08:00
};
2025-08-11 19:14:03 +08:00
/**
*
* @param callback
*/
2025-08-11 23:48:02 +08:00
onScroll = (callback: (top: number) => void) => {
scroller.on(callback);
};
2025-08-11 19:14:03 +08:00
}
export function usePage(): Page {
return new Page();
}