├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode └── launch.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── package.json ├── recipes ├── 01-simple-state-changes.md ├── 02-store-data-inside-component.md ├── 03-update-shared-state.md ├── 04-independent-state-change.md ├── 05-related-state-change.md └── 06-persist-update-on-server.md ├── server.js ├── src ├── __tests__ │ └── mutators │ │ └── cart │ │ └── books.spec.ts ├── actions │ ├── cart.ts │ ├── selectBook.ts │ └── selectCategory.ts ├── components │ ├── App.tsx │ ├── AppStyles.css │ ├── BookList.tsx │ ├── Cart.tsx │ ├── CategoryList.tsx │ └── Description.tsx ├── index.tsx ├── mutators │ ├── cart │ │ ├── books.ts │ │ ├── buying.ts │ │ └── selectedBookId.ts │ ├── selectedBookId.ts │ └── selectedCategoryId.ts ├── orchestrators │ ├── buy.ts │ └── removeBookFromCart.ts ├── selectors │ └── getSelectedBookId.ts ├── services │ └── makePurchase.ts └── store │ ├── BookStore.ts │ └── store.ts ├── tsconfig.json ├── tslint.json ├── views └── index.pug ├── webpack.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | package.json 2 | *.md 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/.prettierrc -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/SECURITY.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/package.json -------------------------------------------------------------------------------- /recipes/01-simple-state-changes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/01-simple-state-changes.md -------------------------------------------------------------------------------- /recipes/02-store-data-inside-component.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/02-store-data-inside-component.md -------------------------------------------------------------------------------- /recipes/03-update-shared-state.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/03-update-shared-state.md -------------------------------------------------------------------------------- /recipes/04-independent-state-change.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/04-independent-state-change.md -------------------------------------------------------------------------------- /recipes/05-related-state-change.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/05-related-state-change.md -------------------------------------------------------------------------------- /recipes/06-persist-update-on-server.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/recipes/06-persist-update-on-server.md -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/server.js -------------------------------------------------------------------------------- /src/__tests__/mutators/cart/books.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/__tests__/mutators/cart/books.spec.ts -------------------------------------------------------------------------------- /src/actions/cart.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/actions/cart.ts -------------------------------------------------------------------------------- /src/actions/selectBook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/actions/selectBook.ts -------------------------------------------------------------------------------- /src/actions/selectCategory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/actions/selectCategory.ts -------------------------------------------------------------------------------- /src/components/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/App.tsx -------------------------------------------------------------------------------- /src/components/AppStyles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/AppStyles.css -------------------------------------------------------------------------------- /src/components/BookList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/BookList.tsx -------------------------------------------------------------------------------- /src/components/Cart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/Cart.tsx -------------------------------------------------------------------------------- /src/components/CategoryList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/CategoryList.tsx -------------------------------------------------------------------------------- /src/components/Description.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/components/Description.tsx -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/index.tsx -------------------------------------------------------------------------------- /src/mutators/cart/books.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/mutators/cart/books.ts -------------------------------------------------------------------------------- /src/mutators/cart/buying.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/mutators/cart/buying.ts -------------------------------------------------------------------------------- /src/mutators/cart/selectedBookId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/mutators/cart/selectedBookId.ts -------------------------------------------------------------------------------- /src/mutators/selectedBookId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/mutators/selectedBookId.ts -------------------------------------------------------------------------------- /src/mutators/selectedCategoryId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/mutators/selectedCategoryId.ts -------------------------------------------------------------------------------- /src/orchestrators/buy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/orchestrators/buy.ts -------------------------------------------------------------------------------- /src/orchestrators/removeBookFromCart.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/orchestrators/removeBookFromCart.ts -------------------------------------------------------------------------------- /src/selectors/getSelectedBookId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/selectors/getSelectedBookId.ts -------------------------------------------------------------------------------- /src/services/makePurchase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/services/makePurchase.ts -------------------------------------------------------------------------------- /src/store/BookStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/store/BookStore.ts -------------------------------------------------------------------------------- /src/store/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/src/store/store.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/tslint.json -------------------------------------------------------------------------------- /views/index.pug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/views/index.pug -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/webpack.config.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/satcheljs-cookbook/HEAD/yarn.lock --------------------------------------------------------------------------------