import { type PropsWithChildren } from "react"; import React from "react"; import { createBrowserHistory } from "history"; import { Router as OriginalRouter } from "react-router"; interface MastodonLocationState { fromMastodon?: boolean, mastodonModalKey?: string, } const browserHistory = createBrowserHistory< MastodonLocationState | undefined >(); const originalPush = browserHistory.push.bind(browserHistory); const originalReplace = browserHistory.replace.bind(browserHistory); browserHistory.push = (path: string, state?: MastodonLocationState) => { state = state ?? {}; state.fromMastodon = true; originalPush(path, state); }; browserHistory.replace = (path: string, state?: MastodonLocationState) => { if (browserHistory.location.state?.fromMastodon) { state = state ?? {}; state.fromMastodon = true; } originalReplace(path, state); }; export const Router: React.FC = ({ children }) => { return {children}; };