Skip to content

Commit 0523014

Browse files
committed
Update react api jsdoc example
1 parent 07916b3 commit 0523014

File tree

3 files changed

+59
-14
lines changed

3 files changed

+59
-14
lines changed

docs-devsite/telemetry_react.md

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,35 @@ The default [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance
5656
### Example
5757

5858

59-
```html
60-
<body>
61-
<FirebaseTelemetry firebaseApp={app} />
62-
... my app ...
63-
</body>
59+
```tsx
60+
import { useEffect, useState } from "react";
61+
import { FirebaseTelemetry } from "@firebase/telemetry/react";
62+
import { FirebaseApp, initializeApp } from "@firebase/app";
63+
64+
export default function MyApp() {
65+
const [app, setApp] = useState<FirebaseApp | null>(null);
66+
67+
useEffect(() => {
68+
if (getApps().length === 0) {
69+
const newApp = initializeApp({...});
70+
setApp(newApp);
71+
} else {
72+
setApp(getApp());
73+
}
74+
}, []);
75+
76+
return (
77+
<>
78+
{app && (
79+
<FirebaseTelemetry
80+
firebaseApp={app}
81+
telemetryOptions={{...}}
82+
/>
83+
)}
84+
...
85+
</>
86+
);
87+
}
6488

6589
```
6690

packages/telemetry/src/angular/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,7 @@ export class FirebaseErrorHandler implements ErrorHandler {
8181
private readonly router = inject(Router);
8282
private readonly telemetry: Telemetry;
8383

84-
constructor(
85-
app: FirebaseApp,
86-
telemetryOptions?: TelemetryOptions
87-
) {
84+
constructor(app: FirebaseApp, telemetryOptions?: TelemetryOptions) {
8885
this.telemetry = getTelemetry(app, telemetryOptions);
8986
}
9087

packages/telemetry/src/react/index.ts

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,35 @@ export * from '../public-types';
3232
* implicitly caught by Error Boundaries, will not be captured by this component.
3333
*
3434
* @example
35-
* ```html
36-
* <body>
37-
* <FirebaseTelemetry firebaseApp={app} />
38-
* ... my app ...
39-
* </body>
35+
* ```tsx
36+
* import { useEffect, useState } from "react";
37+
* import { FirebaseTelemetry } from "@firebase/telemetry/react";
38+
* import { FirebaseApp, initializeApp } from "@firebase/app";
39+
*
40+
* export default function MyApp() {
41+
* const [app, setApp] = useState<FirebaseApp | null>(null);
42+
*
43+
* useEffect(() => {
44+
* if (getApps().length === 0) {
45+
* const newApp = initializeApp({...});
46+
* setApp(newApp);
47+
* } else {
48+
* setApp(getApp());
49+
* }
50+
* }, []);
51+
*
52+
* return (
53+
* <>
54+
* {app && (
55+
* <FirebaseTelemetry
56+
* firebaseApp={app}
57+
* telemetryOptions={{...}}
58+
* />
59+
* )}
60+
* ...
61+
* </>
62+
* );
63+
* }
4064
* ```
4165
*
4266
* @param firebaseApp - The {@link @firebase/app#FirebaseApp} instance to use.

0 commit comments

Comments
 (0)