Skip to content

Commit 0537a35

Browse files
authored
fix(use-segment): avoid multiple analytics loads (#1242)
* fix(use-segment): avoid multiple analytics loads * fix: add changesets * fix: add peerdeps back
1 parent b9b31d8 commit 0537a35

File tree

4 files changed

+35
-8
lines changed

4 files changed

+35
-8
lines changed

.changeset/brown-dragons-flash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@scaleway/use-segment': patch
3+
---
4+
5+
Avoid multiple analytics loads

packages/use-segment/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
},
2424
"license": "MIT",
2525
"dependencies": {
26-
"@segment/analytics-next": "1.51.3"
26+
"@segment/analytics-next": "1.51.3",
27+
"use-deep-compare-effect": "1.8.1"
28+
},
29+
"devDependencies": {
30+
"react": "18.2.0"
2731
},
2832
"peerDependencies": {
2933
"react": "18.x || 18"

packages/use-segment/src/useSegment.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import type {
55
InitOptions,
66
} from '@segment/analytics-next'
77
import type { ReactNode } from 'react'
8-
import { createContext, useContext, useEffect, useMemo, useState } from 'react'
8+
import { createContext, useContext, useMemo, useState } from 'react'
9+
import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'
910

1011
export type OnEventError = (error: Error) => Promise<void> | void
1112
type EventFunction = (...args: never[]) => Promise<void>
@@ -72,7 +73,7 @@ function SegmentProvider<T extends Events>({
7273
)
7374
}, [initOptions?.integrations, settings?.writeKey])
7475

75-
useEffect(() => {
76+
useDeepCompareEffectNoCheck(() => {
7677
if (shouldLoad && settings) {
7778
AnalyticsBrowser.load(settings, initOptions)
7879
.then(([res]) => setAnalytics(res))

pnpm-lock.yaml

Lines changed: 22 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)