react-firehooks
Version:
Lightweight dependency-free collection of React hooks for Firebase
18 lines (17 loc) • 1.01 kB
JavaScript
import { getBytes } from "firebase/storage";
import { useCallback } from "react";
import { useGet } from "../internal/useGet.js";
import { isStorageRefEqual } from "./internal.js";
/**
* Returns the data of a Google Cloud Storage object
* @param reference Reference to a Google Cloud Storage object
* @param maxDownloadSizeBytes If set, the maximum allowed size in bytes to retrieve
* @returns Data, loading state, and error
* - value: Object data; `undefined` if data of the object is currently being downloaded, or an error occurred
* - loading: `true` while downloading the data of the object; `false` if the data was downloaded successfully or an error occurred
* - error: `undefined` if no error occurred
*/
export function useBytes(reference, maxDownloadSizeBytes) {
const fetchBytes = useCallback(async (ref) => getBytes(ref, maxDownloadSizeBytes), [maxDownloadSizeBytes]);
return useGet(reference !== null && reference !== void 0 ? reference : undefined, fetchBytes, isStorageRefEqual);
}