sjmc11 / tourguide-js

TourGuide is a Javascript library for creating user tours and on-boarding steps for your apps.
https://tourguidejs.com
MIT License
616 stars 31 forks source link

Don't set target element for steps unless it is found #29

Closed arnaudbroes closed 8 months ago

arnaudbroes commented 8 months ago

This is a PR that serves as a workaround/fix for https://github.com/sjmc11/tourguide-js/issues/12.

Right now it is possible to navigate to a different view or render an element before the next step is loaded via the onBeforeStepChange event. However, when a new element is rendered, it cannot be targeted even if refresh() or updatePositions(). This happens because the target element is undefined (because it does not exist yet) when the steps are initially computed, and recomputing them through a refresh does not work because the target is replaced by the undefined value on the first compute.

By simply not setting the target if the element cannot be found during compute, this can be avoided and new elements can easily be targeted after calling refresh().