-
Notifications
You must be signed in to change notification settings - Fork 1.6k
feat: Add Gleap customer feedback integration #2807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add Gleap SDK integration following PostHog pattern - Add environment variable NEXT_PUBLIC_GLEAP_KEY to env.ts - Create GleapProvider component with user identification - Integrate GleapProvider into main layout - Add Gleap configuration to .env.example - Implement conditional loading based on environment variables Co-Authored-By: [email protected] <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Join our Discord community for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
const { data: user } = api.user.get.useQuery(); | ||
|
||
useEffect(() => { | ||
console.log('GleapProvider: Checking environment key...', { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove debug logging from the GleapProvider component before production. The console.log/error statements (e.g. 'GleapProvider: Checking environment key...') are useful for debugging but should be removed or gated by a debug flag.
@@ -889,7 +889,7 @@ var Ec = class extends Error { | |||
if (e) return; | |||
g.push(yc(l, i, r, n)); | |||
let { remoteProxy: G, destroy: L } = Cc(l, r, n); | |||
g.push(L), clearTimeout(u), (e = !0), c({ remoteProxy: G, destroy: X }); | |||
(g.push(L), clearTimeout(u), (e = !0), c({ remoteProxy: G, destroy: X })); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typographical error: The property for 'destroy' is being passed as X, but the destructured variable is named L. Did you mean to use L instead of X?
@@ -1979,33 +1984,33 @@ class br { | |||
b = -1, | |||
g = 0, | |||
e = l.length; | |||
(this.offsetAndType = null), | |||
((this.offsetAndType = null), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There appears to be an extra opening parenthesis at the start of the line on 1987. The code begins with ((this.offsetAndType = null),
which seems like an unintentional typo. Please review and remove the extra parenthesis if it was not intended.
@@ -9604,7 +9618,7 @@ function ih(l) { | |||
let i = document.createElement('div'), | |||
t = window.getComputedStyle(l), | |||
r = l.className; | |||
(i.id = 'onlook-drag-stub'), | |||
((i.id = 'onlook-drag-stub'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typographical note: There appears to be an extra opening parenthesis before the assignment to i.id (i.e., ((i.id = 'onlook-drag-stub'), ...
). It might be unintentional.
@@ -9823,7 +9838,7 @@ function xh() { | |||
for (let b of r) | |||
if (b.type === 'childList') { | |||
let g = b.target; | |||
b.addedNodes.forEach((e) => { | |||
(b.addedNodes.forEach((e) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's an extra opening parenthesis added before b.addedNodes.forEach((e) => { ...
on line 9841 that doesn't have a clear matching closing parenthesis. Please verify if this grouping is intended or remove it for clarity.
@@ -10211,7 +10226,7 @@ var B; | |||
function t(n) { | |||
throw new Error(); | |||
} | |||
(l.assertNever = t), | |||
((l.assertNever = t), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typographical Issue: There is an extra open parenthesis at the start of this line "((l.assertNever = t),". It appears to be a stray character and should probably be removed to match the intended syntax.
@@ -10949,10 +10964,10 @@ class Gl extends E { | |||
exact: !1, | |||
message: n.message, | |||
}), | |||
t.dirty(); | |||
t.dirty()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: There's an extra closing parenthesis in the call to t.dirty());
. This should probably be corrected to t.dirty();
.
@@ -10961,7 +10976,7 @@ class Gl extends E { | |||
exact: !1, | |||
message: n.message, | |||
}), | |||
t.dirty(); | |||
t.dirty()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typographical error: Extra closing parenthesis in the call to t.dirty()
. It should likely be t.dirty();
instead of t.dirty());
.
} | ||
if (r.maxSize !== null) { | ||
if (t.data.size > r.maxSize.value) | ||
x(t, { | ||
(x(t, { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typographical error: There is an extra opening parenthesis before the call to x(t, {...). Consider removing the extra '(' to ensure correct syntax.
@@ -12924,7 +12948,7 @@ var K4 = { object: tl.lazycreate }, | |||
(l.ZodPromise = 'ZodPromise'), | |||
(l.ZodBranded = 'ZodBranded'), | |||
(l.ZodPipeline = 'ZodPipeline'), | |||
(l.ZodReadonly = 'ZodReadonly'); | |||
(l.ZodReadonly = 'ZodReadonly')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There appears to be an extra closing parenthesis on this line. Did you intend to write (l.ZodReadonly = 'ZodReadonly');
instead of (l.ZodReadonly = 'ZodReadonly'));
?
Description
This PR adds Gleap customer feedback tool integration to the Onlook web application, following the same pattern established by the PostHog integration. The implementation includes:
Related Issues
Addresses user request for Gleap customer feedback tool integration.
Type of Change
Testing
Screenshots (if applicable)
Browser console showing successful Gleap initialization:

Additional Notes
apps/web/template/public/onlook-preload-script.js
- please verify these are intentional and related to the Gleap integrationNEXT_PUBLIC_GLEAP_KEY
variable is properly configured in production environmentsImplementation Details:
Link to Devin run: https://app.devin.ai/sessions/2bff61d9d25341519b6c8208c6d1840d
Requested by: @itsNintu ([email protected])
Important
Integrates Gleap customer feedback tool into Onlook web app with conditional loading, user identification, and environment variable configuration.
GleapProvider
component ingleap-provider.tsx
for Gleap SDK integration.NEXT_PUBLIC_GLEAP_KEY
environment variable.NEXT_PUBLIC_GLEAP_KEY
to.env.example
andenv.ts
.package.json
to includegleap
dependency.onlook-preload-script.js
need verification.GleapProvider
should be removed before production.This description was created by
for 0d1169c. You can customize this summary. It will automatically update as commits are pushed.