-
Notifications
You must be signed in to change notification settings - Fork 455
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
gmail.observe.on('view_email', () => {}) is not fired #765
Comments
Hey there and thanks for the bug-report. I've tested and I can reproduce. I've given this a little run in the debugger and it seems to be timing-related. That is, our selectors are correct, but we are trying to look for a HTML element which has not yet been inserted when our code runs. There may be different (and better) ways to fix this, but I managed to get the event triggering by making this small change: // class depends if is_preview_pane - Bu for preview pane, nH for standard view,
// FIXME: the empty class ("") is for emails opened after thread is rendered (causes a storm of updates)
class: ["Bu", "nH", ""],
- sub_selector: "div.adn",
handler: function(match, callback) {
- match = new api.dom.email(match);
- callback(match);
+ setTimeout(() => {
+ match = match.find("div.adn.ads");
+ if (match.length) {
+ match = new api.dom.email(match);
+ callback(match);
+ }
+ }, 0);
}
}, This probably should be looked into a bit deeper, and a new version will need to be released. Do you have the ability to help out testing the above patch on your end? |
We ran into this earlier and found a workaround. There are two parts to the fix:
Notes:
|
Seems like you are a week ahead of me then, in terms of debugging, fixing and testing. PRs are definitely welcome. |
@josteink I don't seem to have permission to push a branch here. Are there steps to follow to contribute? |
For now just fork and create a regular "external" PR from your own repo. I can review, merge and push here. |
Here it is: Notes:
|
I appreciate the effort, but it seems to me you didn't create a "linked" fork by clicking the fork button in the upper right region of this repo. When you do that you can create pull requests (patches for review) straight back to this repo without any special access. GitHub has docs on this, and I'm sure there are lots of guides on YouTube too. Check this out, and see if you can make the PR show up in this repo? 🙂 |
@josteink I've tried your draft fix from this comment and it works fine for both private and GSuite accounts. I think it could be more safe to fix particulalry this handler instead of changing |
That's great news! I'm kinda busy at a conference now though. If someone could prep a PR which contains the following:
If someone does that, I'll try to get it merged and pushed to npmjs as soon as I can, possibly later today. Do you think you can do that, @onestep ? |
Ok guys. Let me know if it works for you 😄 |
Hello guys. It works now, the event is fired, but it is fired 4 times and sometimes 3 times when you open an email. |
@ionh : Can you test this with the latest PR from @cancan101 ? |
Sorry guys for the long response, just managed to pull the latest version which includes #767, unfortunately, the event continues to be fired 3 times in a row. For me is not a problem, my script just adds a button on the page after the email is opened, so I did a workaround, if the button is already added do not run the script on every triggered event. |
I've always been doing that anyway (making the event-handler idempotent), since thread rendering in Gmail does not seem to be entirely deterministic. It's probably for the best 😃 |
Hi @josteink , this problem is very important to me, I have used the latest version (v1.1.12) but this problem still occurs. Do you have any pr for quick modifications to it? I can refer to the modification section to quickly apply it to my project. Thanks! |
My suggestion above was above making changes to your own extension to make sure you, in your code, handle the event in a way where (depending on your needs), the crucial code on your part is only triggered once. There's currently no PR or fix for this. If someone wants to fix this and provide a PR, I will be happy to merge it and provide a new release. |
have this code from the boilerplate but looks like now
view_email
is not fired anymore? Other events likeview_thread
orcompose
are workingAny ideas?
The text was updated successfully, but these errors were encountered: