New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Everhour Extension #73
Add Everhour Extension #73
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very nice addition to Raycast 👏
I left a few minor comments around naming. I'm not too sure if the suggestions make sense since I'm not a Everhour user. Please let me know.
Thanks for all the comments @thomaspaulmann. I'll action them ASAP and request another review 😁 |
@thomaspaulmann Your comments have been addressed and I have updated the video to reflect the changes. Please do let me know if you have any other suggestions. Thank you |
Amazing. This looks like a much better UX now. How about changing the textfield for the duration to a dropdown with some values, e.g. 5 Minutes, 15 Minutes, 30 Minutes, 1 Hour, ...? You can find an example for it here. I think this would make the input less error prone and quicker to use. I'll merge as is but you could add it in a separate PR. |
Thank you very much for reviewing and merging this in @thomaspaulmann. Towards the end of the screencast I shared in the PR you can see that I already changed the text field into a dropdown with pre-defined time values😄 |
Ah, I must have missed the last commit. Even better! Instead of calling the dropdown "Hours", I would call it Duration and then do human readable values, e.g. "5 Minutes", "30 Minutes", "1 Hour" and so on. It's much easier to parse, e.g. I don't know what is 0.15 hours from the top of my head. |
* feat(extensions): create everhour extension * feat(everhour): render hours and min for task time * chore: fix package.json typos * feat(task-list): replace console log with error toast * chore(package-json): improve title and command name * feat(api): add get current user and time records api funcs * feat(utils): create toast state resolver * refactor(project-list): use time records for data flow * refactor: use time records data * refactor(time-submit-form): use dropdown * Update extensions/everhour/package.json Co-authored-by: Thomas Paul Mann <hi@thomaspaulmann.com>
* feat(extensions): create everhour extension * feat(everhour): render hours and min for task time * chore: fix package.json typos * feat(task-list): replace console log with error toast * chore(package-json): improve title and command name * feat(api): add get current user and time records api funcs * feat(utils): create toast state resolver * refactor(project-list): use time records for data flow * refactor: use time records data * refactor(time-submit-form): use dropdown * Update extensions/everhour/package.json Co-authored-by: Thomas Paul Mann <hi@thomaspaulmann.com>
* feat(extensions): create everhour extension * feat(everhour): render hours and min for task time * chore: fix package.json typos * feat(task-list): replace console log with error toast * chore(package-json): improve title and command name * feat(api): add get current user and time records api funcs * feat(utils): create toast state resolver * refactor(project-list): use time records for data flow * refactor: use time records data * refactor(time-submit-form): use dropdown * Update extensions/everhour/package.json Co-authored-by: Thomas Paul Mann <hi@thomaspaulmann.com>
Description
Created an extension that uses the Everhour API (token setup required in extension preferences). It allows you to fetch active projects and related tasks. You can then start/stop a timer on a task or add a custom amount of hours to it, which will be immediately reflected on the rendered list of tasks.
Type of change
Screencast
everhour-extension.mov
Checklist