import React, { FC, memo } from 'react'; import { useTranslation } from 'next-i18next'; import { useTargetAndAncestors, useIsGuestUser, useIsReadOnlyUser } from '~/stores/context'; import { useCurrentPagePath, useCurrentPageId } from '~/stores/page'; import { useSWRxV5MigrationStatus } from '~/stores/page-listing'; import PageTreeContentSkeleton from '../Skeleton/PageTreeContentSkeleton'; import ItemsTree from './ItemsTree'; import { PrivateLegacyPagesLink } from './PrivateLegacyPagesLink'; const PageTreeHeader = () => { const { t } = useTranslation(); return (

{t('Page Tree')}

); }; export const PageTree: FC = memo(() => { const { t } = useTranslation(); const { data: isGuestUser } = useIsGuestUser(); const { data: isReadOnlyUser } = useIsReadOnlyUser(); const { data: currentPath } = useCurrentPagePath(); const { data: targetId } = useCurrentPageId(); const { data: targetAndAncestorsData } = useTargetAndAncestors(); const { data: migrationStatus } = useSWRxV5MigrationStatus(); const targetPathOrId = targetId || currentPath; if (migrationStatus == null) { return (
); } if (!migrationStatus?.isV5Compatible) { // TODO : improve design // Story : https://redmine.weseek.co.jp/issues/83755 return (

{t('v5_page_migration.page_tree_not_avaliable')}

{t('v5_page_migration.go_to_settings')}
); } /* * dependencies */ if (isGuestUser == null) { return null; } const path = currentPath || '/'; return (
{!isGuestUser && !isReadOnlyUser && migrationStatus?.migratablePagesCount != null && migrationStatus.migratablePagesCount !== 0 && (
)}
); }); PageTree.displayName = 'PageTree';