import { AnalyticsEventNameConstants, EVENT_NAMES } from "../constants"; import { sendAsAnalyticsEvent } from "../hooks/useAnalyticsEvent"; import { PreferenceManagerConnector } from "../native-module/NativeModules"; export interface PreferenceData { shouldPersistForSession: boolean; value: string | number | boolean; } export const getStringPreference = async ( key: string, type: string = "string", ) => { try { const data = await PreferenceManagerConnector.get(key, type); return data; } catch (error) { sendAsAnalyticsEvent({ name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR, properties: { errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR, error: `${error}`, methodName: "getStringPreference", }, }); return null; } }; export const setStringPreference = (key: string, preferenceData: string) => { if (!PreferenceManagerConnector.setString) { return null; } try { const data = PreferenceManagerConnector.setString(key, preferenceData); return data; } catch (error) { sendAsAnalyticsEvent({ name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR, properties: { errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR, error: `${error}`, methodName: "setStringPreference", }, }); return null; } }; export const setIntPreference = (key: string, preferenceData: number) => { if (!PreferenceManagerConnector.setInt) { return null; } try { const data = PreferenceManagerConnector.setInt(key, preferenceData); return data; } catch (error) { sendAsAnalyticsEvent({ name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR, properties: { errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR, error: `${error}`, methodName: "setIntPreference", }, }); return null; } }; export const setBooleanPreference = (key: string, preferenceData: boolean) => { if (!PreferenceManagerConnector.setBoolean) { return null; } try { const data = PreferenceManagerConnector.setBoolean(key, preferenceData); return data; } catch (error) { sendAsAnalyticsEvent({ name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR, properties: { errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR, error: `${error}`, methodName: "setBooleanPreference", }, }); return null; } }; export const getIntPreference = async (key: string, type: string = "int") => { try { const data = await PreferenceManagerConnector.get(key, type); return data; } catch (error) { sendAsAnalyticsEvent({ name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR, properties: { errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR, error: `${error}`, methodName: "getIntPreference", }, }); return null; } };