-
Notifications
You must be signed in to change notification settings - Fork 336
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
Epic2 bugfix #825
Epic2 bugfix #825
Conversation
mattkrick
commented
Mar 15, 2017
•
edited
Loading
edited
- fix DnD acts strangly when user filter active on team dashboard #553 (filtered DnD)
- fix Facilitator abandons meeting; allow others to end it #592 (cron job for ending old meetings)
- fix Facilitator abandons meeting; allow others to end it #592 make facilitator role more obvious in meeting-- @ackernaut
- fix Skipping updates to agenda via progress bar causes router loop #487 (please test this one ultra thoroughly!)
- refactor gotoItem because I think a bug might be lurking there
- refactor the server mutation
- fix highlighted team no worky #818
- fix Actions list not showing in my dashboard #821
- fix Editing/Cursor Bug #824
@@ -0,0 +1,58 @@ | |||
import {LOBBY, CHECKIN, UPDATES, FIRST_CALL, AGENDA_ITEMS, LAST_CALL, SUMMARY} from 'universal/utils/constants'; | |||
|
|||
export default { |
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.
What you can't see, is the single tear rolling down my cheek.
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.
SPAs grow up so fast these days...
found a fun bug-- we can't use a mutationHandler because we want to reset it for everyone.
|
wooooo got it in with 8 mins to spare! ready for approval |
Codecov Report
@@ Coverage Diff @@
## master #825 +/- ##
=========================================
Coverage ? 58.48%
=========================================
Files ? 120
Lines ? 1650
Branches ? 0
=========================================
Hits ? 965
Misses ? 685
Partials ? 0
Continue to review full report at Codecov.
|
@@ -69,5 +71,26 @@ export default { | |||
await Promise.all(adjustmentPromises); | |||
return adjustmentPromises.length; | |||
} | |||
}, | |||
endOldMeetings: { |
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.
Ah awesome, I will add this to action-chronos
.
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.
Brilliant stuff @mattkrick, perhaps just a few comments are needed in spots?
import {cashay} from 'cashay'; | ||
import {showInfo} from 'universal/modules/toast/ducks/toastDuck'; | ||
|
||
const electFacilitatorIfNone = (nextProps, oldMembers) => { |
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.
I think this function could use some comments. I am having a hard time grokking what each of the state checks imply semantically. I'll give some examples:
|
||
const electFacilitatorIfNone = (nextProps, oldMembers) => { | ||
const {dispatch, team: {activeFacilitator}, members} = nextProps; | ||
if (!activeFacilitator) return; |
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.
Does this mean that the meeting hasn't started yet and a facilitator has never been elected?
// if the meeting has started, find the facilitator | ||
const facilitatingMemberIdx = members.findIndex((m) => m.isFacilitating); | ||
const facilitatingMember = members[facilitatingMemberIdx]; | ||
if (!facilitatingMember || facilitatingMember.isConnected === true) return; |
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.
Why isn't this facilitatingMember && facilitatingMember.isConnected === true
?
if (!facilitatingMember || facilitatingMember.isConnected === true) return; | ||
// check the old value because it's possible that we're trying before the message from the Presence sub comes in | ||
const oldFacilitatingMember = oldMembers[facilitatingMemberIdx]; | ||
if (!oldFacilitatingMember || oldFacilitatingMember.isConnected === false) return; |
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.
Why is isConnected false
here?
const onlineMembers = members.filter((m) => m.isConnected); | ||
const callingMember = onlineMembers[0]; | ||
const nextFacilitator = members.find((m) => m.isFacilitator && m.isConnected) || callingMember; | ||
if (callingMember.isSelf) { |
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 super smart and needs no comment. Super clean way to make sure only one connected member calls the mutation :)
Test Plan
|
So far @mattkrick, I could only find one reproducable issue #828. I swear I also saw the agenda list not always mark items as completed, but I could be mistaken... |
that could be, i had to change the completion logic so maybe a bug got in, lemme play around more & see if i get some repro steps |
Kk, I'm around and mostly available today so if you want to jam on it together lemme kno. Be sweet to get this up on prod in time for our meeting. Then we can all test together :) |
@jordanh can you give er another go & lemme know whatcha think? |
LGTM! |