Skip to content

Commit

Permalink
fix: make header images consistent
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonroberts committed Jul 4, 2020
1 parent 6b63c89 commit ada91d0
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 103 deletions.
4 changes: 3 additions & 1 deletion content/posts/2019-03-04-handling-error-states-with-ngrx.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ publishedDate: 2019-03-04

## Handling Error States with NgRx

<img src="/assets/posts/david-travis-548920-unsplash.jpg" width="100%"/>
<a href="https://unsplash.com/@soymeraki?utm_medium=referral&amp;utm_campaign=photographer-credit&amp;utm_content=creditBadge" target="_blank" title="Photo by David Travis on Unsplash">
<img src="/assets/posts/david-travis-548920-unsplash.jpg" width="100%"/>
</a>

When building applications with NgRx, one thing you have to be aware of is how to handle error states. Whether this be from submitting a login form, making a request for loading data, or handling user timeouts, errors still need to be displayed to the user in some way. The question arises of where do you put the error information. Should your error state be handled locally in the component, or added to your global state? There are multiple ways to do this, each with different advantages and drawbacks. Let's look at a movies page to walk through the different ways of handling and displaying errors.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ publishedDate: 2019-03-27
## Custom Route Matching with the Angular Router

<a href="https://unsplash.com/@soymeraki?utm_medium=referral&amp;utm_campaign=photographer-credit&amp;utm_content=creditBadge" target="_blank" title="Photo by Javier Allegue Barros on Unsplash">
<img src="/assets/posts/javier-allegue-barros-761133-unsplash.jpg" class="center"/>
<img src="/assets/posts/javier-allegue-barros-761133-unsplash.jpg" width="100%"/>
</a>

When using the [Angular Router](https://angular.io/guide/router), there are usually only a few types of routes you need to create. A static route with no parameters, a variable route for dynamic parameters, and catchall routes for [404 pages](https://bobrov.dev/blog/angular-smart-404-page/). The Angular Router can handle all these scenarios with its powerful [route matching strategy](https://blog.angularindepth.com/angular-routing-series-pillar-1-router-states-and-url-matching-12520e62d0fc). The Angular Router also supports custom pattern matching for URL paths for more complex URLs. You've seen this before on Medium where it uses your Twitter handle in the URL. If you were building this route in your own application, you want to use this handle in your application as a route parameter but you don't want to parse out the `@` symbol every time.
Expand Down
102 changes: 1 addition & 101 deletions src/assets/scully-routes.json
Original file line number Diff line number Diff line change
@@ -1,101 +1 @@
[
{
"route": "/about",
"title": "About Me",
"description": "About Me",
"published": true,
"slug": "about",
"sourceFile": "about.md"
},
{
"route": "/talks",
"title": "Tech Talks and Appearances",
"description": "Stuff",
"published": true,
"slug": "talks",
"sourceFile": "talks.md"
},
{
"route": "/blog/posts/2019-03-04-handling-error-states-with-ngrx",
"title": "Handling Error States with NgRx",
"description": "Handling Error States with NgRx",
"published": true,
"slug": "2019-03-04-handling-error-states-with-ngrx",
"publishedDate": "2019-03-04T00:00:00.000Z",
"sourceFile": "2019-03-04-handling-error-states-with-ngrx.md"
},
{
"route": "/blog/posts/2019-03-27-custom-route-matching-angular-router",
"title": "Custom Route Matching with the Angular Router",
"description": "Custom Route Matching with the Angular Router",
"published": true,
"slug": "2019-03-27-custom-route-matching-angular-router",
"publishedDate": "2019-03-27T00:00:00.000Z",
"sourceFile": "2019-03-27-custom-route-matching-angular-router.md"
},
{
"route": "/blog/posts/2020-05-14-angular-unfiltered-001",
"title": "Angular Unfiltered Episode 001: Angular Forms w/Mike Ryan",
"description": "Chatting with Mike Ryan about Forms in Angular",
"published": true,
"slug": "2020-05-14-angular-unfiltered-001",
"publishedDate": "2020-05-14 02:00 PM CST",
"sourceFile": "2020-05-14-angular-unfiltered-001.md"
},
{
"route": "/blog/posts/2020-05-14-mixing-action-styles-ngrx",
"title": "Mixing Action Styles in NgRx State",
"description": "Mixing Action Styles in NgRx State",
"published": true,
"slug": "2020-05-14-mixing-action-styles-ngrx",
"publishedDate": "2020-05-14 02:00 PM CST",
"sourceFile": "2020-05-14-mixing-action-styles-ngrx.md"
},
{
"route": "/blog/posts/2020-05-15-angular-unfiltered-002",
"title": "Angular Unfiltered Episode 002: Angular Forms Pt. 2 w/Zack DeRose",
"description": "Chatting with Zack DeRose about Forms in Angular",
"published": true,
"slug": "2020-05-15-angular-unfiltered-002",
"publishedDate": "2020-05-15 02:00 PM CST",
"sourceFile": "2020-05-15-angular-unfiltered-002.md"
},
{
"route": "/blog/posts/2020-05-22-angular-unfiltered-003",
"title": "Angular Unfiltered Episode 003: Quick Chat w/Austin Akers",
"description": "Chatting with Austin Akers",
"published": true,
"slug": "2020-05-22-angular-unfiltered-003",
"publishedDate": "2020-05-22 02:00 PM CST",
"sourceFile": "2020-05-22-angular-unfiltered-003.md"
},
{
"route": "/blog/posts/2020-05-22-angular-unfiltered-004",
"title": "Angular Unfiltered Episode 004: Quick Chat w/Devin Shoemaker",
"description": "Chatting with Devin Shoemaker",
"published": true,
"slug": "2020-05-22-angular-unfiltered-004",
"publishedDate": "2020-06-12 02:00 PM CST",
"sourceFile": "2020-06-12-angular-unfiltered-004.md"
},
{
"route": "/blog/posts/2020-06-19-angular-unfiltered-005",
"title": "Angular Unfiltered Episode 005: Quick Chat w/Luke Howell",
"description": "Chatting with Luke Howell",
"published": true,
"slug": "2020-06-19-angular-unfiltered-005",
"publishedDate": "2020-06-19 02:00 PM CST",
"sourceFile": "2020-06-19-angular-unfiltered-005.md"
},
{
"route": "/blog/posts/2020-06-26-angular-unfiltered-006",
"title": "Angular Unfiltered Episode 006: Quick Chat w/Bryan Wilhite",
"description": "Chatting with Bryan Wilhite",
"published": true,
"slug": "2020-06-26-angular-unfiltered-006",
"publishedDate": "2020-06-26 02:00 PM CST",
"sourceFile": "2020-06-26-angular-unfiltered-006.md"
},
{ "route": "/blog" },
{ "route": "/" }
]
[{"route":"/about","title":"About Me","description":"About Me","published":true,"slug":"about","sourceFile":"about.md"},{"route":"/talks","title":"Tech Talks and Appearances","description":"Stuff","published":true,"slug":"talks","sourceFile":"talks.md"},{"route":"/blog/posts/2019-03-04-handling-error-states-with-ngrx","title":"Handling Error States with NgRx","description":"Handling Error States with NgRx","published":true,"slug":"2019-03-04-handling-error-states-with-ngrx","publishedDate":"2019-03-04T00:00:00.000Z","sourceFile":"2019-03-04-handling-error-states-with-ngrx.md"},{"route":"/blog/posts/2019-03-27-custom-route-matching-angular-router","title":"Custom Route Matching with the Angular Router","description":"Custom Route Matching with the Angular Router","published":true,"slug":"2019-03-27-custom-route-matching-angular-router","publishedDate":"2019-03-27T00:00:00.000Z","sourceFile":"2019-03-27-custom-route-matching-angular-router.md"},{"route":"/blog/posts/2020-05-14-angular-unfiltered-001","title":"Angular Unfiltered Episode 001: Angular Forms w/Mike Ryan","description":"Chatting with Mike Ryan about Forms in Angular","published":true,"slug":"2020-05-14-angular-unfiltered-001","publishedDate":"2020-05-14 02:00 PM CST","sourceFile":"2020-05-14-angular-unfiltered-001.md"},{"route":"/blog/posts/2020-05-14-mixing-action-styles-ngrx","title":"Mixing Action Styles in NgRx State","description":"Mixing Action Styles in NgRx State","published":true,"slug":"2020-05-14-mixing-action-styles-ngrx","publishedDate":"2020-05-14 02:00 PM CST","sourceFile":"2020-05-14-mixing-action-styles-ngrx.md"},{"route":"/blog/posts/2020-05-15-angular-unfiltered-002","title":"Angular Unfiltered Episode 002: Angular Forms Pt. 2 w/Zack DeRose","description":"Chatting with Zack DeRose about Forms in Angular","published":true,"slug":"2020-05-15-angular-unfiltered-002","publishedDate":"2020-05-15 02:00 PM CST","sourceFile":"2020-05-15-angular-unfiltered-002.md"},{"route":"/blog/posts/2020-05-22-angular-unfiltered-003","title":"Angular Unfiltered Episode 003: Quick Chat w/Austin Akers","description":"Chatting with Austin Akers","published":true,"slug":"2020-05-22-angular-unfiltered-003","publishedDate":"2020-05-22 02:00 PM CST","sourceFile":"2020-05-22-angular-unfiltered-003.md"},{"route":"/blog/posts/2020-05-22-angular-unfiltered-004","title":"Angular Unfiltered Episode 004: Quick Chat w/Devin Shoemaker","description":"Chatting with Devin Shoemaker","published":true,"slug":"2020-05-22-angular-unfiltered-004","publishedDate":"2020-06-12 02:00 PM CST","sourceFile":"2020-06-12-angular-unfiltered-004.md"},{"route":"/blog/posts/2020-06-19-angular-unfiltered-005","title":"Angular Unfiltered Episode 005: Quick Chat w/Luke Howell","description":"Chatting with Luke Howell","published":true,"slug":"2020-06-19-angular-unfiltered-005","publishedDate":"2020-06-19 02:00 PM CST","sourceFile":"2020-06-19-angular-unfiltered-005.md"},{"route":"/blog/posts/2020-06-26-angular-unfiltered-006","title":"Angular Unfiltered Episode 006: Quick Chat w/Bryan Wilhite","description":"Chatting with Bryan Wilhite","published":true,"slug":"2020-06-26-angular-unfiltered-006","publishedDate":"2020-06-26 02:00 PM CST","sourceFile":"2020-06-26-angular-unfiltered-006.md"},{"route":"/blog"},{"route":"/"}]

0 comments on commit ada91d0

Please sign in to comment.