├── .gitignore ├── README.md ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt └── src ├── App.js ├── assets └── default-image.jpeg ├── data.js ├── index.css ├── index.js └── tutorial ├── 1-useState ├── final │ ├── 1-error-example.js │ ├── 2-useState-basics.js │ ├── 3-useState-array.js │ ├── 4-useState-object.js │ └── 5-useState-counter.js └── setup │ ├── 1-error-example.js │ ├── 2-useState-basics.js │ ├── 3-useState-array.js │ ├── 4-useState-object.js │ └── 5-useState-counter.js ├── 10-prop-types ├── final │ ├── Product.js │ ├── index.js │ └── testing.js └── setup │ ├── Product.js │ └── index.js ├── 12-memo-useMemo-useCallback ├── final │ └── index.js └── setup │ └── index.js ├── 2-useEffect ├── final │ ├── 1-useEffect-basics.js │ ├── 2-useEffect-cleanup.js │ └── 3-useEffect-fetch-data.js └── setup │ ├── 1-useEffect-basics.js │ ├── 2-useEffect-cleanup.js │ └── 3-useEffect-fetch-data.js ├── 3-conditional-rendering ├── final │ ├── 1-multiple-returns.js │ ├── 2-short-circuit.js │ └── 3-show-hide.js └── setup │ ├── 1-multiple-returns.js │ ├── 2-short-circuit.js │ └── 3-show-hide.js ├── 4-forms ├── final │ ├── 1-controlled-inputs.js │ └── 2-multiple-inputs.js └── setup │ ├── 1-controlled-inputs.js │ └── 2-multiple-inputs.js ├── 5-useRef ├── final │ └── 1-useRef-basics.js └── setup │ └── 1-useRef-basics.js ├── 6-useReducer ├── final │ ├── Modal.js │ ├── index.js │ └── reducer.js └── setup │ ├── Modal.js │ └── index.js ├── 7-prop-drilling ├── final │ └── 1-prop-drilling.js └── setup │ └── 1-prop-drilling.js ├── 8-useContext ├── final │ └── 1-context-api.js └── setup │ └── 1-context-api.js └── 9-custom-hooks ├── final ├── 1-fetch-example.js └── 2-useFetch.js └── setup ├── 1-fetch-example.js └── 2-useFetch.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/README.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/package.json -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/index.html -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/logo512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/manifest.json -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/public/robots.txt -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/App.js -------------------------------------------------------------------------------- /src/assets/default-image.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/assets/default-image.jpeg -------------------------------------------------------------------------------- /src/data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/data.js -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/index.css -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/index.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/final/1-error-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/final/1-error-example.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/final/2-useState-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/final/2-useState-basics.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/final/3-useState-array.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/final/3-useState-array.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/final/4-useState-object.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/final/4-useState-object.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/final/5-useState-counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/final/5-useState-counter.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/setup/1-error-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/setup/1-error-example.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/setup/2-useState-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/setup/2-useState-basics.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/setup/3-useState-array.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/setup/3-useState-array.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/setup/4-useState-object.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/setup/4-useState-object.js -------------------------------------------------------------------------------- /src/tutorial/1-useState/setup/5-useState-counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/1-useState/setup/5-useState-counter.js -------------------------------------------------------------------------------- /src/tutorial/10-prop-types/final/Product.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/10-prop-types/final/Product.js -------------------------------------------------------------------------------- /src/tutorial/10-prop-types/final/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/10-prop-types/final/index.js -------------------------------------------------------------------------------- /src/tutorial/10-prop-types/final/testing.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/10-prop-types/final/testing.js -------------------------------------------------------------------------------- /src/tutorial/10-prop-types/setup/Product.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/10-prop-types/setup/Product.js -------------------------------------------------------------------------------- /src/tutorial/10-prop-types/setup/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/10-prop-types/setup/index.js -------------------------------------------------------------------------------- /src/tutorial/12-memo-useMemo-useCallback/final/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/12-memo-useMemo-useCallback/final/index.js -------------------------------------------------------------------------------- /src/tutorial/12-memo-useMemo-useCallback/setup/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/12-memo-useMemo-useCallback/setup/index.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/final/1-useEffect-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/final/1-useEffect-basics.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/final/2-useEffect-cleanup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/final/2-useEffect-cleanup.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/final/3-useEffect-fetch-data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/final/3-useEffect-fetch-data.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/setup/1-useEffect-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/setup/1-useEffect-basics.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/setup/2-useEffect-cleanup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/setup/2-useEffect-cleanup.js -------------------------------------------------------------------------------- /src/tutorial/2-useEffect/setup/3-useEffect-fetch-data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/2-useEffect/setup/3-useEffect-fetch-data.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/final/1-multiple-returns.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/final/1-multiple-returns.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/final/2-short-circuit.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/final/2-short-circuit.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/final/3-show-hide.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/final/3-show-hide.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/setup/1-multiple-returns.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/setup/1-multiple-returns.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/setup/2-short-circuit.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/setup/2-short-circuit.js -------------------------------------------------------------------------------- /src/tutorial/3-conditional-rendering/setup/3-show-hide.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/3-conditional-rendering/setup/3-show-hide.js -------------------------------------------------------------------------------- /src/tutorial/4-forms/final/1-controlled-inputs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/4-forms/final/1-controlled-inputs.js -------------------------------------------------------------------------------- /src/tutorial/4-forms/final/2-multiple-inputs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/4-forms/final/2-multiple-inputs.js -------------------------------------------------------------------------------- /src/tutorial/4-forms/setup/1-controlled-inputs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/4-forms/setup/1-controlled-inputs.js -------------------------------------------------------------------------------- /src/tutorial/4-forms/setup/2-multiple-inputs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/4-forms/setup/2-multiple-inputs.js -------------------------------------------------------------------------------- /src/tutorial/5-useRef/final/1-useRef-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/5-useRef/final/1-useRef-basics.js -------------------------------------------------------------------------------- /src/tutorial/5-useRef/setup/1-useRef-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/5-useRef/setup/1-useRef-basics.js -------------------------------------------------------------------------------- /src/tutorial/6-useReducer/final/Modal.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/6-useReducer/final/Modal.js -------------------------------------------------------------------------------- /src/tutorial/6-useReducer/final/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/6-useReducer/final/index.js -------------------------------------------------------------------------------- /src/tutorial/6-useReducer/final/reducer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/6-useReducer/final/reducer.js -------------------------------------------------------------------------------- /src/tutorial/6-useReducer/setup/Modal.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/6-useReducer/setup/Modal.js -------------------------------------------------------------------------------- /src/tutorial/6-useReducer/setup/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/6-useReducer/setup/index.js -------------------------------------------------------------------------------- /src/tutorial/7-prop-drilling/final/1-prop-drilling.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/7-prop-drilling/final/1-prop-drilling.js -------------------------------------------------------------------------------- /src/tutorial/7-prop-drilling/setup/1-prop-drilling.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/7-prop-drilling/setup/1-prop-drilling.js -------------------------------------------------------------------------------- /src/tutorial/8-useContext/final/1-context-api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/8-useContext/final/1-context-api.js -------------------------------------------------------------------------------- /src/tutorial/8-useContext/setup/1-context-api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/8-useContext/setup/1-context-api.js -------------------------------------------------------------------------------- /src/tutorial/9-custom-hooks/final/1-fetch-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/9-custom-hooks/final/1-fetch-example.js -------------------------------------------------------------------------------- /src/tutorial/9-custom-hooks/final/2-useFetch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/9-custom-hooks/final/2-useFetch.js -------------------------------------------------------------------------------- /src/tutorial/9-custom-hooks/setup/1-fetch-example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/9-custom-hooks/setup/1-fetch-example.js -------------------------------------------------------------------------------- /src/tutorial/9-custom-hooks/setup/2-useFetch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/react-advanced-v18/HEAD/src/tutorial/9-custom-hooks/setup/2-useFetch.js --------------------------------------------------------------------------------