use-create-new-page.ts 756 B

1234567891011121314151617181920212223242526272829
  1. import { useCallback } from 'react';
  2. import { useCreatePageAndTransit } from '~/client/services/create-page';
  3. import { useCurrentPagePath } from '~/stores/page';
  4. type UseCreateNewPage = () => {
  5. isCreating: boolean,
  6. createNewPage: () => Promise<void>,
  7. }
  8. export const useCreateNewPage: UseCreateNewPage = () => {
  9. const { data: currentPagePath, isLoading: isLoadingPagePath } = useCurrentPagePath();
  10. const { isCreating, createAndTransit } = useCreatePageAndTransit();
  11. const createNewPage = useCallback(async() => {
  12. if (isLoadingPagePath) return;
  13. return createAndTransit(
  14. { parentPath: currentPagePath },
  15. );
  16. }, [createAndTransit, currentPagePath, isLoadingPagePath]);
  17. return {
  18. isCreating,
  19. createNewPage,
  20. };
  21. };