Skip to content

Commit fd1645b

Browse files
author
dailymp
committed
Updating example 3
1 parent 7344110 commit fd1645b

4 files changed

Lines changed: 80 additions & 39 deletions

File tree

00 BoilerPlate/package-lock.json

Lines changed: 21 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

03 Navigation/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"author": "Lemoncode",
1010
"license": "MIT",
1111
"dependencies": {
12+
"@types/node": "^11.9.5",
1213
"bootstrap": "^4.1.3",
1314
"jquery": "^3.2.1",
1415
"mini-css-extract-plugin": "^0.4.1",

03 Navigation/readme.md

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,30 @@ Install [Node.js and npm](https://nodejs.org/en/) (v6.6.0) if they are not alrea
2020
installed on your computer.
2121

2222
> Verify that you are running at least node v6.x.x and npm 3.x.x by running `node -v` and `npm -v`
23-
in a terminal/console window. Older versions may produce errors.
23+
> in a terminal/console window. Older versions may produce errors.
2424
2525
## Steps to build it
2626

2727
- Copy the content of the `02 Components` folder to an empty folder for the sample.
2828

2929
- Install the npm packages described in the `package.json` and verify that it works:
3030

31-
```bash
32-
$ npm install
33-
```
31+
```bash
32+
$ npm install
33+
```
3434

3535
- Install `react-router-dom` and typings:
3636

3737
```bash
3838
npm install react-router-dom --save
3939
npm install @types/react-router-dom --save-dev
40+
npm i @types/node
4041
```
4142

4243
- Update `vendors`:
4344

4445
### ./webpack.config.js
46+
4547
```diff
4648
...
4749
entry: {
@@ -62,30 +64,31 @@ entry: {
6264
- Now, we can start adding a dummy `Members Page`:
6365

6466
### ./src/components/members/page.tsx
67+
6568
```javascript
66-
import * as React from 'react';
69+
import * as React from "react";
6770

6871
export const MembersPage: React.StatelessComponent<{}> = () => {
6972
return (
7073
<div className="row">
7174
<h2> Members Page</h2>
7275
</div>
7376
);
74-
}
75-
77+
};
7678
```
7779

7880
- And its `index.ts` file:
7981

8082
### ./src/components/members/index.ts
81-
```javascript
82-
export * from './page';
8383

84+
```javascript
85+
export * from "./page";
8486
```
8587

8688
- Update `header` component to add links to navigate other pages:
8789

8890
### ./src/components/header.tsx
91+
8992
```diff
9093
import * as React from 'react';
9194
+ import { Link } from 'react-router-dom';
@@ -103,13 +106,12 @@ export const Header: React.StatelessComponent<{}> = () => {
103106
+ <div className="collapse navbar-collapse" id="navbarSupportedContent">
104107
+ <ul className="navbar-nav mr-auto">
105108
+ <li className="nav-item">
106-
+ {/* <a className="nav-link" href="#">Home <span className="sr-only">(current)</span></a> */}
107109
+ <Link className="nav-link" to="/about"> About</Link>
108110
+ </li>
109111
+ <li className="nav-item ">
110112
+ <Link className="nav-link" to="/members"> Members </Link>
111-
+ </li>
112-
+ </ul>
113+
+ </li>
114+
+ </ul>
113115
+ </div>
114116
+ </nav>
115117
</div>
@@ -121,6 +123,7 @@ export const Header: React.StatelessComponent<{}> = () => {
121123
- Update components `index.ts` file:
122124

123125
### ./src/components/index.ts
126+
124127
```diff
125128
export * from './header';
126129
export * from './about';
@@ -133,11 +136,12 @@ export * from './about';
133136
- Now, we are going to create the `AppRouter` component where we define routes:
134137

135138
### ./src/router.tsx
139+
136140
```javascript
137-
import * as React from 'react';
138-
import { Route, HashRouter, Switch } from 'react-router-dom';
139-
import { App } from './app';
140-
import { About, MembersPage } from './components';
141+
import * as React from "react";
142+
import { Route, HashRouter, Switch } from "react-router-dom";
143+
import { App } from "./app";
144+
import { About, MembersPage } from "./components";
141145

142146
export const AppRouter: React.StatelessComponent<{}> = () => {
143147
return (
@@ -152,7 +156,7 @@ export * from './about';
152156
</div>
153157
</HashRouter>
154158
);
155-
}
159+
};
156160
```
157161

158162
- The type of router that we are using is HashRouter because we are creating a static website.
@@ -163,6 +167,7 @@ export * from './about';
163167
- Update `App`. We will remove the div enclosing `Header` because we have already added it in `AppRouter`:
164168

165169
### ./src/app.tsx
170+
166171
```diff
167172
import * as React from 'react';
168173
- import { Header, About } from './components';
@@ -183,6 +188,7 @@ import * as React from 'react';
183188
- And finally, update main file:
184189

185190
### ./src/index.tsx
191+
186192
```diff
187193
import * as React from 'react';
188194
import * as ReactDOM from 'react-dom';
@@ -198,11 +204,11 @@ ReactDOM.render(
198204

199205
- Execute the example:
200206

201-
```bash
202-
$ npm start
203-
```
207+
```bash
208+
$ npm start
209+
```
204210

205211
# About Lemoncode
206212

207213
We are a team of long-term experienced freelance developers, established as a group in 2010.
208-
We specialize in Front End technologies and .NET. [Click here](http://lemoncode.net/services/en/#en-home) to get more info about us.
214+
We specialize in Front End technologies and .NET. [Click here](http://lemoncode.net/services/en/#en-home) to get more info about us.
Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,49 @@
1-
import * as React from 'react';
2-
import { Link } from 'react-router-dom';
1+
import * as React from "react";
2+
import { Link } from "react-router-dom";
33

44
export const Header: React.StatelessComponent<{}> = () => {
55
return (
66
<div className="row col-12">
7+
<nav
8+
className="navbar navbar-expand-lg navbar-light bg-white"
9+
id="navbar"
10+
>
11+
<img
12+
className="navbar-icon"
13+
src={require("../images/lemoncode.png")}
14+
alt="logo"
15+
/>
16+
<a className="navbar-brand" href="#">
17+
Lemoncode
18+
</a>
719

8-
<nav className="navbar navbar-expand-lg navbar-light bg-white" id="navbar">
9-
<img className="navbar-icon" src={require('../images/lemoncode.png')} alt="logo" />
10-
<a className="navbar-brand" href="#">Lemoncode</a>
11-
12-
<button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
13-
<span className="navbar-toggler-icon"></span>
20+
<button
21+
className="navbar-toggler"
22+
type="button"
23+
data-toggle="collapse"
24+
data-target="#navbarSupportedContent"
25+
aria-controls="navbarSupportedContent"
26+
aria-expanded="false"
27+
aria-label="Toggle navigation"
28+
>
29+
<span className="navbar-toggler-icon" />
1430
</button>
1531

1632
<div className="collapse navbar-collapse" id="navbarSupportedContent">
1733
<ul className="navbar-nav mr-auto">
1834
<li className="nav-item">
19-
<Link className="nav-link" to="/about"> About</Link>
35+
<Link className="nav-link" to="/about">
36+
About
37+
</Link>
2038
</li>
2139
<li className="nav-item ">
22-
<Link className="nav-link" to="/members"> Members </Link>
40+
<Link className="nav-link" to="/members">
41+
Members
42+
</Link>
2343
</li>
2444
</ul>
2545
</div>
2646
</nav>
2747
</div>
2848
);
29-
}
49+
};

0 commit comments

Comments
 (0)