1- import * as React from 'react' ;
21import { storage } from 'firebase/app' ;
2+ import * as React from 'react' ;
33import { getDownloadURL } from 'rxfire/storage' ;
44import { Observable } from 'rxjs' ;
5- import { ReactFireOptions , useObservable , useFirebaseApp } from '..' ;
5+ import { ReactFireOptions , useObservable } from '..' ;
6+ import { useStorage } from '../firebaseApp' ;
67
78/**
89 * modified version of rxFire's _fromTask
@@ -32,16 +33,8 @@ function _fromTask(task: storage.UploadTask) {
3233 * @param ref - reference to the blob the task is acting on
3334 * @param options
3435 */
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 ) ;
4538}
4639
4740/**
@@ -50,32 +43,19 @@ export function useStorageTask<T = unknown>(
5043 * @param ref - reference to the blob you want to download
5144 * @param options
5245 */
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 ) ;
6248}
6349
6450type StorageImageProps = {
6551 storagePath : string ;
6652 storage ?: firebase . storage . Storage ;
6753} ;
6854
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 > ) {
7656 let { storage, storagePath, ...imgProps } = props ;
7757
78- storage = storage || useFirebaseApp ( ) . storage ( ) ;
58+ storage = storage || useStorage ( ) ;
7959
8060 const imgSrc = useStorageDownloadURL ( storage . ref ( storagePath ) ) ;
8161 return < img src = { imgSrc } { ...imgProps } /> ;
0 commit comments