Ethan
Making products people love π₯π
Fixed issues with aggregateThreads where emails would get hidden after being replied to
Started working on labels editor in email viewer!!
Fixed null-related errors from switching to strict equality everywhere
Fix search "load more" button in development version
Added keyboard shortcuts for flag/unflag (βF), read/unread (βU), and important/not important (βI). Changed the shortcut for forward to ShiftβF and the shortcut for unsubscribe to ShiftβU.
Added archive keyboard shortcut! (βE)
Moved loading screen to index.html so it shows before Vue loads
Made an App.vue and removed all Vue from index.html
Got full draft functionality (including sending & editing) working! Now time to test...
Fixed navigation keyboard shortcuts when the aggregate threads setting is on
Abstracted parsing address list headers
Load email bodies when checking for new changes
Load email bodies when checking for new changes
Got main.js, modifiers.js, events.js and apiActions.js to pass ESLint!!!!!
Added βShow one card per thread on boardβ setting
Deal Gmail history endpoint pagination!!!!!
Posted on Dribbble for the first time in ages! https://dribbble.com/shots/6590724-KanbanMail-Landing-Page-Hero
Pushed the new update that no longer sends Gmail access tokens to my cloud functions. Hopefully now I'll finally be able to finish the Google reverification process!
Style all Gmail quotes the same way (regardless of who sent them) in conversations in outgoing emails
Decided on how to delete / modify drafts
Got getStripeMetadata.js to pass ESLint
Got setStripeMetadata to work with id tokens!!!
Added try/catch to tokenInfo in getStripeMetadata
Use id_tokens instead of access_tokens for Gmail in getStripeMetadata!!