1
- import firebase from 'firebase/app' ;
1
+ import {
2
+ getDownloadURL ,
3
+ StorageError ,
4
+ StorageReference ,
5
+ } from 'firebase/storage' ;
2
6
import { useEffect } from 'react' ;
3
7
import { LoadingHook , useComparatorRef , useLoadingValue } from '../util' ;
4
8
5
- export type DownloadURLHook = LoadingHook < string , firebase . FirebaseError > ;
9
+ export type DownloadURLHook = LoadingHook < string , StorageError > ;
6
10
7
- export default (
8
- storageRef ?: firebase . storage . Reference | null
9
- ) : DownloadURLHook => {
11
+ export default ( storageRef ?: StorageReference | null ) : DownloadURLHook => {
10
12
const { error, loading, reset, setError, setValue, value } = useLoadingValue <
11
13
string ,
12
- firebase . FirebaseError
14
+ StorageError
13
15
> ( ) ;
14
16
const ref = useComparatorRef ( storageRef , isEqual , reset ) ;
15
17
@@ -18,15 +20,15 @@ export default (
18
20
setValue ( undefined ) ;
19
21
return ;
20
22
}
21
- ref . current . getDownloadURL ( ) . then ( setValue ) . catch ( setError ) ;
23
+ getDownloadURL ( ref . current ) . then ( setValue ) . catch ( setError ) ;
22
24
} , [ ref . current ] ) ;
23
25
24
26
return [ value , loading , error ] ;
25
27
} ;
26
28
27
29
const isEqual = (
28
- v1 : firebase . storage . Reference | null | undefined ,
29
- v2 : firebase . storage . Reference | null | undefined
30
+ v1 : StorageReference | null | undefined ,
31
+ v2 : StorageReference | null | undefined
30
32
) : boolean => {
31
33
const bothNull : boolean = ! v1 && ! v2 ;
32
34
const equal : boolean = ! ! v1 && ! ! v2 && v1 . fullPath === v2 . fullPath ;
0 commit comments