Skip to content

Commit 673c48e

Browse files
authored
Merge pull request #2126 from JoinColony/fix/2121-back-button-breaks-app
Consistent back button redirects
2 parents 65908b9 + 8f6de7f commit 673c48e

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

src/modules/dashboard/components/ColonyHome/ColonyHome.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ const ColonyHome = ({ match, location }: Props) => {
117117
return [{ id: 'domain.root' }];
118118

119119
default:
120+
if (!domains) {
121+
return [{ id: 'domain.root' }];
122+
}
120123
return domains[filteredDomainId]
121124
? [{ id: 'domain.root' }, domains[filteredDomainId].name]
122125
: [{ id: 'domain.root' }];

src/routes/ConnectedOnlyRoute.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import { Route, Redirect, RouteProps } from 'react-router-dom';
44
import { CONNECT_ROUTE } from './routeConstants';
55
import { RouteComponentProps } from '~pages/RouteLayouts';
66

7+
type routePropsFn = (params: any) => RouteComponentProps;
8+
79
interface Props extends RouteProps {
810
component: ComponentType<any>;
911
layout: ComponentType<any>;
1012
isConnected?: boolean;
11-
routeProps?: RouteComponentProps;
13+
routeProps?: RouteComponentProps | routePropsFn;
1214
}
1315

1416
const ConnectedOnlyRoute = ({
@@ -24,11 +26,16 @@ const ConnectedOnlyRoute = ({
2426
* Render props that are passed directly to the route Component
2527
*/
2628
render={props => {
27-
const { location } = props;
29+
const {
30+
location,
31+
match: { params },
32+
} = props;
33+
const passedDownRouteProps =
34+
typeof routeProps !== 'function' ? routeProps : routeProps(params);
2835
if (isConnected) {
2936
return (
30-
<Layout routeProps={routeProps} {...props}>
31-
<Component routeProps={routeProps} {...props} />
37+
<Layout routeProps={passedDownRouteProps} {...props}>
38+
<Component routeProps={passedDownRouteProps} {...props} />
3239
</Layout>
3340
);
3441
}

src/routes/Routes.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,29 +124,32 @@ const Routes = () => {
124124
path={ADMIN_DASHBOARD_ROUTE}
125125
component={AdminDashboard}
126126
layout={NavBar}
127-
routeProps={{
127+
routeProps={({ colonyName }) => ({
128128
backText: ColonyBackText,
129-
}}
129+
backRoute: `/colony/${colonyName}`,
130+
})}
130131
/>
131132
<ConnectedOnlyRoute
132133
exact
133134
isConnected={isConnected}
134135
path={TASK_ROUTE}
135136
component={Task}
136137
layout={NavBar}
137-
routeProps={{
138+
routeProps={({ colonyName }) => ({
138139
backText: ColonyBackText,
139-
}}
140+
backRoute: `/colony/${colonyName}`,
141+
})}
140142
/>
141143
<ConnectedOnlyRoute
142144
exact
143145
isConnected={isConnected}
144146
path={LEVEL_EDIT_ROUTE}
145147
component={LevelEdit}
146148
layout={NavBar}
147-
routeProps={{
149+
routeProps={({ colonyName, programId }) => ({
148150
backText: ProgramBackText,
149-
}}
151+
backRoute: `/colony/${colonyName}/program/${programId}`,
152+
})}
150153
/>
151154
<ConnectedOnlyRoute
152155
isConnected={isConnected}

0 commit comments

Comments
 (0)