Skip to content

Commit 8dec188

Browse files
committed
Tweaks to #86
1 parent ede5362 commit 8dec188

9 files changed

+749
-944
lines changed

auth/useAuthState.ts

+6-9
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,13 @@ export default (auth: firebase.auth.Auth): AuthStateHook => {
1010
firebase.auth.Error
1111
>(() => auth.currentUser);
1212

13-
useEffect(
14-
() => {
15-
const listener = auth.onAuthStateChanged(setValue, setError);
13+
useEffect(() => {
14+
const listener = auth.onAuthStateChanged(setValue, setError);
1615

17-
return () => {
18-
listener();
19-
};
20-
},
21-
[auth]
22-
);
16+
return () => {
17+
listener();
18+
};
19+
}, [auth]);
2320

2421
return [value, loading, error];
2522
};

database/useList.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
import firebase from 'firebase';
1+
import firebase from 'firebase/app';
22
import { useEffect, useMemo } from 'react';
33
import { snapshotToData } from './helpers';
44
import useListReducer from './helpers/useListReducer';
55
import { LoadingHook, useIsEqualRef } from '../util';
66

7-
export type ListHook = LoadingHook<firebase.database.DataSnapshot[], firebase.FirebaseError>;
7+
export type ListHook = LoadingHook<
8+
firebase.database.DataSnapshot[],
9+
firebase.FirebaseError
10+
>;
811
export type ListKeysHook = LoadingHook<string[], firebase.FirebaseError>;
912
export type ListValsHook<T> = LoadingHook<T[], firebase.FirebaseError>;
1013

@@ -67,10 +70,12 @@ export const useList = (query?: firebase.database.Query | null): ListHook => {
6770
return [state.value.values, state.loading, state.error];
6871
};
6972

70-
export const useListKeys = (query?: firebase.database.Query | null): ListKeysHook => {
73+
export const useListKeys = (
74+
query?: firebase.database.Query | null
75+
): ListKeysHook => {
7176
const [value, loading, error] = useList(query);
7277
return [
73-
value ? value.map(snapshot => snapshot.key as string) : undefined,
78+
value ? value.map((snapshot) => snapshot.key as string) : undefined,
7479
loading,
7580
error,
7681
];
@@ -86,7 +91,7 @@ export const useListVals = <T>(
8691
const values = useMemo(
8792
() =>
8893
snapshots
89-
? snapshots.map(snapshot =>
94+
? snapshots.map((snapshot) =>
9095
snapshotToData(snapshot, options ? options.keyField : undefined)
9196
)
9297
: undefined,

database/useObject.ts

+18-16
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,34 @@ import { useEffect, useMemo } from 'react';
33
import { snapshotToData } from './helpers';
44
import { LoadingHook, useIsEqualRef, useLoadingValue } from '../util';
55

6-
export type ObjectHook = LoadingHook<firebase.database.DataSnapshot, firebase.FirebaseError>;
6+
export type ObjectHook = LoadingHook<
7+
firebase.database.DataSnapshot,
8+
firebase.FirebaseError
9+
>;
710
export type ObjectValHook<T> = LoadingHook<T, firebase.FirebaseError>;
811

9-
export const useObject = (query?: firebase.database.Query | null): ObjectHook => {
12+
export const useObject = (
13+
query?: firebase.database.Query | null
14+
): ObjectHook => {
1015
const { error, loading, reset, setError, setValue, value } = useLoadingValue<
1116
firebase.database.DataSnapshot,
1217
firebase.FirebaseError
1318
>();
1419
const ref = useIsEqualRef(query, reset);
1520

16-
useEffect(
17-
() => {
18-
const query = ref.current;
19-
if (!query) {
20-
setValue(undefined);
21-
return;
22-
}
21+
useEffect(() => {
22+
const query = ref.current;
23+
if (!query) {
24+
setValue(undefined);
25+
return;
26+
}
2327

24-
query.on('value', setValue, setError);
28+
query.on('value', setValue, setError);
2529

26-
return () => {
27-
query.off('value', setValue);
28-
};
29-
},
30-
[ref.current]
31-
);
30+
return () => {
31+
query.off('value', setValue);
32+
};
33+
}, [ref.current]);
3234

3335
return [value, loading, error];
3436
};

firestore/useCollection.ts

+22-22
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { useEffect, useMemo } from 'react';
33
import { snapshotToData } from './helpers';
44
import { LoadingHook, useIsEqualRef, useLoadingValue } from '../util';
55

6-
export type CollectionHook = LoadingHook<firebase.firestore.QuerySnapshot, Error>;
6+
export type CollectionHook = LoadingHook<
7+
firebase.firestore.QuerySnapshot,
8+
Error
9+
>;
710
export type CollectionDataHook<T> = LoadingHook<T[], Error>;
811

912
export const useCollection = (
@@ -18,27 +21,24 @@ export const useCollection = (
1821
>();
1922
const ref = useIsEqualRef(query, reset);
2023

21-
useEffect(
22-
() => {
23-
if (!ref.current) {
24-
setValue(undefined);
25-
return;
26-
}
27-
const listener =
28-
options && options.snapshotListenOptions
29-
? ref.current.onSnapshot(
30-
options.snapshotListenOptions,
31-
setValue,
32-
setError
33-
)
34-
: ref.current.onSnapshot(setValue, setError);
24+
useEffect(() => {
25+
if (!ref.current) {
26+
setValue(undefined);
27+
return;
28+
}
29+
const listener =
30+
options && options.snapshotListenOptions
31+
? ref.current.onSnapshot(
32+
options.snapshotListenOptions,
33+
setValue,
34+
setError
35+
)
36+
: ref.current.onSnapshot(setValue, setError);
3537

36-
return () => {
37-
listener();
38-
};
39-
},
40-
[ref.current]
41-
);
38+
return () => {
39+
listener();
40+
};
41+
}, [ref.current]);
4242

4343
return [value, loading, error];
4444
};
@@ -60,7 +60,7 @@ export const useCollectionData = <T>(
6060
const values = useMemo(
6161
() =>
6262
(snapshot
63-
? snapshot.docs.map(doc => snapshotToData(doc, idField))
63+
? snapshot.docs.map((doc) => snapshotToData(doc, idField))
6464
: undefined) as T[],
6565
[snapshot, idField]
6666
);

firestore/useCollectionOnce.ts

+15-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { useEffect } from 'react';
33
import { snapshotToData } from './helpers';
44
import { LoadingHook, useIsEqualRef, useLoadingValue } from '../util';
55

6-
export type CollectionOnceHook = LoadingHook<firebase.firestore.QuerySnapshot, Error>;
6+
export type CollectionOnceHook = LoadingHook<
7+
firebase.firestore.QuerySnapshot,
8+
Error
9+
>;
710
export type CollectionDataOnceHook<T> = LoadingHook<T[], Error>;
811

912
export const useCollectionOnce = (
@@ -18,19 +21,16 @@ export const useCollectionOnce = (
1821
>();
1922
const ref = useIsEqualRef(query, reset);
2023

21-
useEffect(
22-
() => {
23-
if (!ref.current) {
24-
setValue(undefined);
25-
return;
26-
}
27-
ref.current
28-
.get(options ? options.getOptions : undefined)
29-
.then(setValue)
30-
.catch(setError);
31-
},
32-
[ref.current]
33-
);
24+
useEffect(() => {
25+
if (!ref.current) {
26+
setValue(undefined);
27+
return;
28+
}
29+
ref.current
30+
.get(options ? options.getOptions : undefined)
31+
.then(setValue)
32+
.catch(setError);
33+
}, [ref.current]);
3434

3535
return [value, loading, error];
3636
};
@@ -47,7 +47,7 @@ export const useCollectionDataOnce = <T>(
4747
const [value, loading, error] = useCollectionOnce(query, { getOptions });
4848
return [
4949
(value
50-
? value.docs.map(doc => snapshotToData(doc, idField))
50+
? value.docs.map((doc) => snapshotToData(doc, idField))
5151
: undefined) as T[],
5252
loading,
5353
error,

firestore/useDocument.ts

+21-21
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { useEffect, useMemo } from 'react';
33
import { snapshotToData } from './helpers';
44
import { LoadingHook, useIsEqualRef, useLoadingValue } from '../util';
55

6-
export type DocumentHook = LoadingHook<firebase.firestore.DocumentSnapshot, Error>;
6+
export type DocumentHook = LoadingHook<
7+
firebase.firestore.DocumentSnapshot,
8+
Error
9+
>;
710
export type DocumentDataHook<T> = LoadingHook<T, Error>;
811

912
export const useDocument = (
@@ -18,27 +21,24 @@ export const useDocument = (
1821
>();
1922
const ref = useIsEqualRef(docRef, reset);
2023

21-
useEffect(
22-
() => {
23-
if (!ref.current) {
24-
setValue(undefined);
25-
return;
26-
}
27-
const listener =
28-
options && options.snapshotListenOptions
29-
? ref.current.onSnapshot(
30-
options.snapshotListenOptions,
31-
setValue,
32-
setError
33-
)
34-
: ref.current.onSnapshot(setValue, setError);
24+
useEffect(() => {
25+
if (!ref.current) {
26+
setValue(undefined);
27+
return;
28+
}
29+
const listener =
30+
options && options.snapshotListenOptions
31+
? ref.current.onSnapshot(
32+
options.snapshotListenOptions,
33+
setValue,
34+
setError
35+
)
36+
: ref.current.onSnapshot(setValue, setError);
3537

36-
return () => {
37-
listener();
38-
};
39-
},
40-
[ref.current]
41-
);
38+
return () => {
39+
listener();
40+
};
41+
}, [ref.current]);
4242

4343
return [value, loading, error];
4444
};

firestore/useDocumentOnce.ts

+14-14
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { useEffect } from 'react';
33
import { snapshotToData } from './helpers';
44
import { LoadingHook, useIsEqualRef, useLoadingValue } from '../util';
55

6-
export type DocumentOnceHook = LoadingHook<firebase.firestore.DocumentSnapshot, Error>;
6+
export type DocumentOnceHook = LoadingHook<
7+
firebase.firestore.DocumentSnapshot,
8+
Error
9+
>;
710
export type DocumentDataOnceHook<T> = LoadingHook<T, Error>;
811

912
export const useDocumentOnce = (
@@ -18,19 +21,16 @@ export const useDocumentOnce = (
1821
>();
1922
const ref = useIsEqualRef(docRef, reset);
2023

21-
useEffect(
22-
() => {
23-
if (!ref.current) {
24-
setValue(undefined);
25-
return;
26-
}
27-
ref.current
28-
.get(options ? options.getOptions : undefined)
29-
.then(setValue)
30-
.catch(setError);
31-
},
32-
[ref.current]
33-
);
24+
useEffect(() => {
25+
if (!ref.current) {
26+
setValue(undefined);
27+
return;
28+
}
29+
ref.current
30+
.get(options ? options.getOptions : undefined)
31+
.then(setValue)
32+
.catch(setError);
33+
}, [ref.current]);
3434

3535
return [value, loading, error];
3636
};

0 commit comments

Comments
 (0)