Skip to content

Commit 848eaa3

Browse files
authored
StorageImage use useStorage (#233)
1 parent c305e3d commit 848eaa3

File tree

1 file changed

+9
-29
lines changed

1 file changed

+9
-29
lines changed

reactfire/storage/index.tsx

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import * as React from 'react';
21
import { storage } from 'firebase/app';
2+
import * as React from 'react';
33
import { getDownloadURL } from 'rxfire/storage';
44
import { 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

6450
type 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

Comments
 (0)