Refactor highlight
Browse files- src/driver.ts +0 -1
- src/highlight.ts +1 -1
- src/state.ts +4 -0
src/driver.ts
CHANGED
|
@@ -34,7 +34,6 @@ export function driver(options: Config = {}) {
|
|
| 34 |
|
| 35 |
initEvents();
|
| 36 |
|
| 37 |
-
// Register hooks
|
| 38 |
listen("overlayClick", handleClose);
|
| 39 |
listen("escape", handleClose);
|
| 40 |
}
|
|
|
|
| 34 |
|
| 35 |
initEvents();
|
| 36 |
|
|
|
|
| 37 |
listen("overlayClick", handleClose);
|
| 38 |
listen("escape", handleClose);
|
| 39 |
}
|
src/highlight.ts
CHANGED
|
@@ -64,7 +64,7 @@ function transferHighlight(from: Element, to: Element) {
|
|
| 64 |
// If it's the first time we're highlighting an element, we show
|
| 65 |
// the popover immediately. Otherwise, we wait for the animation
|
| 66 |
// to finish before showing the popover.
|
| 67 |
-
const hasDelayedPopover =
|
| 68 |
|
| 69 |
hidePopover();
|
| 70 |
|
|
|
|
| 64 |
// If it's the first time we're highlighting an element, we show
|
| 65 |
// the popover immediately. Otherwise, we wait for the animation
|
| 66 |
// to finish before showing the popover.
|
| 67 |
+
const hasDelayedPopover = !from || from !== to;
|
| 68 |
|
| 69 |
hidePopover();
|
| 70 |
|
src/state.ts
CHANGED
|
@@ -2,9 +2,13 @@ import { StageDefinition } from "./stage";
|
|
| 2 |
import { PopoverDOM } from "./popover";
|
| 3 |
|
| 4 |
export type State = {
|
|
|
|
| 5 |
isInitialized?: boolean;
|
|
|
|
|
|
|
| 6 |
resizeTimeout?: number;
|
| 7 |
|
|
|
|
| 8 |
previousHighlight?: Element;
|
| 9 |
activeHighlight?: Element;
|
| 10 |
transitionCallback?: () => void;
|
|
|
|
| 2 |
import { PopoverDOM } from "./popover";
|
| 3 |
|
| 4 |
export type State = {
|
| 5 |
+
// Whether driver is initialized or not
|
| 6 |
isInitialized?: boolean;
|
| 7 |
+
|
| 8 |
+
// Used to bounce the resize event
|
| 9 |
resizeTimeout?: number;
|
| 10 |
|
| 11 |
+
// Used while transitioning between stages
|
| 12 |
previousHighlight?: Element;
|
| 13 |
activeHighlight?: Element;
|
| 14 |
transitionCallback?: () => void;
|