FlowFuse / FlowFuse/flowfuse

Shepherd tour steps with advanceOn keys do not trigger the tour's onNext callback

Open
#5,062 0 comments 0 reactions 0 assignees View on GitHub
needs-triage size:S type:bug
Dominant language
JavaScript
Stars
400
Forks
89
Avg merge
1d 20h
Merged PRs (30d)
149

Description

### Current Behavior

The title pretty much sums it up. If a shepherd tour stage has an advanceOn key, the onNext callback is not getting called. This might be why we're seeing these drop offs in posthog.

This might be because we're adding the handler only on the 'next' button in `frontend/src/tours/Tours.js:112` although this feels like it should be triggered automatically by the framework itself.

Another quirk was that shepherd did not trigger the onComplete handler by default when the last stage of the tour was accomplished when the last step had an advanceOn key (see `frontend/src/tours/tour-first-device.js:50`). This was only happening when vue click event handlers were added to the elements shepherd was tracking (a fix in where we re-emit the click event for shepherd can be found here `frontend/src/pages/team/Devices/dialogs/DeviceCredentialsDialog.vue:126`).

Although we're using the vue-shepherd library, it doesn't seem to play nice with vue.

### Expected Behavior

all tour stage events should be triggered and captured correctly.

### Steps To Reproduce

place console logs in the tour event handlers and follow the first-devices tour, which is most evident.

### Environment

- FlowFuse version: 2.13.1
- Node.js version: N/A
- npm version: N/A
- Platform/OS: N/A
- Browser: N/A

### Have you provided an initial effort estimate for this issue?

I have provided an initial effort estimate

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.