Ethan
Making products people love π₯π
Added a computed getter to the column component called emailsToShow which gets the emails that should be displayed in that column
Fixed getElementFromEmailId function so it works without index attributes
Offloaded Vue components into components.js file
Fixed side popup column close button
Created a column-header component
Moved Vue instance creation to after component declaration so components show up straight away
Created email-card component
Cleaned up board-column-header HTML
Donβt re-serialize and re-store data object if there are no new emails
Removed CSS var(--incoming-card-spacer-height)
Optimized .dragging CSS selectors
Use getEmailById in updateEmailsPartTwo
Log when storing data object
Read an article about Chrome DevTools performance reports β https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/
Optimized some CSS rendering
Make document.getElementById('board') a global at the start to reduce DOM selecting actions
Fixed some issues with the new board item grid layout
Removed another 600 elements from the DOM unless specific settings or onboarding pages are open
Removed another 500 DOM elements by removing .board-item-content-text and giving .board-item-content a grid layout
Removed 1000 DOM elements by merging .email-checkbox-wrapper, .email-checkbox and .email-checkbox i.fa into .email-checkbox
Reduced element count by 500 by removing hidden checkbox inputs
Put hoverTarget/hoverColumn logic into global mouseover handler
Removed 1,295 event listeners!!!