forked from horizon-games/react-ts-app
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.tsx
66 lines (58 loc) · 1.48 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import * as React from 'react'
import { Provider, observer } from 'mobx-react'
import { RouterProvider, Outlet } from 'mobx-little-router-react'
import styled, { injectGlobal } from 'styled-components'
import Helmet from 'react-helmet'
import Header from './components/Header'
interface AppProps {
router: any
stores: any
}
@observer
class App extends React.Component<AppProps> {
render() {
const { router, stores } = this.props
return (
<Provider {...stores}>
<RouterProvider router={router}>
<div>
<Helmet titleTemplate='react-ts-app - %s'>
<title>react-ts.app</title>
<meta name='description' content='yeay app' />
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
<link rel='icon' href='' />
</Helmet>
<div>
<Header />
<Viewport>
<p>pathname: <b>{JSON.stringify(this.props.router.location.pathname)}</b></p>
<Outlet />
<Outlet name='modal' />
</Viewport>
</div>
</div>
</RouterProvider>
</Provider>
)
}
}
const Viewport = styled.div`
padding: 54px 18px;
`
injectGlobal`
body {
font-family: "Helvetica Neue", sans-serif;
padding: 0;
margin: 0;
* {
box-sizing: border-box;
}
}
input:focus,
select:focus,
textarea:focus,
button:focus {
outline: none;
}
`
export default App