chore: upgrade to router v7
Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
parent
78c7107d2d
commit
f418efcd9c
|
|
@ -85,7 +85,7 @@
|
|||
"react-intersection-observer": "9.13.1",
|
||||
"react-ios-pwa-prompt": "^2.0.6",
|
||||
"react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1",
|
||||
"react-router-dom": "7.0.1",
|
||||
"react-router": "7.0.1",
|
||||
"react-selecto": "^1.26.3",
|
||||
"react-shadow": "20.5.0",
|
||||
"react-virtuoso": "4.12.2",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { isMobile } from "@follow/components/hooks/useMobile.js"
|
|||
import { IN_ELECTRON } from "@follow/shared/constants"
|
||||
import { cn, getOS } from "@follow/utils/utils"
|
||||
import { useEffect } from "react"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { queryClient } from "~/lib/query-client"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Button } from "@follow/components/ui/button/index.js"
|
||||
import { captureException } from "@sentry/react"
|
||||
import { useEffect, useRef } from "react"
|
||||
import { isRouteErrorResponse, useNavigate, useRouteError } from "react-router-dom"
|
||||
import { isRouteErrorResponse, useNavigate, useRouteError } from "react-router"
|
||||
import { toast } from "sonner"
|
||||
|
||||
import { removeAppSkeleton } from "~/lib/app"
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { Logo } from "@follow/components/icons/logo.jsx"
|
|||
import { Button } from "@follow/components/ui/button/index.js"
|
||||
import { captureException } from "@sentry/react"
|
||||
import { useEffect } from "react"
|
||||
import type { Location } from "react-router-dom"
|
||||
import { useLocation, useNavigate } from "react-router-dom"
|
||||
import type { Location } from "react-router"
|
||||
import { useLocation, useNavigate } from "react-router"
|
||||
|
||||
import { isElectronBuild } from "~/constants"
|
||||
import { removeAppSkeleton } from "~/lib/app"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Button } from "@follow/components/ui/button/index.js"
|
|||
import type { FeedModel } from "@follow/models/types"
|
||||
import { nextFrame } from "@follow/utils/dom"
|
||||
import type { FC } from "react"
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import { useNavigate } from "react-router"
|
||||
|
||||
import { getSidebarActiveView } from "~/atoms/sidebar"
|
||||
import { getRouteParams } from "~/hooks/biz/useRouteParams"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Logo } from "@follow/components/icons/logo.jsx"
|
||||
import { Button } from "@follow/components/ui/button/index.js"
|
||||
import type { FC } from "react"
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import { useNavigate } from "react-router"
|
||||
|
||||
import { CustomSafeError } from "../../errors/CustomSafeError"
|
||||
import type { AppErrorFallbackProps } from "../common/AppErrorBoundary"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import type { FC } from "react"
|
||||
import { createElement, useEffect, useRef } from "react"
|
||||
import { useLocation } from "react-router-dom"
|
||||
import { useLocation } from "react-router"
|
||||
|
||||
import type { AppErrorFallbackProps } from "../common/AppErrorBoundary"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import type { FeedModel } from "@follow/models/types"
|
|||
import { cn } from "@follow/utils/utils"
|
||||
import type { FC } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useSearchParams } from "react-router-dom"
|
||||
import { useSearchParams } from "react-router"
|
||||
|
||||
import { getItemComponentByView } from "~/modules/entry-column/Items"
|
||||
import type { UniversalItemProps } from "~/modules/entry-column/types"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@follow/components/ui/t
|
|||
import type { PropsWithChildren } from "react"
|
||||
import { createContext, useContext } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
|
||||
import { m } from "~/components/common/Motion"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { getReadonlyRoute, useReadonlyRouteSelector } from "@follow/components/atoms/route.js"
|
||||
import { FeedViewType } from "@follow/constants"
|
||||
import type { Params } from "react-router-dom"
|
||||
import { useParams, useSearchParams } from "react-router-dom"
|
||||
import type { Params } from "react-router"
|
||||
import { useParams, useSearchParams } from "react-router"
|
||||
|
||||
import {
|
||||
FEED_COLLECTION_LIST,
|
||||
|
|
|
|||
|
|
@ -3,12 +3,7 @@ import { appSessionTraceId } from "@follow/utils/environment"
|
|||
import { version } from "@pkg"
|
||||
import { nanoid } from "nanoid"
|
||||
import { useEffect } from "react"
|
||||
import {
|
||||
createRoutesFromChildren,
|
||||
matchRoutes,
|
||||
useLocation,
|
||||
useNavigationType,
|
||||
} from "react-router-dom"
|
||||
import { createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from "react-router"
|
||||
|
||||
import { whoami } from "~/atoms/user"
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import { getOS } from "@follow/utils/utils"
|
|||
import { ClickToComponent } from "click-to-react-component"
|
||||
import * as React from "react"
|
||||
import ReactDOM from "react-dom/client"
|
||||
import { RouterProvider } from "react-router-dom"
|
||||
import { RouterProvider } from "react-router/dom"
|
||||
|
||||
import { setAppIsReady } from "./atoms/app"
|
||||
import { ElECTRON_CUSTOM_TITLEBAR_HEIGHT } from "./constants"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { views } from "@follow/constants"
|
|||
import { cn, isSafari } from "@follow/utils/utils"
|
||||
import { useMemo, useRef } from "react"
|
||||
import { useResizable } from "react-resizable-layout"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import {
|
||||
getUISettings,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { withResponsiveComponent } from "@follow/components/utils/selector.js"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
const noop = () =>
|
||||
Promise.resolve({
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { easeOut } from "framer-motion"
|
|||
import type { FC, PropsWithChildren } from "react"
|
||||
import { useState } from "react"
|
||||
import { useHotkeys } from "react-hotkeys-hook"
|
||||
import { useParams } from "react-router-dom"
|
||||
import { useParams } from "react-router"
|
||||
|
||||
import { useRealInWideMode } from "~/atoms/settings/ui"
|
||||
import { useFeedColumnShow, useFeedColumnTempShow } from "~/atoms/sidebar"
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import { forwardRef, lazy, Suspense, useEffect, useRef, useState } from "react"
|
|||
import { useHotkeys } from "react-hotkeys-hook"
|
||||
import { Trans } from "react-i18next"
|
||||
import { useResizable } from "react-resizable-layout"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { setMainContainerElement, setRootContainerElement } from "~/atoms/dom"
|
||||
import { getIsZenMode, getUISettings, setUISetting, useUISettingKey } from "~/atoms/settings/ui"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { useDailyTask } from "~/hooks/biz/useDailyTask"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import useEmblaCarousel from "embla-carousel-react"
|
|||
import type { FC } from "react"
|
||||
import { useEffect, useLayoutEffect, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
|
||||
import { useSetSidebarActiveView, useSidebarActiveView } from "~/atoms/sidebar"
|
||||
import { useLoginModalShow, useWhoami } from "~/atoms/user"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { springScrollTo } from "@follow/utils/scroller"
|
|||
import { cn, getOS } from "@follow/utils/utils"
|
||||
import { useEffect, useRef, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Outlet, useNavigate } from "react-router-dom"
|
||||
import { Outlet, useNavigate } from "react-router"
|
||||
|
||||
import { getSidebarActiveView, setSidebarActiveView } from "~/atoms/sidebar"
|
||||
import { FABContainer, FABPortable } from "~/components/ui/fab"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { cn } from "@follow/utils/utils"
|
||||
import { easeOut, m, useScroll, useTransform } from "framer-motion"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { HeaderTopReturnBackButton } from "~/components/mobile/button"
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import type { FC, PropsWithChildren } from "react"
|
|||
import { memo, useCallback, useEffect, useRef, useState } from "react"
|
||||
import { useHotkeys } from "react-hotkeys-hook"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
import { toast } from "sonner"
|
||||
|
||||
import { setAppSearchOpen } from "~/atoms/app"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import * as HoverCard from "@radix-ui/react-hover-card"
|
|||
import { AnimatePresence, m } from "framer-motion"
|
||||
import { memo, useCallback, useMemo, useRef, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
import { useOnClickOutside } from "usehooks-ts"
|
||||
|
||||
import { useGeneralSettingSelector } from "~/atoms/settings/general"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { cn } from "@follow/utils/utils"
|
|||
import { Slot } from "@radix-ui/react-slot"
|
||||
import { useContext } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useLoaderData } from "react-router-dom"
|
||||
import { useLoaderData } from "react-router"
|
||||
|
||||
import { IsInSettingIndependentWindowContext } from "./context"
|
||||
import { getMemoizedSettings } from "./settings-glob"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { UserArrowLeftIcon } from "@follow/components/icons/user.jsx"
|
|||
import { ActionButton } from "@follow/components/ui/button/index.js"
|
||||
import type { FC } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
|
||||
import { LoginModalContent } from "~/modules/auth/LoginModalContent"
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { repository } from "@pkg"
|
|||
import type { FC } from "react"
|
||||
import { forwardRef, memo, useCallback, useLayoutEffect, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import { useNavigate } from "react-router"
|
||||
|
||||
import { useUserRole } from "~/atoms/user"
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { UrlBuilder } from "@follow/utils/url-builder"
|
|||
import clsx from "clsx"
|
||||
import type { FC } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link } from "react-router-dom"
|
||||
import { Link } from "react-router"
|
||||
|
||||
import { useUserRole, useWhoami } from "~/atoms/user"
|
||||
import { useSignOut } from "~/hooks/biz/useSignOut"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import { nextFrame } from "@follow/utils/dom"
|
|||
import { from } from "dnum"
|
||||
import type { FC } from "react"
|
||||
import { useState } from "react"
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import { useNavigate } from "react-router"
|
||||
|
||||
import { useCurrentModal } from "~/components/ui/modal/stacked/hooks"
|
||||
import { useI18n } from "~/hooks/common"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { EnvironmentIndicator } from "~/modules/app/EnvironmentIndicator"
|
||||
import { UserProvider } from "~/providers/user-provider"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { DEEPLINK_SCHEME } from "@follow/shared/constants"
|
|||
import { SessionProvider, signIn, useSession } from "@hono/auth-js/react"
|
||||
import { useEffect, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useLocation, useNavigate } from "react-router-dom"
|
||||
import { useLocation, useNavigate } from "react-router"
|
||||
|
||||
import { useSignOut } from "~/hooks/biz/useSignOut"
|
||||
import { apiClient } from "~/lib/api-fetch"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { UserRole } from "@follow/constants"
|
|||
import { cn } from "@follow/utils/utils"
|
||||
import { createElement } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useSearchParams } from "react-router-dom"
|
||||
import { useSearchParams } from "react-router"
|
||||
|
||||
import { useUserRole } from "~/atoms/user"
|
||||
import { AppErrorBoundary } from "~/components/common/AppErrorBoundary"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { isMobile } from "@follow/components/hooks/useMobile.js"
|
||||
import { redirect } from "react-router-dom"
|
||||
import { redirect } from "react-router"
|
||||
|
||||
import { ROUTE_ENTRY_PENDING } from "~/constants"
|
||||
import { MobileCenterColumnScreen } from "~/modules/app-layout/entry-column/index"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { isMobile } from "@follow/components/hooks/useMobile.js"
|
||||
import { FeedViewType } from "@follow/constants"
|
||||
import { redirect } from "react-router-dom"
|
||||
import { redirect } from "react-router"
|
||||
|
||||
import { getGeneralSettings } from "~/atoms/settings/general"
|
||||
import { ROUTE_ENTRY_PENDING, ROUTE_FEED_PENDING } from "~/constants"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { FeedViewType } from "@follow/constants"
|
||||
import { useLayoutEffect } from "react"
|
||||
import { useSearchParams } from "react-router-dom"
|
||||
import { useSearchParams } from "react-router"
|
||||
|
||||
import { FeedForm } from "~/modules/discover/feed-form"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Logo } from "@follow/components/icons/logo.jsx"
|
|||
import { IN_ELECTRON } from "@follow/shared/constants"
|
||||
import { preventDefault } from "@follow/utils/dom"
|
||||
import { cn } from "@follow/utils/utils"
|
||||
import { Outlet, useLocation } from "react-router-dom"
|
||||
import { Outlet, useLocation } from "react-router"
|
||||
|
||||
import { WindowUnderBlur } from "~/components/ui/background"
|
||||
import { isElectronBuild } from "~/constants"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useEffect, useRef } from "react"
|
||||
import { useSearchParams } from "react-router-dom"
|
||||
import { useSearchParams } from "react-router"
|
||||
|
||||
import { useFollow } from "~/hooks/biz/useFollow"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useMutation } from "@tanstack/react-query"
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import { useNavigate } from "react-router"
|
||||
import { toast } from "sonner"
|
||||
|
||||
import { useAuthQuery } from "~/hooks/common"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { IN_ELECTRON } from "@follow/shared/constants"
|
||||
import { buildGlobRoutes } from "@follow/utils/route-builder"
|
||||
import { wrapCreateBrowserRouter } from "@sentry/react"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router-dom"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router"
|
||||
|
||||
import { Component as App } from "./App"
|
||||
import { ErrorElement } from "./components/common/ErrorElement"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { IN_ELECTRON } from "@follow/shared/constants"
|
||||
import { buildGlobRoutes } from "@follow/utils/route-builder"
|
||||
import { wrapCreateBrowserRouter } from "@sentry/react"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router-dom"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router"
|
||||
|
||||
import { ErrorElement } from "./components/common/ErrorElement"
|
||||
import { NotFound } from "./components/common/NotFound"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
import { RootProviders } from "./providers/root-providers"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { PoweredByFooter } from "@follow/components/common/PoweredByFooter.jsx"
|
||||
import { Logo } from "@follow/components/icons/logo.jsx"
|
||||
import { Button } from "@follow/components/ui/button/index.js"
|
||||
import { useLocation } from "react-router-dom"
|
||||
import { useLocation } from "react-router"
|
||||
|
||||
export const NotFound = () => {
|
||||
const location = useLocation()
|
||||
|
|
|
|||
|
|
@ -2,11 +2,10 @@ import "@follow/components/tailwind"
|
|||
import "@follow/components/dayjs"
|
||||
import "./styles/index.css"
|
||||
|
||||
// @ts-expect-error
|
||||
import { ClickToComponent } from "click-to-react-component"
|
||||
import * as React from "react"
|
||||
import ReactDOM from "react-dom/client"
|
||||
import { RouterProvider } from "react-router-dom"
|
||||
import { RouterProvider } from "react-router/dom"
|
||||
|
||||
import { initialize } from "./initialize"
|
||||
import { router } from "./router"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { setWhoami } from "@client/atoms/user"
|
|||
import { setIntegrationIdentify } from "@client/initialize/helper"
|
||||
import { useSession } from "@client/query/auth"
|
||||
import { useEffect } from "react"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
export function Component() {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import { DEEPLINK_SCHEME } from "@follow/shared/constants"
|
|||
import { SessionProvider, signIn, signOut, useSession } from "@hono/auth-js/react"
|
||||
import { useEffect, useState } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useLocation, useNavigate } from "react-router-dom"
|
||||
import { useLocation, useNavigate } from "react-router"
|
||||
|
||||
export function Component() {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useSyncThemeWebApp } from "@follow/hooks"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
export const Component = () => {
|
||||
useSyncThemeWebApp()
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import { cn } from "@follow/utils/utils"
|
|||
import type { FC } from "react"
|
||||
import { useMemo } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useParams, useSearchParams } from "react-router-dom"
|
||||
import { useParams, useSearchParams } from "react-router"
|
||||
import { toast } from "sonner"
|
||||
|
||||
const viewsRenderType = {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Header } from "@client/components/layout/header"
|
|||
import { TeleportalDestination } from "@client/components/layout/main/teleportal"
|
||||
import { MemoedDangerousHTMLStyle } from "@follow/components/common/MemoedDangerousHTMLStyle.jsx"
|
||||
import { PoweredByFooter } from "@follow/components/common/PoweredByFooter.jsx"
|
||||
import { Outlet } from "react-router-dom"
|
||||
import { Outlet } from "react-router"
|
||||
|
||||
export const Component = () => {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { FeedIcon } from "@follow/components/ui/feed-icon/index.jsx"
|
|||
import { LoadingCircle } from "@follow/components/ui/loading/index.jsx"
|
||||
import { useTitle } from "@follow/hooks"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useParams } from "react-router-dom"
|
||||
import { useParams } from "react-router"
|
||||
import { toast } from "sonner"
|
||||
|
||||
const numberFormatter = new Intl.NumberFormat()
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import { UrlBuilder } from "@follow/utils/url-builder"
|
|||
import { cn } from "@follow/utils/utils"
|
||||
import { Fragment } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useParams } from "react-router-dom"
|
||||
import { useParams } from "react-router"
|
||||
|
||||
export const Component = () => {
|
||||
const params = useParams()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { buildGlobRoutes } from "@follow/utils/route-builder"
|
||||
import { wrapCreateBrowserRouter } from "@sentry/react"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router-dom"
|
||||
import { createBrowserRouter, createHashRouter } from "react-router"
|
||||
|
||||
import { NotFound } from "./components/common/NotFound"
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
"react-hotkeys-hook": "4.6.1",
|
||||
"react-i18next": "^15.1.1",
|
||||
"react-photo-view": "1.2.6",
|
||||
"react-router-dom": "7.0.1",
|
||||
"react-router": "7.0.1",
|
||||
"satori": "0.12.0",
|
||||
"sonner": "1.7.0",
|
||||
"tailwindcss": "3.4.15",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { createAtomHooks } from "@follow/utils/jotai"
|
|||
import { atom, useAtomValue } from "jotai"
|
||||
import { selectAtom } from "jotai/utils"
|
||||
import { useMemo } from "react"
|
||||
import type { Location, NavigateFunction, Params } from "react-router-dom"
|
||||
import type { Location, NavigateFunction, Params } from "react-router"
|
||||
|
||||
interface RouteAtom {
|
||||
params: Readonly<Params<string>>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { setNavigate, setRoute } from "@follow/components/atoms/route.js"
|
||||
import { useLayoutEffect } from "react"
|
||||
import type { NavigateFunction } from "react-router-dom"
|
||||
import { useLocation, useNavigate, useParams, useSearchParams } from "react-router-dom"
|
||||
import type { NavigateFunction } from "react-router"
|
||||
import { useLocation, useNavigate, useParams, useSearchParams } from "react-router"
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
export interface CustomRoute {}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { get, omit } from "es-toolkit/compat"
|
||||
import { Fragment } from "react/jsx-runtime"
|
||||
import type { RouteObject } from "react-router-dom"
|
||||
import type { RouteObject } from "react-router"
|
||||
|
||||
type NestedStructure = { [key: string]: NestedStructure }
|
||||
|
||||
|
|
|
|||
|
|
@ -573,7 +573,7 @@ importers:
|
|||
react-resizable-layout:
|
||||
specifier: npm:@innei/react-resizable-layout@0.7.3-fork.1
|
||||
version: '@innei/react-resizable-layout@0.7.3-fork.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)'
|
||||
react-router-dom:
|
||||
react-router:
|
||||
specifier: 7.0.1
|
||||
version: 7.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react-selecto:
|
||||
|
|
@ -787,7 +787,7 @@ importers:
|
|||
react-photo-view:
|
||||
specifier: 1.2.6
|
||||
version: 1.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react-router-dom:
|
||||
react-router:
|
||||
specifier: 7.0.1
|
||||
version: 7.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
satori:
|
||||
|
|
@ -9563,13 +9563,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-router-dom@7.0.1:
|
||||
resolution: {integrity: sha512-duBzwAAiIabhFPZfDjcYpJ+f08TMbPMETgq254GWne2NW1ZwRHhZLj7tpSp8KGb7JvZzlLcjGUnqLxpZQVEPng==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
peerDependencies:
|
||||
react: '>=18'
|
||||
react-dom: '>=18'
|
||||
|
||||
react-router@7.0.1:
|
||||
resolution: {integrity: sha512-WVAhv9oWCNsja5AkK6KLpXJDSJCQizOIyOd4vvB/+eHGbYx5vkhcmcmwWjQ9yqkRClogi+xjEg9fNEOd5EX/tw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
|
@ -10727,11 +10720,6 @@ packages:
|
|||
engines: {node: '>=4.2.0'}
|
||||
hasBin: true
|
||||
|
||||
typescript@5.6.3:
|
||||
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
typescript@5.7.2:
|
||||
resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
|
||||
engines: {node: '>=14.17'}
|
||||
|
|
@ -17179,7 +17167,7 @@ snapshots:
|
|||
config-file-ts@0.2.8-rc1:
|
||||
dependencies:
|
||||
glob: 10.4.5
|
||||
typescript: 5.6.3
|
||||
typescript: 5.7.2
|
||||
|
||||
consola@3.2.3: {}
|
||||
|
||||
|
|
@ -21913,12 +21901,6 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 18.3.12
|
||||
|
||||
react-router-dom@7.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
react-router: 7.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
|
||||
react-router@7.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/cookie': 0.6.0
|
||||
|
|
@ -23295,8 +23277,6 @@ snapshots:
|
|||
|
||||
typescript@4.9.5: {}
|
||||
|
||||
typescript@5.6.3: {}
|
||||
|
||||
typescript@5.7.2: {}
|
||||
|
||||
ufo@1.5.4: {}
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ export default ({ mode }) => {
|
|||
createDependencyChunksPlugin([
|
||||
// React framework
|
||||
["react", "react-dom"],
|
||||
["react-error-boundary", "react-dom/server", "react-router-dom"],
|
||||
["react-error-boundary", "react-dom/server", "react-router"],
|
||||
// Data Statement
|
||||
["zustand", "jotai", "use-context-selector", "immer", "dexie"],
|
||||
// Remark
|
||||
|
|
|
|||
Loading…
Reference in New Issue