diff --git a/.github/workflows/ipfs.yml b/.github/workflows/ipfs.yml new file mode 100644 index 0000000..c79bebe --- /dev/null +++ b/.github/workflows/ipfs.yml @@ -0,0 +1,42 @@ +name: Deploy to IPFS + +permissions: + contents: read + pull-requests: write + statuses: write + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - uses: pnpm/action-setup@v4 + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm i + + - name: Build project + run: VITE_HASH_ROUTER=1 pnpm build + + - name: Deploy to IPFS + uses: ipfs/ipfs-deploy-action@v1 + id: deploy + with: + path-to-deploy: dist + storacha-key: ${{ secrets.STORACHA_KEY }} + storacha-proof: ${{ secrets.STORACHA_PROOF }} + github-token: ${{ github.token }} diff --git a/package.json b/package.json index 2819647..0250838 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "react": "^19.2.0", "react-dom": "^19.2.0", "react-responsive": "^10.0.1", - "react-router-dom": "^7.9.6", + "react-router": "^7.9.6", "react-svg": "^16.3.0", "react-toastify": "^11.0.5", "react-virtuoso": "^4.14.1", diff --git a/patches/react-router@7.9.6.patch b/patches/react-router@7.9.6.patch new file mode 100644 index 0000000..4b61ddd --- /dev/null +++ b/patches/react-router@7.9.6.patch @@ -0,0 +1,147 @@ +diff --git a/dist/development/chunk-4WY6JWTD.mjs b/dist/development/chunk-4WY6JWTD.mjs +index bc8b894d28449d3805da1890bb53f700e1b5a4dd..2b6aaf0e4de7f0bf7d9bd13bd186c32e4edf8742 100644 +--- a/dist/development/chunk-4WY6JWTD.mjs ++++ b/dist/development/chunk-4WY6JWTD.mjs +@@ -10638,6 +10638,7 @@ function htmlEscape(str) { + + export { + Action, ++ createHashHistory, + createBrowserHistory, + invariant, + createPath, +diff --git a/dist/development/index.d.mts b/dist/development/index.d.mts +index 9105addafcfed09be57e8b8193c384fc2b187c8a..153cc7775a3afdee089e3283189b6432b687f3e9 100644 +--- a/dist/development/index.d.mts ++++ b/dist/development/index.d.mts +@@ -1,5 +1,5 @@ + import { p as Router, q as RouteModules, r as DataStrategyFunction, s as MiddlewareEnabled, c as RouterContextProvider, t as AppLoadContext, T as To, v as NavigateOptions, B as BlockerFunction, w as Blocker, x as SerializeFrom, y as RelativeRoutingType, L as Location, z as ParamParseKey, E as Path, I as PathPattern, J as PathMatch, U as UIMatch, K as Navigation, O as Action, P as Params, Q as RouteObject, G as GetLoaderData, o as GetActionData, V as InitialEntry, W as HydrationState, X as IndexRouteObject, Y as RouteComponentType, Z as HydrateFallbackType, _ as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, $ as NonIndexRouteObject, a0 as Equal, a1 as RouterState, a2 as PatchRoutesOnNavigationFunction, a3 as DataRouteObject, a as ClientLoaderFunction } from './router-CAvh_Drx.mjs'; +-export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, g as unstable_ClientOnErrorFunction, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-CAvh_Drx.mjs'; ++export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bl as createHashHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, g as unstable_ClientOnErrorFunction, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-CAvh_Drx.mjs'; + import * as React from 'react'; + import React__default, { ReactElement } from 'react'; + import { a as RouteModules$1, P as Pages } from './register-QkB3HGjm.mjs'; +diff --git a/dist/development/index.d.ts b/dist/development/index.d.ts +index 9c7869de4cf3b823d7e6c8a5b157dfeec570f52e..5f66986ecd83c49388ff2298090e9a23c3246e13 100644 +--- a/dist/development/index.d.ts ++++ b/dist/development/index.d.ts +@@ -1,5 +1,5 @@ + import { n as Router, o as RouteModules, p as DataStrategyFunction, q as MiddlewareEnabled, c as RouterContextProvider, r as AppLoadContext, T as To, s as NavigateOptions, B as BlockerFunction, t as Blocker, v as SerializeFrom, w as RelativeRoutingType, L as Location, x as ParamParseKey, y as Path, z as PathPattern, E as PathMatch, U as UIMatch, I as Navigation, J as Action, P as Params, K as RouteObject, G as GetLoaderData, m as GetActionData, O as InitialEntry, Q as HydrationState, V as IndexRouteObject, W as RouteComponentType, X as HydrateFallbackType, Y as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, Z as NonIndexRouteObject, _ as Equal, $ as RouterState, a0 as PatchRoutesOnNavigationFunction, a1 as DataRouteObject, a as ClientLoaderFunction } from './instrumentation-Unc20tLk.js'; +-export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, aS as unstable_ClientOnErrorFunction, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation-Unc20tLk.js'; ++export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bl as createHashHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, aS as unstable_ClientOnErrorFunction, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation-Unc20tLk.js'; + import * as React from 'react'; + import React__default, { ReactElement } from 'react'; + import { a as RouteModules$1, P as Pages } from './register-BpU9rFBJ.js'; +diff --git a/dist/development/index.mjs b/dist/development/index.mjs +index 92c9af4de6a3eef1cb19e792359e9004668ad134..60747e4b698b48b73935420299d0fe550d5d2470 100644 +--- a/dist/development/index.mjs ++++ b/dist/development/index.mjs +@@ -71,6 +71,7 @@ import { + WithComponentProps, + WithErrorBoundaryProps, + WithHydrateFallbackProps, ++ createHashHistory, + createBrowserHistory, + createBrowserRouter, + createClientRoutes, +@@ -184,6 +185,7 @@ export { + WithComponentProps as UNSAFE_WithComponentProps, + WithErrorBoundaryProps as UNSAFE_WithErrorBoundaryProps, + WithHydrateFallbackProps as UNSAFE_WithHydrateFallbackProps, ++ createHashHistory, + createBrowserHistory as UNSAFE_createBrowserHistory, + createClientRoutes as UNSAFE_createClientRoutes, + createClientRoutesWithHMRRevalidationOptOut as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, +diff --git a/dist/production/chunk-FUSXQSWG.mjs b/dist/production/chunk-FUSXQSWG.mjs +index 796ae77e721a375ef6465063994e9f465e410aae..d130f34ff2c70c37b59d043d61c3f31acdf11df7 100644 +--- a/dist/production/chunk-FUSXQSWG.mjs ++++ b/dist/production/chunk-FUSXQSWG.mjs +@@ -10752,6 +10752,7 @@ export { + setIsHydrated, + Scripts, + createBrowserRouter, ++ createHashHistory, + createHashRouter, + BrowserRouter, + HashRouter, +diff --git a/dist/production/index.d.mts b/dist/production/index.d.mts +index 9105addafcfed09be57e8b8193c384fc2b187c8a..153cc7775a3afdee089e3283189b6432b687f3e9 100644 +--- a/dist/production/index.d.mts ++++ b/dist/production/index.d.mts +@@ -1,5 +1,5 @@ + import { p as Router, q as RouteModules, r as DataStrategyFunction, s as MiddlewareEnabled, c as RouterContextProvider, t as AppLoadContext, T as To, v as NavigateOptions, B as BlockerFunction, w as Blocker, x as SerializeFrom, y as RelativeRoutingType, L as Location, z as ParamParseKey, E as Path, I as PathPattern, J as PathMatch, U as UIMatch, K as Navigation, O as Action, P as Params, Q as RouteObject, G as GetLoaderData, o as GetActionData, V as InitialEntry, W as HydrationState, X as IndexRouteObject, Y as RouteComponentType, Z as HydrateFallbackType, _ as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, $ as NonIndexRouteObject, a0 as Equal, a1 as RouterState, a2 as PatchRoutesOnNavigationFunction, a3 as DataRouteObject, a as ClientLoaderFunction } from './router-CAvh_Drx.mjs'; +-export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, g as unstable_ClientOnErrorFunction, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-CAvh_Drx.mjs'; ++export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bl as createHashHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, g as unstable_ClientOnErrorFunction, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-CAvh_Drx.mjs'; + import * as React from 'react'; + import React__default, { ReactElement } from 'react'; + import { a as RouteModules$1, P as Pages } from './register-QkB3HGjm.mjs'; +diff --git a/dist/production/index.d.ts b/dist/production/index.d.ts +index 9c7869de4cf3b823d7e6c8a5b157dfeec570f52e..5f66986ecd83c49388ff2298090e9a23c3246e13 100644 +--- a/dist/production/index.d.ts ++++ b/dist/production/index.d.ts +@@ -1,5 +1,5 @@ + import { n as Router, o as RouteModules, p as DataStrategyFunction, q as MiddlewareEnabled, c as RouterContextProvider, r as AppLoadContext, T as To, s as NavigateOptions, B as BlockerFunction, t as Blocker, v as SerializeFrom, w as RelativeRoutingType, L as Location, x as ParamParseKey, y as Path, z as PathPattern, E as PathMatch, U as UIMatch, I as Navigation, J as Action, P as Params, K as RouteObject, G as GetLoaderData, m as GetActionData, O as InitialEntry, Q as HydrationState, V as IndexRouteObject, W as RouteComponentType, X as HydrateFallbackType, Y as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, Z as NonIndexRouteObject, _ as Equal, $ as RouterState, a0 as PatchRoutesOnNavigationFunction, a1 as DataRouteObject, a as ClientLoaderFunction } from './instrumentation-Unc20tLk.js'; +-export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, aS as unstable_ClientOnErrorFunction, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation-Unc20tLk.js'; ++export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, bp as UNSAFE_DataRouterContext, bq as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bo as UNSAFE_ErrorResponseImpl, br as UNSAFE_FetchersContext, bs as UNSAFE_LocationContext, bt as UNSAFE_NavigationContext, bu as UNSAFE_RouteContext, bv as UNSAFE_ViewTransitionContext, by as UNSAFE_WithComponentProps, bC as UNSAFE_WithErrorBoundaryProps, bA as UNSAFE_WithHydrateFallbackProps, bl as UNSAFE_createBrowserHistory, bl as createHashHistory, bn as UNSAFE_createRouter, bw as UNSAFE_hydrationRouteProperties, bm as UNSAFE_invariant, bx as UNSAFE_mapRouteProperties, bz as UNSAFE_withComponentProps, bD as UNSAFE_withErrorBoundaryProps, bB as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, aS as unstable_ClientOnErrorFunction, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation-Unc20tLk.js'; + import * as React from 'react'; + import React__default, { ReactElement } from 'react'; + import { a as RouteModules$1, P as Pages } from './register-BpU9rFBJ.js'; +diff --git a/dist/production/index.mjs b/dist/production/index.mjs +index 98858d8e843222f6d0ba2b538ac39290a96af1db..a9615d4623d049ee2de5569b37836bf59f7285cd 100644 +--- a/dist/production/index.mjs ++++ b/dist/production/index.mjs +@@ -8,7 +8,7 @@ + * + * @license MIT + */ +-"use client"; ++"use client" + import { + RSCDefaultRootErrorBoundary, + RSCStaticRouter, +@@ -27,8 +27,8 @@ import { + isCookie, + isSession, + routeRSCServerRequest, +- setDevServerHooks +-} from "./chunk-FDUMZGKM.mjs"; ++ setDevServerHooks, ++} from "./chunk-FDUMZGKM.mjs" + import { + Action, + Await, +@@ -71,6 +71,7 @@ import { + WithComponentProps, + WithErrorBoundaryProps, + WithHydrateFallbackProps, ++ createHashHistory, + createBrowserHistory, + createBrowserRouter, + createClientRoutes, +@@ -138,8 +139,8 @@ import { + useViewTransitionState, + withComponentProps, + withErrorBoundaryProps, +- withHydrateFallbackProps +-} from "./chunk-FUSXQSWG.mjs"; ++ withHydrateFallbackProps, ++} from "./chunk-FUSXQSWG.mjs" + export { + Await, + BrowserRouter, +@@ -233,6 +234,7 @@ export { + renderMatches, + replace, + resolvePath, ++ createHashHistory, + HistoryRouter as unstable_HistoryRouter, + RSCStaticRouter as unstable_RSCStaticRouter, + routeRSCServerRequest as unstable_routeRSCServerRequest, +@@ -267,5 +269,5 @@ export { + useRoutes, + useSearchParams, + useSubmit, +- useViewTransitionState +-}; ++ useViewTransitionState, ++} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87f2f84..8cc0092 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + react-router@7.9.6: + hash: 449aea642e55c8f27031f56bacafb2d98c9e660566c03b23e561d2cc81875869 + path: patches/react-router@7.9.6.patch + importers: .: @@ -83,9 +88,9 @@ importers: react-responsive: specifier: ^10.0.1 version: 10.0.1(react@19.2.0) - react-router-dom: + react-router: specifier: ^7.9.6 - version: 7.9.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.9.6(patch_hash=449aea642e55c8f27031f56bacafb2d98c9e660566c03b23e561d2cc81875869)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react-svg: specifier: ^16.3.0 version: 16.3.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -3007,13 +3012,6 @@ packages: peerDependencies: react: '>=16.8.0' - react-router-dom@7.9.6: - resolution: {integrity: sha512-2MkC2XSXq6HjGcihnx1s0DBWQETI4mlis4Ux7YTLvP67xnGxCvq+BcCQSO81qQHVUTM1V53tl4iVVaY5sReCOA==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - react-router@7.9.6: resolution: {integrity: sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==} engines: {node: '>=20.0.0'} @@ -7225,13 +7223,7 @@ snapshots: react: 19.2.0 shallow-equal: 3.1.0 - react-router-dom@7.9.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): - dependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-router: 7.9.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - - react-router@7.9.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-router@7.9.6(patch_hash=449aea642e55c8f27031f56bacafb2d98c9e660566c03b23e561d2cc81875869)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: cookie: 1.0.2 react: 19.2.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..5fe35ee --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +patchedDependencies: + react-router@7.9.6: patches/react-router@7.9.6.patch diff --git a/src/App.tsx b/src/App.tsx index 7343099..3374fda 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import { Navigate, Route, Routes } from "react-router-dom" +import { Navigate, Route, Routes } from "react-router" import { distinctUntilChanged, map, merge, Observable, switchMap } from "rxjs" import { Header } from "./components/Header/Header" import { Dashboard, dashboardSub$ } from "./pages/Dashboard" diff --git a/src/components/Header/ChainSelector.tsx b/src/components/Header/ChainSelector.tsx index 34f4920..891b451 100644 --- a/src/components/Header/ChainSelector.tsx +++ b/src/components/Header/ChainSelector.tsx @@ -3,7 +3,7 @@ import { knownChains, type KnownChains } from "@/state/chainConfig" import { withSubscribe } from "@/util/rxjs" import { useStateObservable } from "@react-rxjs/core" import { Button } from "@/components/ui/button" -import { useNavigate } from "react-router-dom" +import { useNavigate } from "react-router" import { codeSplit } from "@/util/codeSplit" export const chainNameByChain: Record = { diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 7240040..b32ab0b 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -1,4 +1,4 @@ -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { ChainSelector } from "./ChainSelector" import { SelectAccount } from "./SelectAccount" import { ChopsticksController } from "../ChopsticksController" diff --git a/src/components/NavMenu/NavMenu.tsx b/src/components/NavMenu/NavMenu.tsx index 6490812..98fbb70 100644 --- a/src/components/NavMenu/NavMenu.tsx +++ b/src/components/NavMenu/NavMenu.tsx @@ -1,7 +1,7 @@ import { cn } from "@polkahub/ui-components" import { GitFork, Home, ShieldCheck, Star } from "lucide-react" import { type FC, type PropsWithChildren } from "react" -import { Link, matchPath, useLocation, useParams } from "react-router-dom" +import { Link, matchPath, useLocation, useParams } from "react-router" const pages = [ { diff --git a/src/main.tsx b/src/main.tsx index 2946ec7..c674669 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,7 @@ import { PolkaHubProvider } from "polkahub" import { StrictMode } from "react" import { createRoot } from "react-dom/client" -import { Navigate, Route, Routes } from "react-router-dom" +import { Navigate, Route, Routes } from "react-router" import App, { appSub$ } from "./App.tsx" import { Transactions } from "./components/Transactions.tsx" import "./index.css" diff --git a/src/pages/AccountStatus.tsx b/src/pages/AccountStatus.tsx index efb06f8..eb59cb5 100644 --- a/src/pages/AccountStatus.tsx +++ b/src/pages/AccountStatus.tsx @@ -9,7 +9,7 @@ import { CardPlaceholder } from "@/components/CardPlaceholder" import { accountStatus$ } from "@/state/account" import { useStateObservable } from "@react-rxjs/core" import { Suspense, type FC } from "react" -import { Link } from "react-router-dom" +import { Link } from "react-router" import { EMPTY, merge, switchMap, tap } from "rxjs" import { minBond$ } from "./Nominate/MinBondingAmounts" import { diff --git a/src/pages/Nominate/Nominate.tsx b/src/pages/Nominate/Nominate.tsx index e08bd88..55a4f5d 100644 --- a/src/pages/Nominate/Nominate.tsx +++ b/src/pages/Nominate/Nominate.tsx @@ -2,7 +2,7 @@ import { CardPlaceholder } from "@/components/CardPlaceholder" import { isNominating$ } from "@/state/nominate" import { useStateObservable } from "@react-rxjs/core" import { Suspense } from "react" -import { Navigate, Route, Routes } from "react-router-dom" +import { Navigate, Route, Routes } from "react-router" import { merge } from "rxjs" import { NominatingContent, nominatingContentSub$ } from "./Nominating" import { diff --git a/src/pages/Nominate/NominateStatus.tsx b/src/pages/Nominate/NominateStatus.tsx index 40f15eb..ed6877b 100644 --- a/src/pages/Nominate/NominateStatus.tsx +++ b/src/pages/Nominate/NominateStatus.tsx @@ -7,7 +7,7 @@ import type { FC } from "react" import { merge } from "rxjs" import { NominateLocks, nominateLocksSub$ } from "./NominateLocks" import { StopNominating } from "./StopNominating" -import { useNavigate, useParams } from "react-router-dom" +import { useNavigate, useParams } from "react-router" import { Button } from "@polkahub/ui-components" import { Badge } from "@/components/ui/badge" import { Target } from "lucide-react" diff --git a/src/pages/Nominate/Nominating.tsx b/src/pages/Nominate/Nominating.tsx index c723382..ad1baa7 100644 --- a/src/pages/Nominate/Nominating.tsx +++ b/src/pages/Nominate/Nominating.tsx @@ -16,7 +16,7 @@ import { roundToDecimalPlaces } from "@/util/format" import { state, useStateObservable } from "@react-rxjs/core" import { type SS58String } from "polkadot-api" import { lazy, Suspense, type FC } from "react" -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { combineLatest, debounceTime, diff --git a/src/pages/Nominate/UpsertNomination/ManageNomination.tsx b/src/pages/Nominate/UpsertNomination/ManageNomination.tsx index 1e0dcd5..601ed30 100644 --- a/src/pages/Nominate/UpsertNomination/ManageNomination.tsx +++ b/src/pages/Nominate/UpsertNomination/ManageNomination.tsx @@ -8,7 +8,7 @@ import { PayeePicker, payeePicker$ } from "./PayeePicker" import { Nominations } from "../PickValidators/PickValidators" import { isNominating$ } from "@/state/nominate" import { useStateObservable } from "@react-rxjs/core" -import { useNavigate } from "react-router-dom" +import { useNavigate } from "react-router" import { StopNominating } from "../StopNominating" export const manageNomination$ = merge( diff --git a/src/pages/Nominate/UpsertNomination/UpsertNomination.tsx b/src/pages/Nominate/UpsertNomination/UpsertNomination.tsx index bea5bff..fbd5eb5 100644 --- a/src/pages/Nominate/UpsertNomination/UpsertNomination.tsx +++ b/src/pages/Nominate/UpsertNomination/UpsertNomination.tsx @@ -9,7 +9,7 @@ import { currentNominationPoolStatus$ } from "@/state/nominationPool" import { liftSuspense, useStateObservable } from "@react-rxjs/core" import { GitFork } from "lucide-react" import { lazy, Suspense } from "react" -import { Link } from "react-router-dom" +import { Link } from "react-router" import { merge } from "rxjs" import { bondableAmount$, diff --git a/src/pages/Pools/AccountPoolStatus.tsx b/src/pages/Pools/AccountPoolStatus.tsx index d51c99e..8c146bd 100644 --- a/src/pages/Pools/AccountPoolStatus.tsx +++ b/src/pages/Pools/AccountPoolStatus.tsx @@ -6,7 +6,7 @@ import { currentNominationPoolStatus$ } from "@/state/nominationPool" import { NominationPoolsBondExtra } from "@polkadot-api/descriptors" import { liftSuspense, useStateObservable } from "@react-rxjs/core" import type { FC } from "react" -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { merge } from "rxjs" import { ManageBond } from "./ManageBond" import { ManageLocks, manageLocksSub$ } from "./ManageUnlocks" diff --git a/src/pages/Pools/PoolDetail.tsx b/src/pages/Pools/PoolDetail.tsx index a940cce..cb4ed1a 100644 --- a/src/pages/Pools/PoolDetail.tsx +++ b/src/pages/Pools/PoolDetail.tsx @@ -28,7 +28,7 @@ import { type ReactElement, type ReactNode, } from "react" -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { combineLatest, map, merge, switchMap } from "rxjs" import { aggregatedValidators$ } from "../Validators/validatorList.state" import { JoinPool, joinPoolSub$ } from "./JoinPool" diff --git a/src/pages/Pools/PoolList.tsx b/src/pages/Pools/PoolList.tsx index 52c0dd4..e15612e 100644 --- a/src/pages/Pools/PoolList.tsx +++ b/src/pages/Pools/PoolList.tsx @@ -8,7 +8,7 @@ import { useStateObservable } from "@react-rxjs/core" import { Search } from "lucide-react" import type { FC } from "react" import { useMediaQuery } from "react-responsive" -import { Link } from "react-router-dom" +import { Link } from "react-router" import { TableVirtuoso, Virtuoso, type ItemProps } from "react-virtuoso" import { merge } from "rxjs" import { MaParams, maParamsSub$ } from "../Validators/Params" diff --git a/src/pages/Pools/Pools.tsx b/src/pages/Pools/Pools.tsx index 79e96d4..7750f8c 100644 --- a/src/pages/Pools/Pools.tsx +++ b/src/pages/Pools/Pools.tsx @@ -12,7 +12,7 @@ import { currentNominationPoolStatus$ } from "@/state/nominationPool" import { liftSuspense, useStateObservable } from "@react-rxjs/core" import { GitFork, Star } from "lucide-react" import { lazy, Suspense } from "react" -import { Link, matchPath, Route, Routes } from "react-router-dom" +import { Link, matchPath, Route, Routes } from "react-router" import { defer, map, merge, switchMap } from "rxjs" import { AccountStatus, accountStatusSub$ } from "../AccountStatus" import { minPoolJoin$ } from "./JoinPool" diff --git a/src/pages/Pools/TopPools.tsx b/src/pages/Pools/TopPools.tsx index ebd77cd..8626649 100644 --- a/src/pages/Pools/TopPools.tsx +++ b/src/pages/Pools/TopPools.tsx @@ -6,7 +6,7 @@ import { state, useStateObservable } from "@react-rxjs/core" import { combineLatest, map, switchMap } from "rxjs" import { validatorRewardsToHistoric } from "../Validators/validatorList.state" import { calculatePoolApy, pools$ } from "./poolList.state" -import { Link } from "react-router-dom" +import { Link } from "react-router" const topPools$ = state( combineLatest([ diff --git a/src/pages/Validators/TopValidators.tsx b/src/pages/Validators/TopValidators.tsx index b6cf20a..4189454 100644 --- a/src/pages/Validators/TopValidators.tsx +++ b/src/pages/Validators/TopValidators.tsx @@ -3,7 +3,7 @@ import { activeEraNumber$ } from "@/state/era" import { validatorsEra$ } from "@/state/validators" import { formatPercentage } from "@/util/format" import { state, useStateObservable } from "@react-rxjs/core" -import { Link } from "react-router-dom" +import { Link } from "react-router" import { combineLatest, filter, map, switchMap } from "rxjs" import { validatorPrefs$ } from "./validatorList.state" diff --git a/src/pages/Validators/Validator.tsx b/src/pages/Validators/Validator.tsx index fbd2737..62f40a2 100644 --- a/src/pages/Validators/Validator.tsx +++ b/src/pages/Validators/Validator.tsx @@ -5,7 +5,7 @@ import { cn } from "@/lib/utils" import { formatPercentage } from "@/util/format" import { useStateObservable } from "@react-rxjs/core" import { createContext, useContext, type FC, type ReactElement } from "react" -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { validatorPrefs$, type PositionValidator } from "./validatorList.state" const whiteCtx = createContext(false) diff --git a/src/pages/Validators/ValidatorDetail.tsx b/src/pages/Validators/ValidatorDetail.tsx index e306c14..b674b3e 100644 --- a/src/pages/Validators/ValidatorDetail.tsx +++ b/src/pages/Validators/ValidatorDetail.tsx @@ -21,7 +21,7 @@ import { } from "lucide-react" import type { SS58String } from "polkadot-api" import { lazy, Suspense, type FC } from "react" -import { Link, useParams } from "react-router-dom" +import { Link, useParams } from "react-router" import { combineLatest, debounceTime, map, merge, switchMap } from "rxjs" import { Stat } from "../Pools/PoolDetail" diff --git a/src/pages/Validators/Validators.tsx b/src/pages/Validators/Validators.tsx index 1662599..85e9843 100644 --- a/src/pages/Validators/Validators.tsx +++ b/src/pages/Validators/Validators.tsx @@ -1,7 +1,7 @@ import { CardPlaceholder } from "@/components/CardPlaceholder" import { location$ } from "@/router" import { lazy, Suspense } from "react" -import { matchPath, Route, Routes } from "react-router-dom" +import { matchPath, Route, Routes } from "react-router" import { map, switchMap } from "rxjs" import { ValidatorDetailPage, validatorDetailPageSub$ } from "./ValidatorDetail" diff --git a/src/router.tsx b/src/router.tsx index e9fe654..a4d4819 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,11 +1,17 @@ import { type FC, type PropsWithChildren } from "react" import { + createHashHistory, unstable_HistoryRouter as HistoryRouter, UNSAFE_createBrowserHistory, -} from "react-router-dom" +} from "react-router" import { concat, defer, map, Observable, of, share } from "rxjs" -export const history = UNSAFE_createBrowserHistory({ +const createHistory = import.meta.env.VITE_HASH_ROUTER + ? createHashHistory + : UNSAFE_createBrowserHistory + +export const history = createHistory({ + window, v5Compat: true, }) export type HistoryUpdate = Parameters< diff --git a/src/state/chain.ts b/src/state/chain.ts index e3292c5..b68e2aa 100644 --- a/src/state/chain.ts +++ b/src/state/chain.ts @@ -8,7 +8,7 @@ import { createClient, type PolkadotClient } from "polkadot-api" import { getSmProvider } from "polkadot-api/sm-provider" import type { Client as Smoldot } from "polkadot-api/smoldot" import SmWorker from "polkadot-api/smoldot/worker?worker" -import { matchPath } from "react-router-dom" +import { matchPath } from "react-router" import { combineLatest, concat, @@ -64,7 +64,7 @@ let smoldot: Promise | null = null export const [useSmoldot$, setUseSmoldot] = createLocalStorageState( "use-smoldot", - false, + !!import.meta.env.VITE_HASH_ROUTER, ) useSmoldot$.pipe(skip(1)).subscribe(() => location.reload())