@told.club/sdk-rn
Version:
Told React Native SDK
54 lines • 1.73 kB
JavaScript
import AsyncStorage from '@react-native-async-storage/async-storage';
let surveyData = [];
const storageKey = 'ToldSurveyData';
export async function loadSurveyData() {
const data = await AsyncStorage.getItem(storageKey);
if (data) surveyData = JSON.parse(data);
}
export function getRepliedSurvey() {
return surveyData.filter(data => data.replied > 0).map(data => ({
surveyId: data.surveyId,
date: data.date,
replied: data.replied > 0
}));
}
export function setSeen(surveyId) {
const actualData = surveyData.find(data => data.surveyId === surveyId);
if (actualData) {
// If the survey is already seen, increment the seenCount
actualData.seenCount += 1;
} else {
// If the survey is not seen, add it to the list
surveyData.push({
surveyId,
seenCount: 1,
replied: 0,
date: undefined
});
}
AsyncStorage.setItem(storageKey, JSON.stringify(surveyData));
}
export function setReplied(surveyId) {
const actualData = surveyData.find(data => data.surveyId === surveyId);
if (actualData) {
// If the survey is already seen, increment the replied
actualData.replied += 1;
actualData.date = new Date().toISOString();
} else {
// If the survey is not seen, add it to the list
surveyData.push({
surveyId,
seenCount: 0,
replied: 1,
date: new Date().toISOString()
});
}
AsyncStorage.setItem(storageKey, JSON.stringify(surveyData));
}
export function isSeen(surveyId) {
return surveyData.some(data => data.surveyId === surveyId && data.seenCount > 0);
}
export function isReplied(surveyId) {
return surveyData.some(data => data.surveyId === surveyId && data.replied > 0);
}
//# sourceMappingURL=ToldStorage.js.map