UNPKG

@videosdk.live/react-native-sdk

Version:

<h1 align="center"> <img src="https://static.videosdk.live/videosdk_logo_website_black.png"/><br/> <p align="center"> Video SDK React Native App <br/> <a href="https://videosdk.live/">videosdk.live</a> </p> </h1>

67 lines (54 loc) 1.95 kB
import { useMeeting } from '@videosdk.live/react-sdk'; import axios from 'axios'; import { Buffer } from 'buffer'; const useFile = () => { const mMeeting = useMeeting(); const uploadBase64File = async ({ base64Data, token, fileName }) => { try { if (!base64Data || !token || !fileName) { throw new Error("please provide base64Data, token and fileName"); } const url = `https://${mMeeting.meeting.baseUrl}/base64-upload?roomId=${mMeeting.meetingId}`; const requestBody = { fileName: fileName, base64Data, }; const apiResponse = await fetch(url, { method: 'POST', body: JSON.stringify(requestBody), headers: { 'Content-Type': 'application/json', Authorization: token, }, }) const responseData = await apiResponse.json(); return responseData.url; } catch (error) { console.error('Error while Uploading Base64 File::', error); } }; const fetchBase64File = async ({ url, token }) => { try { if (!url || !token) { throw new Error("please provide url and token"); } const res = await axios( { method: 'get', url: url, responseType: 'arraybuffer', headers: { Authorization: token } } ); const base64 = Buffer.from(res.data, 'binary').toString('base64'); return base64; } catch (error) { console.error('Error while fetching Base64 File::', error); } }; return { uploadBase64File, fetchBase64File } } export default useFile;