ChrisVilches/poller-ui

Some TODOs

Opened this issue · 1 comments

These are only the TODO items that come to mind. There are a lot more, probably.

App TODO

  • Solve all TODO items in the source code.
  • Improve design
  • Support huge lists of tags and other things (so that the design still looks OK). For example, if there are two many tags, the sidebar menu won't look OK.
  • Finish "About" page content.
  • Add the link (sidebar) for the "Activity" page.
  • Improve the event logger. Make it scroll automatically when a new event comes.
  • Try to improve the design a little.
  • For the content section, use skeleton loaders instead of spinners.
  • There are two spinners that sometimes get close together (when reloading the tag menu, and the main content one). It looks weird.
  • Add some logo, or something to the Sidebar (or page top).
  • Improve form usability. Make it work with keyboard (pressing CTRL+Enter saves the form, etc).
  • The Next Poll will become a past value if you wait enough.
  • There are a few things that look really bad when the screen is small. (The layout looks OK, but some things like buttons, etc, sometimes look bad).
  • (Low priority) Display error message when the app is not connected to the internet.

Code quality TODO

  • Learn more about RTK Query.
  • Try to make more queries using RTK Query.
  • Refactor the endpoint form so that it uses Context API instead of all the props passing from above. (Or some other solution that avoids passing so many props).
  • (Low priority) I'm not sure about the Socket IO connection. Does it create too many connections when the hook is used on several components? Currently it's only used on one component though.
  • Am I using the spread operator wrong? Maybe I'm copying some references instead of primitive values.
  • Try to use a state technique (like Redux, Context API, etc) for (at least) one more component.
  • Make sure memoizations are done correctly, and no expensive operations are performed, or no hook is executed unnecessarily multiple times.
  • Make sure no queries are executed multiple times unnecessarily (can be verified using monkey testing).
  • Make sure there are no race conditions when clicking buttons/links quickly (I haven't seen any so far).
  • Try to refactor as much as possible.

Try to use a state technique (like Redux, Context API, etc) for (at least) one more component.

Context + Reducer for the endpoint config form