import { useEffect, useState } from 'react'; import { MessageFragment, MessageStatusEnum, MyProfileFragment, useMultipleDraftsQuery, useMyProfileQuery, } from 'expo-schema'; import { metrics } from 'config'; const { LIMITS } = metrics; export function useProfile(): ProfileProps { const [drafts, setDrafts] = useState([]); const { data } = useMyProfileQuery(); const { data: draftMessages, refetch: refetchDrafts } = useMultipleDraftsQuery({ variables: { input: { limit: LIMITS.messages, status: MessageStatusEnum.Draft, }, }, }); const removeDraft = (draftId: string) => { const newDrafts = drafts.filter((draft) => draft.id !== draftId); setDrafts(newDrafts); }; useEffect(() => { if (draftMessages?.multipleDrafts) { setDrafts(draftMessages.multipleDrafts); } }, [draftMessages, draftMessages?.multipleDrafts]); const profile = data?.me; return { profile: profile as MyProfileFragment, drafts: drafts, removeDraft, refetchDrafts, }; } interface ProfileProps { profile: MyProfileFragment; drafts: MessageFragment[]; removeDraft: (draftId: string) => void; refetchDrafts: () => void; }