import * as React from "react"; import * as express from "express"; import { renderToString } from "react-dom/server"; import { Router, Route, Link, Switch, Redirect, useRouter, useRoute, Path, Params } from "wouter"; import useLocation from "wouter/use-location"; import staticLocationHook = require("wouter/static-location"); const Inbox = () =>

Inbox

; const BaseTest = () => (
Profile About Us console.log("navigated to /inbox")}> Inbox About Us {params =>
Hello, {params && params.name}!
}
); ; const UseRouterTest = () => { const { hook, matcher } = useRouter(); const [path, push] = hook(); const [match, params] = matcher("/users/:name", path); if (!match) return null; return (
Your name is {params && params.name}
push("/orders")}>Orders
); }; const UseRouteTest = () => { const [match, params] = useRoute("/users/:name"); if (!match) return null; return
Welcome, {params && params.name}!
; }; const useLocationTest = () => { const [location, setLocation] = useLocation(); return (
Current location: {location}
setLocation("/home")}>Home
); }; /* staticLocationHook Test */ const app = express(); app.get("*", (req, res) => { const html = renderToString( A B ); res.status(200).send(html); }); /* customMatcher Test */ const customMatcher = (pattern: string, path: Path): [boolean, Params] => { const reversed = path .replace(/^\//, "") .split("") .reverse() .join(""); return [pattern.replace(/^\//, "") === reversed, {}]; }; const customMatcherTest = () => ( A );