UNPKG

@oxyhq/services

Version:

OxyHQ Expo/React Native SDK — UI components, screens, and native features

40 lines (39 loc) 1.1 kB
"use strict"; 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