@oxyhq/services
Version:
40 lines (39 loc) • 1.1 kB
JavaScript
;
import { useEffect, useRef, useState } from 'react';
import { createPlatformStorage } from "../utils/storageHelpers.js";
/**
* Simple React hook that initializes platform-appropriate storage.
* Returns storage instance once ready, or null if initialization failed.
*/
export const useStorage = ({
onError,
logger
} = {}) => {
const [storage, setStorage] = useState(null);
const initRef = useRef(null);
useEffect(() => {
// Prevent multiple initializations
if (initRef.current) return;
initRef.current = (async () => {
try {
const storageInstance = await createPlatformStorage();
setStorage(storageInstance);
} catch (err) {
const message = err instanceof Error ? err.message : 'Failed to initialize storage';
if (logger) {
logger(message, err);
}
onError?.({
message,
code: 'STORAGE_INIT_ERROR',
status: 500
});
}
})();
}, [logger, onError]);
return {
storage,
isReady: storage !== null
};
};
//# sourceMappingURL=useStorage.js.map