24 lines
		
	
	
		
			781 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			781 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { PropsWithChildren } from 'react';
 | 
						|
import React from 'react';
 | 
						|
 | 
						|
import type { History } from 'history';
 | 
						|
import { createBrowserHistory } from 'history';
 | 
						|
import { Router as OriginalRouter } from 'react-router';
 | 
						|
 | 
						|
import { layoutFromWindow } from 'mastodon/is_mobile';
 | 
						|
 | 
						|
const browserHistory = createBrowserHistory();
 | 
						|
const originalPush = browserHistory.push.bind(browserHistory);
 | 
						|
 | 
						|
browserHistory.push = (path: string, state: History.LocationState) => {
 | 
						|
  if (layoutFromWindow() === 'multi-column' && !path.startsWith('/deck')) {
 | 
						|
    originalPush(`/deck${path}`, state);
 | 
						|
  } else {
 | 
						|
    originalPush(path, state);
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
export const Router: React.FC<PropsWithChildren> = ({ children }) => {
 | 
						|
  return <OriginalRouter history={browserHistory}>{children}</OriginalRouter>;
 | 
						|
};
 |