Skip to content

fix: prevent duplicate button injection - #7

Open
Laecherlich wants to merge 1 commit into
solidtime-io:mainfrom
lipsia:fix/duplicate-button-injection
Open

fix: prevent duplicate button injection#7
Laecherlich wants to merge 1 commit into
solidtime-io:mainfrom
lipsia:fix/duplicate-button-injection

Conversation

@Laecherlich

Copy link
Copy Markdown

Problem

Multiple start/stop buttons appear on Jira issue pages (see screenshot-reproducible on busy boards; same pattern exists for Linear and Plane).

The inject functions check whether the button exists, then await the current-time-entry lookup, and only afterwards append the button. Jira's SPA DOM mutations retrigger injection while the first call is still awaiting, so several calls pass the existence check and each append their own button — a check-then-act race whose window is as long as the API round-trip.

Fix

Guard each inject function with a module-level in-progress flag, and after the await remove any button that existed or appeared meanwhile before appending. Applied consistently to jira.ts, linear.ts, and plane.ts.

Adds no new vue-tsc errors (same error count as main).

The inject functions check for an existing button, then await an async
tracking-state lookup, and only afterwards append the button. SPA DOM
mutations retrigger injection while the first call is still awaiting, so
several calls pass the existence check and each append their own button.

Guard injection with an in-progress flag and remove any button that
appeared while awaiting before appending.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant