managarten/apps-archived/reader/apps/mobile/utils/storage.ts
Till JS 076e0c843d chore: restore archived apps (bauntown, news, reader, uload, wisekeep)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 01:08:51 +01:00

29 lines
934 B
TypeScript

import AsyncStorage from '@react-native-async-storage/async-storage';
import { Platform } from 'react-native';
// Platform-specific storage adapter for Supabase
const createStorage = () => {
// For web/SSR environments, use a no-op storage or localStorage
if (Platform.OS === 'web') {
// Check if we're in a browser environment
if (typeof window !== 'undefined' && window.localStorage) {
return {
getItem: async (key: string) => window.localStorage.getItem(key),
setItem: async (key: string, value: string) => window.localStorage.setItem(key, value),
removeItem: async (key: string) => window.localStorage.removeItem(key),
};
} else {
// SSR environment - return no-op storage
return {
getItem: async () => null,
setItem: async () => {},
removeItem: async () => {},
};
}
}
// For native platforms, use AsyncStorage
return AsyncStorage;
};
export const storage = createStorage();