2024-12-24 16:30:57 +05:30
|
|
|
import { AnalyticsEventNameConstants, EVENT_NAMES } from "../constants";
|
2024-10-24 16:38:07 +05:30
|
|
|
import { sendAsAnalyticsEvent } from "../hooks/useAnalyticsEvent";
|
2024-03-27 20:36:03 +05:30
|
|
|
import { PreferenceManagerConnector } from "../native-module/NativeModules";
|
|
|
|
|
|
2024-12-24 16:30:57 +05:30
|
|
|
export interface PreferenceData {
|
|
|
|
|
shouldPersistForSession: boolean;
|
|
|
|
|
value: string | number | boolean;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-27 20:36:03 +05:30
|
|
|
export const getStringPreference = async (
|
|
|
|
|
key: string,
|
2024-10-24 16:38:07 +05:30
|
|
|
type: string = "string",
|
2024-03-27 20:36:03 +05:30
|
|
|
) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await PreferenceManagerConnector.get(key, type);
|
|
|
|
|
return data;
|
|
|
|
|
} catch (error) {
|
2024-10-24 16:38:07 +05:30
|
|
|
sendAsAnalyticsEvent({
|
|
|
|
|
name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR,
|
|
|
|
|
properties: {
|
|
|
|
|
errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR,
|
|
|
|
|
error: `${error}`,
|
|
|
|
|
methodName: "getStringPreference",
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-04 07:46:04 -07:00
|
|
|
export const setStringPreference = (key: string, preferenceData: string) => {
|
|
|
|
|
if (!PreferenceManagerConnector.setString) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
const data = PreferenceManagerConnector.setString(key, preferenceData);
|
|
|
|
|
return data;
|
|
|
|
|
} catch (error) {
|
2024-10-24 16:38:07 +05:30
|
|
|
sendAsAnalyticsEvent({
|
|
|
|
|
name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR,
|
|
|
|
|
properties: {
|
|
|
|
|
errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR,
|
|
|
|
|
error: `${error}`,
|
|
|
|
|
methodName: "setStringPreference",
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-05-04 07:46:04 -07:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const setIntPreference = (key: string, preferenceData: number) => {
|
|
|
|
|
if (!PreferenceManagerConnector.setInt) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2024-03-27 20:36:03 +05:30
|
|
|
try {
|
2024-05-04 07:46:04 -07:00
|
|
|
const data = PreferenceManagerConnector.setInt(key, preferenceData);
|
|
|
|
|
return data;
|
|
|
|
|
} catch (error) {
|
2024-10-24 16:38:07 +05:30
|
|
|
sendAsAnalyticsEvent({
|
|
|
|
|
name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR,
|
|
|
|
|
properties: {
|
|
|
|
|
errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR,
|
|
|
|
|
error: `${error}`,
|
|
|
|
|
methodName: "setIntPreference",
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-05-04 07:46:04 -07:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const setBooleanPreference = (key: string, preferenceData: boolean) => {
|
|
|
|
|
if (!PreferenceManagerConnector.setBoolean) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
const data = PreferenceManagerConnector.setBoolean(key, preferenceData);
|
2024-03-27 20:36:03 +05:30
|
|
|
return data;
|
|
|
|
|
} catch (error) {
|
2024-10-24 16:38:07 +05:30
|
|
|
sendAsAnalyticsEvent({
|
|
|
|
|
name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR,
|
|
|
|
|
properties: {
|
|
|
|
|
errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR,
|
|
|
|
|
error: `${error}`,
|
|
|
|
|
methodName: "setBooleanPreference",
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getIntPreference = async (key: string, type: string = "int") => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await PreferenceManagerConnector.get(key, type);
|
|
|
|
|
return data;
|
|
|
|
|
} catch (error) {
|
2024-10-24 16:38:07 +05:30
|
|
|
sendAsAnalyticsEvent({
|
|
|
|
|
name: AnalyticsEventNameConstants.HI_RN_INVALID_DATA_ERROR,
|
|
|
|
|
properties: {
|
|
|
|
|
errorType: EVENT_NAMES.SHARED_PREFERENCE_KEY_ERROR,
|
|
|
|
|
error: `${error}`,
|
|
|
|
|
methodName: "getIntPreference",
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
return null;
|
|
|
|
|
}
|
2024-05-04 07:46:04 -07:00
|
|
|
};
|