You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -185,14 +185,14 @@ That's it, You know everything to master React state management! Check some of t
185
185
186
186
*Beginner*
187
187
188
-
-[Clock Widget](https://solkimicreb.github.io/react-easy-state/examples/clock/dist) ([source](/examples/clock/)): a reusable clock widget with a tiny local state store.
189
-
-[Stopwatch](https://solkimicreb.github.io/react-easy-state/examples/stopWatch/dist) ([source](/examples/stopWatch/)) ([tutorial](https://hackernoon.com/introducing-react-easy-state-1210a156fa16)): a stopwatch with a mix of normal and computed state properties.
188
+
-[Clock Widget](https://solkimicreb.github.io/react-easy-state/examples/clock/build) ([source](/examples/clock/)): a reusable clock widget with a tiny local state store.
189
+
-[Stopwatch](https://solkimicreb.github.io/react-easy-state/examples/stop-watch/build) ([source](/examples/stopWatch/)) ([tutorial](https://hackernoon.com/introducing-react-easy-state-1210a156fa16)): a stopwatch with a mix of normal and computed state properties.
190
190
191
191
*Advanced*
192
192
193
-
-[TodoMVC](https://solkimicreb.github.io/react-easy-state/examples/todoMVC/dist) ([source](/examples/todoMVC/)): a classic TodoMVC implementation with a lot of computed data and implicit reactivity.
194
-
-[Contacts Table](https://solkimicreb.github.io/react-easy-state/examples/contacts/dist) ([source](/examples/contacts/)): a data grid implementation with a mix of global and local state.
195
-
-[Beer Finder](https://solkimicreb.github.io/react-easy-state/examples/beerFinder/dist) ([source](/examples/beerFinder/)) ([tutorial](https://medium.com/@solkimicreb/design-patterns-with-react-easy-state-830b927acc7c)): an app with async actions and a mix of local and global state, which finds matching beers for your meal.
193
+
-[TodoMVC](https://solkimicreb.github.io/react-easy-state/examples/todo-mvc/build) ([source](/examples/todoMVC/)): a classic TodoMVC implementation with a lot of computed data and implicit reactivity.
194
+
-[Contacts Table](https://solkimicreb.github.io/react-easy-state/examples/contacts/build) ([source](/examples/contacts/)): a data grid implementation with a mix of global and local state.
195
+
-[Beer Finder](https://solkimicreb.github.io/react-easy-state/examples/beer-finder/build) ([source](/examples/beerFinder/)) ([tutorial](https://medium.com/@solkimicreb/design-patterns-with-react-easy-state-830b927acc7c)): an app with async actions and a mix of local and global state, which finds matching beers for your meal.
# Beer Finder · [Live Demo](https://solkimicreb.github.io/react-easy-state/examples/beerFinder/dist)
1
+
# Beer Finder · [Live Demo](https://solkimicreb.github.io/react-easy-state/examples/beer-finder/dist)
2
2
3
3
An app to find matching beers for your meal. It features networking and async actions with a mix of global and local state. The styling is partially done with the awesome [React Material UI](http://www.material-ui.com/#/) library.
"use strict";varprecacheConfig=[["/react-easy-state/examples/beer-finder/build/index.html","594fe3c38b40f80567036619503cbf40"],["/react-easy-state/examples/beer-finder/build/static/css/main.629c1060.css","a2f35a78fbcda6a481a585ec6d684ee5"],["/react-easy-state/examples/beer-finder/build/static/js/main.6cc66dc8.js","516f8d22aa6c480e65fdc34890dc31df"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){varn=newURL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){returne.redirected?("body"ine?Promise.resolve(e.body):e.blob()).then(function(t){returnnewResponse(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){vara=newURL(e);returnr&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;varn=newURL(t).pathname;returne.some(function(e){returnn.match(e)})},stripIgnoredUrlParameters=function(e,t){varn=newURL(e);returnn.hash="",n.search=n.search.slice(1).split("&").map(function(e){returne.split("=")}).filter(function(e){returnt.every(function(t){return!t.test(e[0])})}).map(function(e){returne.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=newMap(precacheConfig.map(function(e){vart=e[0],n=e[1],r=newURL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));functionsetOfCachedUrls(e){returne.keys().then(function(e){returne.map(function(e){returne.url})}).then(function(e){returnnewSet(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){returnsetOfCachedUrls(e).then(function(t){returnPromise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){varr=newRequest(n,{credentials:"same-origin"});returnfetch(r).then(function(t){if(!t.ok)thrownewError("Request for "+n+" returned a response with status "+t.status);returncleanResponse(t).then(function(t){returne.put(n,t)})})}}))})}).then(function(){returnself.skipWaiting()}))}),self.addEventListener("activate",function(e){vart=newSet(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){returne.keys().then(function(n){returnPromise.all(n.map(function(n){if(!t.has(n.url))returne.delete(n)}))})}).then(function(){returnself.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){vart,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching),r="index.html";(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,r),t=urlsToCacheKeys.has(n));vara="/react-easy-state/examples/beer-finder/build/index.html";!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],e.request.url)&&(n=newURL(a,self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){returne.match(urlsToCacheKeys.get(n)).then(function(e){if(e)returne;throwError("The cached response that was expected is missing.")})}).catch(function(t){returnconsole.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});
0 commit comments