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}; };