# Tickets and tasks related to the performance of the application
Epic Ticket: https://lftechnology.atlassian.net/browse/UNTAP-1344
1. ### Duplicate Fetch task API request
**Ticket**: https://lftechnology.atlassian.net/browse/UNTAP-1113
Fetch task API request is made based on the planning period date. Currently
fetch task API request is made twice that is the first request is made with
default planning period date(i.e current date) and another request is
made once we get the actual planning period from API. This result in
showing different task lists and multiple loading states
**Solution**: Only make the fetch task API request once we got actual
planning period date information from fetch planning period API
request.
2. ### Updating loading state before async operation completed

From the above code snippets, we can see that we are setting taskLoading to
false even though the async operation is not completed.
Similar issue with `fetchPlans()`
**Solution**: Update the loading state only after async operation is
completed

3. ### Showing previously loaded user information initial
**Ticket:** https://lftechnology.atlassian.net/browse/UNTAP-1598
All the routes(`/plans, /goals, /assignments, /personal-info,
/academic-info, /assessment`) have the same issue of showing the previous user
information on initial load and changed to actual data after API is
completed.
The issue happens because we are showing the previously loaded user
information from `Redux store`.
**Solution**: We have the `fetchStudentLoading` flag which keeps track of
API request state. So we need to only show user information after API
is completed so that it won't show old data from `Redux store`.
However conditional showing text might result in a change in layout
height. So in order to have a consistent UI layout even on loading state,
we can make `skeleton loader UI` something like this

Reference: https://www.npmjs.com/package/react-loading-skeleton
4. User chat was not always loaded, as expected.
Ticket: https://lftechnology.atlassian.net/browse/UNTAP-1589

Currently, this is how the selected Student chat showed on the right-side panel.
The issue with this approach is that we getting a student from redux
store so if the redux store already contains student data from previous
student API request then initially it will show the chat of previous
student from the redux store and once the new student API is completed it
switch chat to a current student.