using found withRouter

This commit is contained in:
Belén Curcio
2018-09-27 11:20:34 -03:00
parent adee5377c9
commit 708bfe17a3
9 changed files with 60 additions and 34 deletions
@@ -0,0 +1,8 @@
import React, { StatelessComponent } from "react";
import { HorizontalGutter } from "talk-ui/components";
const Community: StatelessComponent = ({ children }) => (
<HorizontalGutter>Community</HorizontalGutter>
);
export default Community;
@@ -0,0 +1,8 @@
import React, { StatelessComponent } from "react";
import { HorizontalGutter } from "talk-ui/components";
const Configure: StatelessComponent = ({ children }) => (
<HorizontalGutter>Configure</HorizontalGutter>
);
export default Configure;
@@ -0,0 +1,8 @@
import React, { StatelessComponent } from "react";
import { HorizontalGutter } from "talk-ui/components";
const Moderate: StatelessComponent = ({ children }) => (
<HorizontalGutter>Moderate</HorizontalGutter>
);
export default Moderate;
@@ -0,0 +1,8 @@
import React, { StatelessComponent } from "react";
import { HorizontalGutter } from "talk-ui/components";
const Stories: StatelessComponent = ({ children }) => (
<HorizontalGutter>Stories</HorizontalGutter>
);
export default Stories;
@@ -1,16 +1,16 @@
import { Router, withRouter } from "found";
import React, { Component } from "react";
import Navigation from "../components/Navigation";
import { SetViewMutation, withSetViewMutation } from "../mutations";
interface NavigationContainerProps {
setView: SetViewMutation;
router: Router;
}
class NavigationContainer extends Component<NavigationContainerProps> {
private goToModerate = () => this.props.setView({ view: "MODERATE" });
private goToCommunity = () => this.props.setView({ view: "COMMUNITY" });
private goToStories = () => this.props.setView({ view: "STORIES" });
private goToConfigure = () => this.props.setView({ view: "CONFIGURE" });
private goToModerate = () => this.props.router.replace("/admin/moderate");
private goToCommunity = () => this.props.router.replace("/admin/community");
private goToStories = () => this.props.router.replace("/admin/stories");
private goToConfigure = () => this.props.router.replace("/admin/configures");
public render() {
return (
<Navigation
@@ -23,4 +23,4 @@ class NavigationContainer extends Component<NavigationContainerProps> {
}
}
export default withSetViewMutation(NavigationContainer);
export default withRouter(NavigationContainer);
+4 -7
View File
@@ -1,17 +1,14 @@
import { BrowserProtocol, queryMiddleware } from "farce";
import { createFarceRouter, createRender, makeRouteConfig, Route } from "found";
import { createFarceRouter, createRender } from "found";
import { Resolver } from "found-relay";
import React from "react";
import { StatelessComponent } from "react";
import React, { StatelessComponent } from "react";
import ReactDOM from "react-dom";
import { createManaged } from "talk-framework/lib/bootstrap";
import { TalkContextConsumer } from "talk-framework/lib/bootstrap/TalkContext";
import App from "./components/App";
import { initLocalState } from "./local";
import localesData from "./locales";
import routeConfig from "./routeConfig";
async function main() {
const ManagedTalkContextProvider = await createManaged({
@@ -23,7 +20,7 @@ async function main() {
const Router = createFarceRouter({
historyProtocol: new BrowserProtocol(),
historyMiddlewares: [queryMiddleware],
routeConfig: makeRouteConfig(<Route path="/" Component={App} />),
routeConfig,
render: createRender({}),
});
@@ -1,19 +0,0 @@
import { commitLocalUpdate, Environment } from "relay-runtime";
import { createMutationContainer } from "talk-framework/lib/relay";
import { LOCAL_ID } from "talk-framework/lib/relay/withLocalStateContainer";
export interface SetViewInput {
view: "MODERATE" | "COMMUNITY" | "STORIES" | "CONFIGURE";
}
export type SetViewMutation = (input: SetViewInput) => Promise<void>;
export async function commit(environment: Environment, input: SetViewInput) {
return commitLocalUpdate(environment, store => {
const record = store.get(LOCAL_ID)!;
record.setValue(input.view, "view");
});
}
export const withSetViewMutation = createMutationContainer("setView", commit);
-1
View File
@@ -1 +0,0 @@
export { withSetViewMutation, SetViewMutation } from "./SetViewMutation";
+17
View File
@@ -0,0 +1,17 @@
import { makeRouteConfig, Route } from "found";
import React from "react";
import App from "./components/App";
import Community from "./components/Community";
import Configure from "./components/Configure";
import Moderate from "./components/Moderate";
import Stories from "./components/Stories";
export default makeRouteConfig(
<Route path="admin" Component={App}>
<Route path="moderate" Component={Moderate} />
<Route path="community" Component={Community} />
<Route path="stories" Component={Stories} />
<Route path="configure" Component={Configure} />
</Route>
);