1
- import * as React from 'react' ;
2
1
import { storage } from 'firebase/app' ;
2
+ import * as React from 'react' ;
3
3
import { getDownloadURL } from 'rxfire/storage' ;
4
4
import { Observable } from 'rxjs' ;
5
- import { ReactFireOptions , useObservable , useFirebaseApp } from '..' ;
5
+ import { ReactFireOptions , useObservable } from '..' ;
6
+ import { useStorage } from '../firebaseApp' ;
6
7
7
8
/**
8
9
* modified version of rxFire's _fromTask
@@ -32,16 +33,8 @@ function _fromTask(task: storage.UploadTask) {
32
33
* @param ref - reference to the blob the task is acting on
33
34
* @param options
34
35
*/
35
- export function useStorageTask < T = unknown > (
36
- task : storage . UploadTask ,
37
- ref : storage . Reference ,
38
- options ?: ReactFireOptions < T >
39
- ) : storage . UploadTaskSnapshot | T {
40
- return useObservable (
41
- _fromTask ( task ) ,
42
- `storage:task:${ ref . toString ( ) } ` ,
43
- options ? options . startWithValue : undefined
44
- ) ;
36
+ export function useStorageTask < T = unknown > ( task : storage . UploadTask , ref : storage . Reference , options ?: ReactFireOptions < T > ) : storage . UploadTaskSnapshot | T {
37
+ return useObservable ( _fromTask ( task ) , `storage:task:${ ref . toString ( ) } ` , options ? options . startWithValue : undefined ) ;
45
38
}
46
39
47
40
/**
@@ -50,32 +43,19 @@ export function useStorageTask<T = unknown>(
50
43
* @param ref - reference to the blob you want to download
51
44
* @param options
52
45
*/
53
- export function useStorageDownloadURL < T = string > (
54
- ref : storage . Reference ,
55
- options ?: ReactFireOptions < T >
56
- ) : string | T {
57
- return useObservable (
58
- getDownloadURL ( ref ) ,
59
- `storage:downloadUrl:${ ref . toString ( ) } ` ,
60
- options ? options . startWithValue : undefined
61
- ) ;
46
+ export function useStorageDownloadURL < T = string > ( ref : storage . Reference , options ?: ReactFireOptions < T > ) : string | T {
47
+ return useObservable ( getDownloadURL ( ref ) , `storage:downloadUrl:${ ref . toString ( ) } ` , options ? options . startWithValue : undefined ) ;
62
48
}
63
49
64
50
type StorageImageProps = {
65
51
storagePath : string ;
66
52
storage ?: firebase . storage . Storage ;
67
53
} ;
68
54
69
- export function StorageImage (
70
- props : StorageImageProps &
71
- React . DetailedHTMLProps <
72
- React . ImgHTMLAttributes < HTMLImageElement > ,
73
- HTMLImageElement
74
- >
75
- ) {
55
+ export function StorageImage ( props : StorageImageProps & React . DetailedHTMLProps < React . ImgHTMLAttributes < HTMLImageElement > , HTMLImageElement > ) {
76
56
let { storage, storagePath, ...imgProps } = props ;
77
57
78
- storage = storage || useFirebaseApp ( ) . storage ( ) ;
58
+ storage = storage || useStorage ( ) ;
79
59
80
60
const imgSrc = useStorageDownloadURL ( storage . ref ( storagePath ) ) ;
81
61
return < img src = { imgSrc } { ...imgProps } /> ;
0 commit comments