Relationship component really close to just working really well

This commit is contained in:
2024-10-12 21:55:48 -05:00
parent 56206c1665
commit fc1975fd74
11 changed files with 453 additions and 78 deletions

View File

@ -0,0 +1,57 @@
import * as SecureStore from 'expo-secure-store';
type UserData = {
id: number;
appleId: string | null;
appleEmail: string | null;
fullName: string;
pfpURL: string | null;
pushToken: string;
createdAt: Date;
};
type Relationship = {
id: number;
title: string;
status: 'pending' | 'accepted' | 'rejected';
relationshipStartDate: Date;
createdAt: Date;
};
type RelationshipData = {
relationship: Relationship;
partner: UserData;
};
export const saveRelationshipData = async (RelationshipData: RelationshipData) => {
try {
await SecureStore.setItemAsync('RelationshipData', JSON.stringify(RelationshipData));
} catch (error) {
console.error('Error saving user data:', error);
}
};
export const getRelationshipData = async () => {
try {
const RelationshipData = await SecureStore.getItemAsync('RelationshipData');
return RelationshipData ? JSON.parse(RelationshipData) : null;
} catch (error) {
console.error('Error getting user data:', error);
return null;
}
};
export const updateRelationshipData = async (updatedFields: Partial<any>) => {
try {
const currentUserData: RelationshipData = await getRelationshipData() as RelationshipData;
if (currentUserData) {
const updatedUserData: RelationshipData = { ...currentUserData, ...updatedFields };
await saveRelationshipData(updatedUserData);
return updatedUserData as RelationshipData;
}
return null;
} catch (error) {
console.error('Error updating user data:', error);
return null;
}
};

View File

@ -1,6 +1,16 @@
import * as SecureStore from 'expo-secure-store';
export const saveUserData = async (userData: any) => {
type UserData = {
id: number;
appleId: string | null;
appleEmail: string | null;
fullName: string;
pfpURL: string | null;
pushToken: string;
createdAt: Date;
};
export const saveUserData = async (userData: UserData) => {
try {
await SecureStore.setItemAsync('userData', JSON.stringify(userData));
} catch (error) {
@ -20,11 +30,11 @@ export const getUserData = async () => {
export const updateUserData = async (updatedFields: Partial<any>) => {
try {
const currentUserData = await getUserData();
const currentUserData: UserData = await getUserData() as UserData;
if (currentUserData) {
const updatedUserData = { ...currentUserData, ...updatedFields };
const updatedUserData: UserData = { ...currentUserData, ...updatedFields };
await saveUserData(updatedUserData);
return updatedUserData;
return updatedUserData as UserData;
}
return null;
} catch (error) {