mirror of
https://github.com/trezor/trezor-wallet
synced 2024-11-28 19:28:08 +00:00
fix redirection to /bridge from landingpage
- allows to redirect from / to /bridge route - fix current bridge version if transport is webusb - RouterActions optionally verifies if requested url has "landing" prefix in ./support/routes
This commit is contained in:
parent
31fc23228a
commit
600d3565f7
@ -152,7 +152,8 @@ export const getValidUrl = (action: RouterAction): PayloadAction<string> => (dis
|
|||||||
const shouldBeLandingPage = getState().devices.length < 1 || !getState().wallet.ready || getState().connect.error !== null;
|
const shouldBeLandingPage = getState().devices.length < 1 || !getState().wallet.ready || getState().connect.error !== null;
|
||||||
const landingPageUrl = dispatch(isLandingPageUrl(requestedUrl));
|
const landingPageUrl = dispatch(isLandingPageUrl(requestedUrl));
|
||||||
if (shouldBeLandingPage) {
|
if (shouldBeLandingPage) {
|
||||||
return !landingPageUrl ? '/' : requestedUrl;
|
const landingPageRoute = dispatch(isLandingPageUrl(requestedUrl, true));
|
||||||
|
return !landingPageRoute ? '/' : requestedUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disallow displaying landing page
|
// Disallow displaying landing page
|
||||||
@ -283,11 +284,17 @@ const goto = (url: string): ThunkAction => (dispatch: Dispatch, getState: GetSta
|
|||||||
/*
|
/*
|
||||||
* Check if requested OR current url is landing page
|
* Check if requested OR current url is landing page
|
||||||
*/
|
*/
|
||||||
export const isLandingPageUrl = ($url?: string): PayloadAction<boolean> => (dispatch: Dispatch, getState: GetState): boolean => {
|
export const isLandingPageUrl = ($url?: string, checkRoutes: boolean = false): PayloadAction<boolean> => (dispatch: Dispatch, getState: GetState): boolean => {
|
||||||
let url: ?string = $url;
|
let url: ?string = $url;
|
||||||
if (typeof url !== 'string') {
|
if (typeof url !== 'string') {
|
||||||
url = getState().router.location.pathname;
|
url = getState().router.location.pathname;
|
||||||
}
|
}
|
||||||
|
if (checkRoutes) {
|
||||||
|
const isLandingRoute = routes.find(r => r.pattern === url && r.name.indexOf('landing') >= 0);
|
||||||
|
if (isLandingRoute) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
return url === '/';
|
return url === '/';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -334,7 +341,7 @@ export const gotoFirmwareUpdate = (): ThunkAction => (dispatch: Dispatch, getSta
|
|||||||
*/
|
*/
|
||||||
export const setInitialUrl = (): PayloadAction<boolean> => (dispatch: Dispatch, getState: GetState): boolean => {
|
export const setInitialUrl = (): PayloadAction<boolean> => (dispatch: Dispatch, getState: GetState): boolean => {
|
||||||
const { initialPathname } = getState().wallet;
|
const { initialPathname } = getState().wallet;
|
||||||
if (typeof initialPathname === 'string' && !dispatch(isLandingPageUrl(initialPathname))) {
|
if (typeof initialPathname === 'string' && !dispatch(isLandingPageUrl(initialPathname, true))) {
|
||||||
const valid = dispatch(getValidUrl({
|
const valid = dispatch(getValidUrl({
|
||||||
type: LOCATION_CHANGE,
|
type: LOCATION_CHANGE,
|
||||||
payload: {
|
payload: {
|
||||||
|
@ -131,7 +131,7 @@ class InstallBridge extends Component<Props, State> {
|
|||||||
|
|
||||||
const currentTarget: ?InstallTarget = installers.find(i => i.preferred === true);
|
const currentTarget: ?InstallTarget = installers.find(i => i.preferred === true);
|
||||||
this.state = {
|
this.state = {
|
||||||
currentVersion: props.transport.type ? `Your version ${props.transport.version}` : 'Not installed',
|
currentVersion: props.transport.type && props.transport.type === 'bridge' ? `Your version ${props.transport.version}` : 'Not installed',
|
||||||
latestVersion: props.transport.bridge.version.join('.'),
|
latestVersion: props.transport.bridge.version.join('.'),
|
||||||
installers,
|
installers,
|
||||||
target: currentTarget || installers[0],
|
target: currentTarget || installers[0],
|
||||||
|
@ -106,7 +106,7 @@ export default (props: Props) => {
|
|||||||
{shouldShowUnsupportedBrowser && <BrowserNotSupported />}
|
{shouldShowUnsupportedBrowser && <BrowserNotSupported />}
|
||||||
{shouldShowInstallBridge && <InstallBridge selectFirstAvailableDevice={props.selectFirstAvailableDevice} transport={transport} />}
|
{shouldShowInstallBridge && <InstallBridge selectFirstAvailableDevice={props.selectFirstAvailableDevice} transport={transport} />}
|
||||||
|
|
||||||
{(shouldShowConnectDevice || shouldShowDisconnectDevice) && (
|
{!shouldShowInstallBridge && (shouldShowConnectDevice || shouldShowDisconnectDevice) && (
|
||||||
<div>
|
<div>
|
||||||
<TitleWrapper>
|
<TitleWrapper>
|
||||||
<H2 claim>The private bank in your hands.</H2>
|
<H2 claim>The private bank in your hands.</H2>
|
||||||
|
Loading…
Reference in New Issue
Block a user