UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

29 lines (25 loc) 912 B
import { pullFromCache, queryCache } from '~/cache/api'; import { postLinkedObject } from './postLinkedObject'; export const pinnedPostLinkedObject = (pinnedPost: Amity.RawPin): Amity.PinnedPost => { const postCached = pullFromCache<Amity.InternalPost>(['post', 'get', pinnedPost.referenceId]); const pinnedBy = queryCache<Amity.InternalUser>(['user', 'get'])!.find(cache => { return cache.data?.userInternalId === pinnedPost.pinnedBy; })?.data!; return { ...pinnedPost, pinnedBy, get post(): Amity.Post | undefined { if (!postCached?.data) return; return postLinkedObject(postCached.data); }, get target(): Amity.PinTarget | undefined { const pinTarget = pullFromCache<Amity.InternalPinTarget>([ 'pinTarget', 'get', postCached?.data.targetId, ]); if (!pinTarget?.data) return; return pinTarget?.data; }, }; };