├── .gitignore ├── README.md ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt └── src ├── App.js ├── App.test.js ├── index.js └── patterns ├── compound-component ├── Counter.js ├── Usage.js ├── components │ ├── Count.js │ ├── Decrement.js │ ├── Increment.js │ ├── Label.js │ ├── index.js │ └── styles.js └── useCounterContext.js ├── control-props ├── Counter.js ├── Usage.js ├── components │ ├── Count.js │ ├── Decrement.js │ ├── Increment.js │ ├── Label.js │ ├── index.js │ └── styles.js └── useCounterContext.js ├── custom-hooks ├── Counter.js ├── Usage.js ├── components │ ├── Count.js │ ├── Decrement.js │ ├── Increment.js │ ├── Label.js │ ├── index.js │ └── styles.js ├── useCounter.js └── useCounterContext.js ├── props-getters ├── Counter.js ├── Usage.js ├── components │ ├── Count.js │ ├── Decrement.js │ ├── Increment.js │ ├── Label.js │ ├── index.js │ └── styles.js ├── useCounter.js └── useCounterContext.js └── state-reducer ├── Counter.js ├── Usage.js ├── components ├── Count.js ├── Decrement.js ├── Increment.js ├── Label.js ├── index.js └── styles.js ├── useCounter.js └── useCounterContext.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/README.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/package.json -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/index.html -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/logo512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/manifest.json -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/public/robots.txt -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/App.js -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/App.test.js -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/index.js -------------------------------------------------------------------------------- /src/patterns/compound-component/Counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/Counter.js -------------------------------------------------------------------------------- /src/patterns/compound-component/Usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/Usage.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/Count.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/Count.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/Decrement.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/Decrement.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/Increment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/Increment.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/Label.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/Label.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/index.js -------------------------------------------------------------------------------- /src/patterns/compound-component/components/styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/components/styles.js -------------------------------------------------------------------------------- /src/patterns/compound-component/useCounterContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/compound-component/useCounterContext.js -------------------------------------------------------------------------------- /src/patterns/control-props/Counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/Counter.js -------------------------------------------------------------------------------- /src/patterns/control-props/Usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/Usage.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/Count.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/Count.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/Decrement.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/Decrement.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/Increment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/Increment.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/Label.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/Label.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/index.js -------------------------------------------------------------------------------- /src/patterns/control-props/components/styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/components/styles.js -------------------------------------------------------------------------------- /src/patterns/control-props/useCounterContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/control-props/useCounterContext.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/Counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/Counter.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/Usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/Usage.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/Count.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/Count.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/Decrement.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/Decrement.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/Increment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/Increment.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/Label.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/Label.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/index.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/components/styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/components/styles.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/useCounter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/useCounter.js -------------------------------------------------------------------------------- /src/patterns/custom-hooks/useCounterContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/custom-hooks/useCounterContext.js -------------------------------------------------------------------------------- /src/patterns/props-getters/Counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/Counter.js -------------------------------------------------------------------------------- /src/patterns/props-getters/Usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/Usage.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/Count.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/Count.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/Decrement.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/Decrement.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/Increment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/Increment.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/Label.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/Label.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/index.js -------------------------------------------------------------------------------- /src/patterns/props-getters/components/styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/components/styles.js -------------------------------------------------------------------------------- /src/patterns/props-getters/useCounter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/useCounter.js -------------------------------------------------------------------------------- /src/patterns/props-getters/useCounterContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/props-getters/useCounterContext.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/Counter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/Counter.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/Usage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/Usage.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/Count.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/Count.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/Decrement.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/Decrement.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/Increment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/Increment.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/Label.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/Label.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/index.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/components/styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/components/styles.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/useCounter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/useCounter.js -------------------------------------------------------------------------------- /src/patterns/state-reducer/useCounterContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexis-regnaud/advanced-react-patterns/HEAD/src/patterns/state-reducer/useCounterContext.js --------------------------------------------------------------------------------