nicolium: use lazyRouteComponent

Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
nicole mikołajczyk
2026-03-08 18:41:16 +01:00
parent 9286ace1af
commit 06a6333160
3 changed files with 143 additions and 352 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
import { lazyRouteComponent, Navigate } from '@tanstack/react-router';
import React from 'react';
import { WITH_LANDING_PAGE } from '@/build-config';
import { useAppSelector } from '@/hooks/use-app-selector';
import { useFrontendConfig } from '@/hooks/use-frontend-config';
import { useLoggedIn } from '@/hooks/use-logged-in';
import { isStandalone } from '@/utils/state';
const HomeTimeline = lazyRouteComponent(() => import('@/pages/timelines/home-timeline'));
const LandingPage = lazyRouteComponent(() => import('@/pages/utils/landing'));
const LandingTimeline = lazyRouteComponent(() => import('@/pages/timelines/landing-timeline'));
const HomeRoute = () => {
const { redirectRootNoLogin } = useFrontendConfig();
const standalone = useAppSelector(isStandalone);
const { isLoggedIn } = useLoggedIn();
if (!isLoggedIn && redirectRootNoLogin) return <Navigate to={redirectRootNoLogin} replace />;
if (standalone && !isLoggedIn && !WITH_LANDING_PAGE)
return <Navigate to='/login/external' replace />;
if (isLoggedIn) return <HomeTimeline />;
if (standalone && WITH_LANDING_PAGE) return <LandingPage />;
return <LandingTimeline />;
};
export { HomeRoute as default };

View File

@ -1,117 +1,5 @@
import { lazy } from 'react';
// Pages
export const AboutPage = lazy(() => import('@/pages/utils/about'));
export const AccountGallery = lazy(() => import('@/pages/accounts/account-gallery'));
export const AccountTimeline = lazy(() => import('@/pages/accounts/account-timeline'));
export const AdminAccount = lazy(() => import('@/pages/dashboard/account'));
export const Aliases = lazy(() => import('@/pages/settings/aliases'));
export const Announcements = lazy(() => import('@/pages/dashboard/announcements'));
export const Antennas = lazy(() => import('@/pages/account-lists/antennas'));
export const AntennaTimeline = lazy(() => import('@/pages/timelines/antenna-timeline'));
export const AuthTokenList = lazy(() => import('@/pages/settings/auth-token-list'));
export const AwaitingApproval = lazy(() => import('@/pages/dashboard/awaiting-approval'));
export const Backups = lazy(() => import('@/pages/settings/backups'));
export const Blocks = lazy(() => import('@/pages/settings/blocks'));
export const BookmarkFolders = lazy(() => import('@/pages/status-lists/bookmark-folders'));
export const Bookmarks = lazy(() => import('@/pages/status-lists/bookmarks'));
export const BubbleTimeline = lazy(() => import('@/pages/timelines/bubble-timeline'));
export const ChatIndex = lazy(() => import('@/pages/chats/chats'));
export const Circle = lazy(() => import('@/pages/fun/circle'));
export const Circles = lazy(() => import('@/pages/account-lists/circles'));
export const CircleTimeline = lazy(() => import('@/pages/timelines/circle-timeline'));
export const CommunityTimeline = lazy(() => import('@/pages/timelines/community-timeline'));
export const ComposeEvent = lazy(() => import('@/pages/statuses/compose-event'));
export const EditEvent = lazy(() =>
import('@/pages/statuses/compose-event').then((m) => ({ default: m.EditEventPage })),
);
export const Conversations = lazy(() => import('@/pages/status-lists/conversations'));
export const CreateApp = lazy(() => import('@/pages/developers/create-app'));
export const CryptoDonate = lazy(() => import('@/pages/utils/crypto-donate'));
export const Dashboard = lazy(() => import('@/pages/dashboard/dashboard'));
export const DeleteAccount = lazy(() => import('@/pages/settings/delete-account'));
export const Developers = lazy(() => import('@/pages/developers/developers'));
export const Directory = lazy(() => import('@/pages/account-lists/directory'));
export const DomainBlocks = lazy(() => import('@/pages/settings/domain-blocks'));
export const Domains = lazy(() => import('@/pages/dashboard/domains'));
export const DraftStatuses = lazy(() => import('@/pages/status-lists/draft-statuses'));
export const Drive = lazy(() => import('@/pages/drive/drive'));
export const EditEmail = lazy(() => import('@/pages/settings/edit-email'));
export const EditFilter = lazy(() => import('@/pages/settings/edit-filter'));
export const EditGroup = lazy(() => import('@/pages/groups/edit-group'));
export const EditPassword = lazy(() => import('@/pages/settings/edit-password'));
export const EditProfile = lazy(() => import('@/pages/settings/edit-profile'));
export const EventDiscussion = lazy(() => import('@/pages/statuses/event-discussion'));
export const EventInformation = lazy(() => import('@/pages/statuses/event-information'));
export const Events = lazy(() => import('@/pages/status-lists/events'));
export const ExportData = lazy(() => import('@/pages/settings/export-data'));
export const ExternalLogin = lazy(() => import('@/pages/auth/external-login'));
export const FavouritedStatuses = lazy(() => import('@/pages/status-lists/favourited-statuses'));
export const FederationRestrictions = lazy(() => import('@/pages/utils/federation-restrictions'));
export const Filters = lazy(() => import('@/pages/settings/filters'));
export const FollowedTags = lazy(() => import('@/pages/settings'));
export const Followers = lazy(() => import('@/pages/account-lists/followers'));
export const Following = lazy(() => import('@/pages/account-lists/following'));
export const FollowRequests = lazy(() => import('@/pages/account-lists/follow-requests'));
export const GenericNotFound = lazy(() => import('@/pages/utils/generic-not-found'));
export const GroupBlockedMembers = lazy(() => import('@/pages/groups/group-blocked-members'));
export const GroupGallery = lazy(() => import('@/pages/groups/group-gallery'));
export const GroupMembers = lazy(() => import('@/pages/groups/group-members'));
export const GroupMembershipRequests = lazy(
() => import('@/pages/groups/group-membership-requests'),
);
export const GroupTimeline = lazy(() => import('@/pages/timelines/group-timeline'));
export const Groups = lazy(() => import('@/pages/groups/groups'));
export const HashtagTimeline = lazy(() => import('@/pages/timelines/hashtag-timeline'));
export const HomeTimeline = lazy(() => import('@/pages/timelines/home-timeline'));
export const ImportData = lazy(() => import('@/pages/settings/import-data'));
export const IntentionalError = lazy(() => import('@/pages/utils/intentional-error'));
export const InteractionPolicies = lazy(() => import('@/pages/settings/interaction-policies'));
export const InteractionRequests = lazy(() => import('@/pages/status-lists/interaction-requests'));
export const LandingPage = lazy(() => import('@/pages/utils/landing'));
export const LandingTimeline = lazy(() => import('@/pages/timelines/landing-timeline'));
export const LinkTimeline = lazy(() => import('@/pages/timelines/link-timeline'));
export const Lists = lazy(() => import('@/pages/account-lists/lists'));
export const ListTimeline = lazy(() => import('@/pages/timelines/list-timeline'));
export const LoginPage = lazy(() => import('@/pages/auth/login'));
export const LogoutPage = lazy(() => import('@/pages/auth/logout'));
export const ManageGroup = lazy(() => import('@/pages/groups/manage-group'));
export const MediaGallery = lazy(() => import('@/components/media/media-gallery'));
export const Migration = lazy(() => import('@/pages/settings/migration'));
export const ModerationLog = lazy(() => import('@/pages/dashboard/moderation-log'));
export const Mutes = lazy(() => import('@/pages/settings/mutes'));
export const NewStatus = lazy(() => import('@/pages/utils/new-status'));
export const Notifications = lazy(() => import('@/pages/notifications/notifications'));
export const OutgoingFollowRequests = lazy(
() => import('@/pages/account-lists/outgoing-follow-requests'),
);
export const PasswordReset = lazy(() => import('@/pages/auth/password-reset'));
export const PinnedStatuses = lazy(() => import('@/pages/status-lists/pinned-statuses'));
export const FrontendConfig = lazy(() => import('@/pages/dashboard/frontend-config'));
export const PublicTimeline = lazy(() => import('@/pages/timelines/public-timeline'));
export const Quotes = lazy(() => import('@/pages/status-lists/quotes'));
export const Report = lazy(() => import('@/pages/dashboard/report'));
export const Reports = lazy(() => import('@/pages/dashboard/reports'));
export const RegisterInvite = lazy(() => import('@/pages/auth/register-with-invite'));
export const RegistrationPage = lazy(() => import('@/pages/auth/registration'));
export const Relays = lazy(() => import('@/pages/dashboard/relays'));
export const RemoteTimeline = lazy(() => import('@/pages/timelines/remote-timeline'));
export const RssFeedSubscriptions = lazy(() => import('@/pages/settings/rss-feed-subscriptions'));
export const Rules = lazy(() => import('@/pages/dashboard/rules'));
export const ScheduledStatuses = lazy(() => import('@/pages/status-lists/scheduled-statuses'));
export const Search = lazy(() => import('@/pages/search/search'));
export const ServiceWorkerInfo = lazy(() => import('@/pages/developers/service-worker-info'));
export const ServerInfo = lazy(() => import('@/pages/utils/server-info'));
export const Settings = lazy(() => import('@/pages/settings/settings'));
export const SettingsStore = lazy(() => import('@/pages/developers/settings-store'));
export const Share = lazy(() => import('@/pages/utils/share'));
export const Status = lazy(() => import('@/pages/statuses/status'));
export const Subscribers = lazy(() => import('@/pages/account-lists/subscribers'));
export const ThemeEditor = lazy(() => import('@/pages/dashboard/theme-editor'));
export const Privacy = lazy(() => import('@/pages/settings/privacy'));
export const UserIndex = lazy(() => import('@/pages/dashboard/user-index'));
export const WrenchedTimeline = lazy(() => import('@/pages/timelines/wrenched-timeline'));
// Panels
export const AccountNotePanel = lazy(
() => import('@/features/ui/components/panels/account-note-panel'),
@ -166,6 +54,7 @@ export const DatePicker = lazy(() => import('@/features/birthdays/date-picker'))
export const DropdownNavigation = lazy(() => import('@/components/navigation/dropdown-navigation'));
export const EmojiPicker = lazy(() => import('@/features/emoji/components/emoji-picker'));
export const EventHeader = lazy(() => import('@/features/event/components/event-header'));
export const MediaGallery = lazy(() => import('@/components/media/media-gallery'));
export const MfaForm = lazy(() => import('@/features/security/mfa-form'));
export const ModalRoot = lazy(() => import('@/features/ui/components/modal-root'));
export const ProfileField = lazy(() => import('@/features/ui/components/profile-field'));