Skip to content

Commit bfeccea

Browse files
authored
Merge pull request #764 from dcapslock/touch-fix
fix: When using title card, need to click twice on icon to toggle expander after clicking on title card.
2 parents bdedf39 + e24375f commit bfeccea

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/ExpanderCard.svelte

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
}: {hass: HomeAssistant; preview: boolean; config: ExpanderConfig} = $props();
6565
6666
let touchPreventClick = $state(false);
67+
let touchPreventClickTimeout: ReturnType<typeof setTimeout> | null = $state(null);
6768
let open = $state(preview ? true : false);
6869
let previewState = $state(preview ? true : false);
6970
let showButtonUsers = $state(true);
@@ -212,6 +213,10 @@
212213
event.preventDefault();
213214
event.stopImmediatePropagation();
214215
touchPreventClick = false;
216+
if (touchPreventClickTimeout) {
217+
clearTimeout(touchPreventClickTimeout);
218+
touchPreventClickTimeout = null;
219+
}
215220
return false;
216221
}
217222
toggleOpen();
@@ -246,9 +251,14 @@
246251
const touchEnd = (event: TouchEvent) => {
247252
if (!isScrolling && touchElement === event.target && config['title-card-clickable']) {
248253
toggleOpen();
254+
touchPreventClick = true;
255+
// A touch event may not always be followed by a click event so we set a timeout to reset
256+
touchPreventClickTimeout = window.setTimeout(() => {
257+
touchPreventClick = false;
258+
touchPreventClickTimeout = null;
259+
}, 100);
249260
}
250261
touchElement = undefined;
251-
touchPreventClick = true;
252262
};
253263
</script>
254264

0 commit comments

Comments
 (0)