Skip to content

Disjointed popovers

HJ requested to merge disjointed-popovers into develop
  • Separates popovers from DOM hierarchy by teleporting them to a separate container
  • Uses position: fixed to position popovers. As a result, popovers are now forcibly hidden on scroll
  • Recaclculates popover position on scroll event. Works like a charm on desktop (sub 1ms per scroll update), a bit laggy but acceptable on firefox mobile, popover vibrates but follows the scroll on mobile chrome.
  • Fixes duplicate <button> elements on react/extra buttons
  • Uses vue transition to fix animations on popups/tooltips
  • Fixes shadows so that all popovers/tooltips have proper shadows, not just status popovers
  • Replaces ugly bootleg tooltips for mention links with floating usercards (on click)

Known issues

  • hide-on-scroll only works on main document scroll, not on column scroll. Now searches for nearby .column.-scrollable and falls back to using window otherwise
  • tests are likely fucked due to changes in mentionlinks stuff? yep. fucked. fixed now
  • performance needs testing/verification
    • when i get browserstack i can test ios, i expect it to be jank af but workable.
      • actually, performance is stellar, at least best i could tell, browserstack itself is pretty laggy tho, can't test thoroughly
    • maybe add advanced option to not do that in case it causes problems?
  • maybe it's too easy now to keep hover popover open?
  • popover position doesn't update when timeline moves, but wiring that into vuex/vue events might have performance consequences
Edited by HJ

Merge request reports