Environment Setup for Mac
Environment Setup For Windows
Yihua's VSCode font and settings
Create React App - React-Scripts 1
Create React App - React-Scripts 2
Create React App - Everything Else
Quick note: React 18 Strict Mode
Monsters Rolodex - Class Components
Monsters Rolodex - Component State
Monsters Rolodex - setState
Monsters Rolodex - States and Shallow Merge
Monsters Rolodex - setState and Secondary Callback
Monsters Rolodex - Mapping Arrays to Elements
Optional: map() + key attribute
Monsters Rolodex - Keys for Mapping
Monsters Rolodex - Single Page Applications (SPAs)
Monsters Rolodex - Lifecycle Method: componentDidMount
Monsters Rolodex - Renders & Re-renders in React
Monsters Rolodex - Input Search Box Component
Monsters Rolodex - Searching & Filtering
Optional: filter() includes()
Monsters Rolodex - Storing Original Data
Monsters Rolodex - Optimizations
Monsters Rolodex - Understanding Components
Monsters Rolodex - CardList Component
Monsters Rolodex - Component Props
Monsters Rolodex - Rendering and Re-rendering part 2
Monsters Rolodex - SearchBox Component
Monsters Rolodex - CSS in React
Monsters Rolodex - CardList Component
Quick note on quotes for string interpolation
Monsters Rolodex - Finishing Touches
Functional vs Class Components
Class Component Lifecycle Methods Breakdown
Monsters Rolodex - Functional Component Intro
Monsters Rolodex - Hooks: useState
Monsters Rolodex - Functional Component Re-rendering
Monsters Rolodex - Infinite Re-rendering
Monsters Rolodex - Hooks: useEffect
Monsters Rolodex - Remaining Components
React v18: Migrating from React v17 + ReactDOM v18 Changes
React v18: Strict Mode Changes
React and ReactDOM part 2
Optional: Connecting With SSH To Github
Optional: How to fix 403: restricted_client error
Authenticating With Firebase
Introducing Firestore Data Models
Setting Up User Documents
Finish Creating User Documents
Sign Up With Email + Password
Generalizing Form Input Component
Finishing Authentication Page
Redux vs Context: Data Flow
React-Redux: Installation
React-Redux: Setting Up Our Store
React-Redux: Creating User Reducer
Business Logic in Our Selectors
What Triggers useSelector
Redux Triggers Extra Re-renders
Migrating Cart Context to Redux Pt. 1
Migrating Cart Context to Redux Pt. 2
Migrating Cart Context to Redux Pt. 3
Migrate Cart Context to Redux Pt. 4
Asynchronous Redux: Redux-Saga
Redux-Saga: fetchCategoriesAsync Thunk to Saga
Redux-Saga: Converting onAuthStateChanged Listener to Promise
Redux-Saga: Check User Session Saga Pt. 1
Redux-Saga: Check User Session Saga Pt. 2
Redux-Saga: Sign in Sagas
Redux-Saga: Sign up Sagas
Redux-Saga: Sign Out Sagas
The Need for Serverless Functions
Serverless Functions Explained
Setting Up Our PaymentForm
Writing Our First Serverless Function
Adding Auth With Netlify URL
Adding Environment Variables For Netlify
Crwn-Clothing Typescript Overview
Typing createAction & Function Overloading
Typing Category Action Creators
Typing Category Selectors
The Problem With Discriminating Unions
Intersections & Return Types
Improving Our Reducer Typing
Typing Redux Cart Files Pt. 1
Typing Redux Cart Files Pt. 2
Opt-In Service Worker in CRA
Resources: Progressive Web Apps
Progressive Web Apps Examples
Resources: PWA - Service Workers
Update for CRA v4.0.0+ and React 17+
Global Styles and Media Queries
Updated Code For This Section
Quick Note: Upcoming API Endpoint + ES6 Modules
Resources: Jest Cheat Sheet
Exercise: #1 - Testing With Jest
Enzyme vs React Testing Library
Quick Note: Empty Snapshots
Snapshot Testing + Code Coverage
Testing Stateful Components
Testing Connected Components
Testing Connected Components 2
Aside - React Testing Library
Basics of RTL - Render and Screen
Render with Providers and Cart Icon Tests
Navigation Tests - Part 1
Navigation Tests - Part 2
Product Card and Testing Redux Actions
Navigation Tests - Part 3
Category Tests and React-Router-Dom Mocks
Category Sagas Tests - Part 1
Category Sagas Tests - Part 2