UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

54 lines (46 loc) 1.25 kB
import { convertStoryPayloadToRaw } from '~/storyRepository/utils/convertStoryPayloadToRaw'; import { ingestInCache } from '~/cache/api/ingestInCache'; const saveOptimisticToCache = (payload: Amity.StoryCreatePayload) => { const optimisticData = convertStoryPayloadToRaw(payload); ingestInCache(optimisticData); return optimisticData; }; export const createOptimisticEvent = ( { payload, formData = undefined, isVideo = false, }: { payload: Amity.StoryCreatePayload; formData?: FormData; isVideo?: boolean; }, callback: (optimisticData: Amity.StoryPayload) => void, ) => { if (formData) { const files = formData.getAll('files'); const fileObject = (files[0] as File & { uri: string }) || undefined; if (!fileObject) return; const optimisticData = { ...payload, data: { ...payload.data, fileId: undefined, fileData: fileObject.uri, }, }; if (isVideo) { optimisticData.data.videoFileId = { original: undefined }; } return callback(saveOptimisticToCache(optimisticData)); } return callback( saveOptimisticToCache({ ...payload, data: { ...payload.data, fileData: null, }, }), ); };