[x] Change search box behavior. Remove the search button. Now we need to call API once the user types something into the search input. To do this please follow the next steps: Use ngChange (keyup) to handle input changes. Create Observable in your component and changes its value on input change (use .next). Add API call on each user input event.
[x] Since we don’t want to spam our service add filter by input value and do not call API until user enter at least 3 chars.
[x] Add debounce to prevent API calls until the user stops typing.
[x] Reveal user data using RxJs from service. Subscribe in the header component to user data to show actual info in the header.
[x] Change logic of auth guard. Now use Observable as a return value in canActivate.
[x] Create global loading block component. It’s purpose to prevent users from any actions. Should be overlay covers the whole page with loader animation in the center. This feature will consist of two items: 1. Loading-block component; 2. Service that keeps the actual condition of block (show: true/false).
[ ] Add using the loading block for every API call (load courses, delete, login...).
Task 09 Exercise