Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@
14. Cart

#### React Router

3:47:00
4:47:38
17,107 changes: 17,084 additions & 23 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"react-scripts": "3.4.3"
},
"scripts": {
"start": "react-scripts start",
"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
Expand Down
12 changes: 7 additions & 5 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import React from 'react'
import React from "react";
import Setup from "./tutorial/1-useState/setup/5-useState-counter";

function App() {
return (
<div className='container'>
<h2>Advanced Tutorial</h2>
<div className="container">
<Setup />
</div>
)
);
}

export default App
export default App;
16 changes: 14 additions & 2 deletions src/tutorial/1-useState/setup/1-error-example.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
import React from 'react';
import React from "react";

const ErrorExample = () => {
return <h2>useState error example</h2>;
let title = "random title";
const handleClick = () => {
title = "hello people";
console.log(title);
};
return (
<React.Fragment>
<h2>{title}</h2>
<button type="button" className="btn" onClick={handleClick}>
change title
</button>
</React.Fragment>
);
};

export default ErrorExample;
24 changes: 22 additions & 2 deletions src/tutorial/1-useState/setup/2-useState-basics.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@
import React, { useState } from 'react';
import React, { useState } from "react";

const UseStateBasics = () => {
return <h2>useState basic example</h2>;
// console.log(useState);
// console.log(useState("hello world"));
// const value = useState(1)[0];
// const handler = useState(1)[1];
// console.log(value, handler);
const [text, setText] = useState("random title");
const handleClick = () => {
if (text === "random title") {
setText("hello world");
} else {
setText("random title");
}
};
return (
<React.Fragment>
<h1>{text}</h1>
<button className="btn" onClick={handleClick}>
change title
</button>
</React.Fragment>
);
};

export default UseStateBasics;
27 changes: 24 additions & 3 deletions src/tutorial/1-useState/setup/3-useState-array.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
import React from 'react';
import { data } from '../../../data';
import React from "react";
import { data } from "../../../data";

const UseStateArray = () => {
return <h2>useState array example</h2>;
const [people, setPeople] = React.useState(data);
const removeItem = (id) => {
let newPeople = people.filter((person) => person.id !== id);
setPeople(newPeople);
};
return (
<>
{people.map((person) => {
// console.log(person);
const { id, name } = person;
return (
<div key={id} className="item">
<h4>{name}</h4>
<button onClick={() => removeItem(id)}>remove</button>
</div>
);
})}
<button className="btn" onClick={() => setPeople([])}>
clear items
</button>
</>
);
};

export default UseStateArray;
27 changes: 25 additions & 2 deletions src/tutorial/1-useState/setup/4-useState-object.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,30 @@
import React, { useState } from 'react';
import React, { useState } from "react";

const UseStateObject = () => {
return <h2>useState object example</h2>;
const [person, setPerson] = useState({
name: "peter",
age: 24,
message: "random message",
});
const [name, setName] = useState("peter");
const [age, setAge] = useState(24);
const [message, setMessage] = useState("random message");

// console.log(person);
const changeMessage = () => {
// setPerson({ ...person, message: "hello world" });
setMessage("hello world");
};
return (
<>
<h3>{name}</h3>
<h3>{age}</h3>
<h3>{message}</h3>
<button className="btn" onClick={changeMessage}>
change message
</button>
</>
);
};

export default UseStateObject;
43 changes: 41 additions & 2 deletions src/tutorial/1-useState/setup/5-useState-counter.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,46 @@
import React, { useState } from 'react';
import React, { useState } from "react";

const UseStateCounter = () => {
return <h2>useState counter example</h2>;
const [value, setValue] = useState(0);

const reset = () => {
setValue(0);
};

const complexIncrease = () => {
setTimeout(() => {
// setValue(value + 1);
setValue((prevState) => {
return prevState + 1;
});
}, 2000);
};

return (
<>
<section style={{ margin: "4rem 0" }}>
<h2>regular counter</h2>
<h1>{value}</h1>
<button className="btn" onClick={() => setValue(value - 1)}>
decrease
</button>
<button className="btn" onClick={reset}>
reset
</button>
<button className="btn" onClick={() => setValue(value + 1)}>
increase
</button>
</section>
<section style={{ margin: "4rem 0" }}>
<h2>more complex counter</h2>
<h1>{value}</h1>
<button className="btn" onClick={complexIncrease}>
{" "}
increase later{" "}
</button>
</section>
</>
);
};

export default UseStateCounter;