When the user is navigating around the document tree, the Dropbox API is still being queried more than necessary. This is because every time a file is displayed, we query the API to retrieve the download link. Extra API queries can be negated by storing the download link response in the cache and re-displaying the folder it is navigated back into.
Every time a file is displayed, a new component gets initialized using data from the store. We can use this to our advantage as it means we only need to update the component instance and then the result gets cached.
In your file component, update the API response to not only save the result on the link property of the data attribute but the on the file instance, f, as well. This will be stored as a new key, download_link.
When storing the data, rather than having two separate commands, we can combine them...