Right now we load multiple posts that are compatible with the user's filters but we only show one and we don't allow the user to navigate between them. We should add arrows on the edges of the screen to take the user one article forward or backward in the compatible articles list.
Whenever the user types into the input we should show auto completion:
A list of communities available (Reddit, DEV.to, etc)
Once a community has been selected, show auto completions for subreddits, tags, etc.
My idea to support this is initially showing a list of the available services (once we get a bunch this will show the featured ones), with the name of the service and a keywork associated with that service (e.g. r/ for Reddit or dev# for DEV.to), followed by that keyword would be the subcommunity that the user wants to see.
Now that #4 has been fully implemented, this will be easy to do.
Using their nice articles API (https://dev.to/api/articles/?page=1) we can get a list of the most recent featured articles and even filter by tags by specifying the tag query, with that list we can fetch an individual article specifying the ID of such article: https://dev.to/api/articles/{id}
Steps to implement this:
Add dev.to to the services list in service-connector.js (just uncomment the line).
Create a dev.api.js similar to the existent Reddit API; this will be in charge of fetching the articles.
Create a dev.adapter.js similar to the existent Reddit adapter; this will transform the Dev.to response to a format that the app can understand.
Create a dev.connector.js that calls the dev.api.js.
Add the Dev.to case in getConnectorForCommunity.
And of course, make a test case for the adapter similar to the existent Reddit one ;)
Right now the user always needs to select a community every time they enter in the app, even if they always read from the same one. We should add a settings screen in which the user can customize the default minutes, community and subcommunity and persist those settings in the local storage.
This refactor is going to be taking place in the branch feature/refactor and itโll make it easier to connect with other communities outside from Reddit by defining adapters and making the Vuex action use a service connector instead of the Reddit service directly.
In any post on any community, the #subcommunity that appears in the header doesn't redirect the user to the sub community that the post was posted to but instead just shows a _blank page.
The Home view should start reacting to other states than success. Right now, whenever we get a response from the API, we always navigate to the Reader page; however, there are certain cases in which the community that the user wrote does not exist (the API should call onError and set the loadingStatus of the store to error) or none of the fetched post can be read in the specified time (the API should call onNoResults and set the loadingStatus of the store to noResults). We should handle these scenarios and notify the user about these cases.
We can start by proposing how to show these error messages in the UI.
There are a lot of great communities that center on text too but link to other websites instead of putting the content directly in Reddit, which is currently not supported by Readder.
For now only Reddit, but we should allow the user to select whether they want to sort by hot/new/top and, in those that allow it (like top) filter by today, this week, etc.
We should also do this in a way that it's only specific to Reddit, so that whenever we integrate new communities that don't support this we won't have to make weird design changes.
More and more browsers are implementing a "dark mode" preference that allows websites to detect when the user wants the dark mode to be enabled, so they don't have to specify it manually. I recently did a CSS refactor that should make this trivial to implement.