Skip to content
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

fix(b-table, b-table-lite): handle edge case with row events when table is removed from dom. instantiate row event handlers only when listeners are registered (fixes #4384) #4388

Merged
merged 15 commits into from Nov 15, 2019

Conversation

@tmorehouse
Copy link
Member

tmorehouse commented Nov 14, 2019

Describe the PR

Fix issue with row-hovered/unhovered events where table is removed from DOM before the event processing gets a chance to finish.

PR also only emits row events if listeners are registered, reducing processing time for events that don't have listeners registered.

Fixes #4384

PR checklist

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Enhancement
  • ARIA accessibility
  • Documentation update
  • Other (please describe)

Does this PR introduce a breaking change? (check one)

  • No
  • Yes (please describe)

The PR fulfills these requirements:

  • It's submitted to the dev branch, not the master branch
  • When resolving a specific issue, it's referenced in the PR's title (i.e. [...] (fixes #xxx[,#xxx]), where "xxx" is the issue number)
  • It should address only one issue or feature. If adding multiple features or fixing a bug and adding a new feature, break them into separate PRs if at all possible.
  • The title should follow the Conventional Commits naming convention (i.e. fix(alert): not alerting during SSR render, docs(badge): update pill examples, fix typos, chore: fix typo in README, etc). This is very important, as the CHANGELOG is generated from these messages.

If new features/enhancement/fixes are added or changed:

  • Includes documentation updates (including updating the component's package.json for slot and event changes)
  • Includes any needed TypeScript declaration file updates
  • New/updated tests are included and passing (if required)
  • Existing test suites are passing
  • The changes have not impacted the functionality of other components or directives
  • ARIA Accessibility has been taken into consideration (Does it affect screen reader users or keyboard only users? Clickable items should be in the tab index, etc.)

If adding a new feature, or changing the functionality of an existing feature, the PR's
description above includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)
tmorehouse added 2 commits Nov 14, 2019
…le is removed from dom (fixes #4384)
@codecov

This comment has been minimized.

Copy link

codecov bot commented Nov 14, 2019

Codecov Report

Merging #4388 into dev will increase coverage by <.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##              dev    #4388      +/-   ##
==========================================
+ Coverage   99.91%   99.91%   +<.01%     
==========================================
  Files         239      239              
  Lines        4617     4624       +7     
  Branches     1298     1300       +2     
==========================================
+ Hits         4613     4620       +7     
  Misses          3        3              
  Partials        1        1
Impacted Files Coverage Δ
src/components/table/helpers/mixin-tbody-row.js 100% <100%> (ø) ⬆️
src/components/table/helpers/mixin-tbody.js 100% <100%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 136a72b...1d33c51. Read the comment docs.

@tmorehouse tmorehouse added this to In progress in 2.2.0 via automation Nov 14, 2019
@tmorehouse tmorehouse marked this pull request as ready for review Nov 14, 2019
@tmorehouse tmorehouse requested a review from jackmu95 Nov 14, 2019
tmorehouse added 3 commits Nov 14, 2019
@tmorehouse tmorehouse removed the Status: WIP label Nov 14, 2019
tmorehouse added 4 commits Nov 14, 2019
@tmorehouse

This comment has been minimized.

Copy link
Member Author

tmorehouse commented Nov 14, 2019

It appears that event listeners that are programatically added via this.$on do not appear in this.$listeners, so will need to adjust how the event suppression is handled.

Created an upstream issue at vuejs/vue#10825

tmorehouse added 3 commits Nov 14, 2019
@tmorehouse tmorehouse changed the title fix(b-table, b-table-lite): handle edge case with row events when table is removed from dom (fixes #4384) fix(b-table, b-table-lite): handle edge case with row events when table is removed from dom, and instantiate row event handlers only when listeners are registered (fixes #4384) Nov 14, 2019
@tmorehouse tmorehouse changed the title fix(b-table, b-table-lite): handle edge case with row events when table is removed from dom, and instantiate row event handlers only when listeners are registered (fixes #4384) fix(b-table, b-table-lite): handle edge case with row events when table is removed from dom. instantiate row event handlers only when listeners are registered (fixes #4384) Nov 15, 2019
@jackmu95 jackmu95 merged commit 9a81cd4 into dev Nov 15, 2019
7 of 9 checks passed
7 of 9 checks passed
License Compliance FOSSA is analyzing this commit
Details
deploy/netlify Deploy preview processing.
Details
ci/circleci: build Your tests passed on CircleCI!
Details
ci/circleci: lint Your tests passed on CircleCI!
Details
ci/circleci: setup Your tests passed on CircleCI!
Details
ci/circleci: test Your tests passed on CircleCI!
Details
codecov/patch 100% of diff hit (target 99.91%)
Details
codecov/project 99.91% (+<.01%) compared to 136a72b
Details
security/snyk - package.json (pi0) No manifest changes detected
2.2.0 automation moved this from In progress to Done Nov 15, 2019
@jackmu95 jackmu95 deleted the issue/4384 branch Nov 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
2.2.0
  
Done
2 participants
You can’t perform that action at this time.