SimonErm dc00a4f115 feat(lib): save photos or videos to an album
* add option to specify album in saveToCameraRoll and move the optional type param to options

* check platform before setting default value for group types to prevent exception

* adjust typings

* update invariant message

* format code

* extract new implementation to function to avoid breaking change

* format code

* add missing spaces

* fix(lib): add accidentally removed savedphotos back to the enum to prevent crash

* chore(lib): formatting

* chore(lib): add doc for the new save method
2019-08-14 21:00:20 +02:00

97 lines
2.3 KiB
TypeScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
declare namespace CameraRoll {
type GroupType =
| 'Album'
| 'All'
| 'Event'
| 'Faces'
| 'Library'
| 'PhotoStream'
| 'SavedPhotos';
type AssetType = 'All' | 'Videos' | 'Photos';
interface GetPhotosParams {
first: number;
after?: string;
groupTypes?: GroupType;
groupName?: string;
assetType?: AssetType;
mimeTypes?: Array<string>;
}
interface PhotoIdentifier {
node: {
type: string,
group_name: string,
image: {
filename: string,
uri: string,
height: number,
width: number,
isStored?: boolean,
playableDuration: number,
},
timestamp: number,
location?: {
latitude?: number,
longitude?: number,
altitude?: number,
heading?: number,
speed?: number,
},
};
}
interface PhotoIdentifiersPage {
edges: Array<PhotoIdentifier>;
page_info: {
has_next_page: boolean,
start_cursor?: string,
end_cursor?: string,
};
}
type SaveToCameraRollOptions = {
type?: 'photo' | 'video' | 'auto',
album?: string,
};
/**
* `CameraRoll.saveImageWithTag()` is deprecated. Use `CameraRoll.saveToCameraRoll()` instead.
*/
function saveImageWithTag(tag: string): Promise<string>;
/**
* Delete a photo from the camera roll or media library. photos is an array of photo uri's.
*/
function deletePhotos(photos: Array<string>): void;
// deletePhotos: (photos: Array<string>) => void;
/**
* Saves the photo or video to the camera roll or photo library.
*/
function saveToCameraRoll(tag: string, type?: 'photo' | 'video'): Promise<string>;
/**
* Saves the photo or video to the camera roll or photo library.
*/
function save(tag: string, options?: SaveToCameraRollOptions): Promise<string>
/**
* Returns a Promise with photo identifier objects from the local camera
* roll of the device matching shape defined by `getPhotosReturnChecker`.
*/
function getPhotos(params: GetPhotosParams): Promise<PhotoIdentifiersPage>;
}
export = CameraRoll;