Files
super-app/App/common/utilities/SharedPreferenceUtils.ts
Kshitij Pramod Ghongadi f95cdfe35d NTP-15148 | GI | Self Serve Plan Migration Flow (#14226)
Co-authored-by: Prajjaval Verma <prajjaval.verma@navi.com>
Co-authored-by: Balrambhai Sharma <sharma.balrambhai@navi.com>
2024-12-24 11:00:57 +00:00

106 lines
2.9 KiB
TypeScript

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;
}
};