Skip to content

Commit 1d515e7

Browse files
antonisclaude
andcommitted
fix(feedback): Track ownership in imperative shake API
enableFeedbackOnShake now records whether it actually started the listener (using the boolean returned by startShakeListener). disableFeedbackOnShake only stops the listener if it was the one that started it, preventing it from interfering with a listener owned by FeedbackWidgetProvider. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 3f73070 commit 1d515e7

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

packages/core/src/js/feedback/FeedbackWidgetManager.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,18 @@ const resetScreenshotButtonManager = (): void => {
133133
ScreenshotButtonManager.reset();
134134
};
135135

136+
let _imperativeShakeListenerStarted = false;
137+
136138
const enableFeedbackOnShake = (): void => {
137139
lazyLoadAutoInjectFeedbackIntegration();
138-
startShakeListener(showFeedbackWidget);
140+
_imperativeShakeListenerStarted = startShakeListener(showFeedbackWidget);
139141
};
140142

141143
const disableFeedbackOnShake = (): void => {
142-
stopShakeListener();
144+
if (_imperativeShakeListenerStarted) {
145+
stopShakeListener();
146+
_imperativeShakeListenerStarted = false;
147+
}
143148
};
144149

145150
export { showFeedbackButton, hideFeedbackButton, showFeedbackWidget, enableFeedbackOnShake, disableFeedbackOnShake, showScreenshotButton, hideScreenshotButton, resetFeedbackButtonManager, resetFeedbackWidgetManager, resetScreenshotButtonManager };

0 commit comments

Comments
 (0)