@devloops/react-native-variant
Version:
react-native material ui library
44 lines (37 loc) • 938 B
Flow
import {useState} from 'react';
import {
CameraRoll,
GetPhotosParamType,
GetPhotosReturnType,
} from 'react-native';
const initialState: GetPhotosReturnType = {
edges: [],
page_info: {
end_cursor: '',
has_next_page: false,
start_cursor: '',
},
};
const defaultConfig: GetPhotosParamType = {
first: 20,
groupTypes: 'All',
};
export default function useCameraRoll() {
const [photos, setPhotos] = useState(initialState);
async function getPhotos(config = defaultConfig) {
try {
const photos = await CameraRoll.getPhotos(config);
setPhotos(photos);
} catch (err) {
console.log('error: ', err);
}
}
async function saveToCameraRoll(tag: string, type?: 'photo' | 'video') {
try {
await CameraRoll.saveToCameraRoll(tag, type);
} catch (err) {
console.log('error saving to camera roll: ', err);
}
}
return [photos, getPhotos, saveToCameraRoll];
}