Files
react-native/Libraries/CameraRoll/NativeCameraRollManager.js
T
Kevin Gozali de667fffa4 Moved some NativeModule JS specs to OSS
Summary:
For some reason the specs were internal, but the native impl is still in github. So let's move these to github for consistency.

Changelog: [Internal]

Reviewed By: hramos

Differential Revision: D21419934

fbshipit-source-id: f2c4486edca43c4348f3a3c6ce98f76a322bab0b
2020-05-06 12:20:48 -07:00

72 lines
1.5 KiB
JavaScript

/**
* (c) Facebook, Inc. and its affiliates. Confidential and proprietary.
*
* @flow strict-local
* @format
*/
'use strict';
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export type PhotoIdentifier = {|
node: {|
image: PhotoIdentifierImage,
type: string,
group_name: string,
timestamp: number,
location: {|
longitude: number,
latitude: number,
// iOS Only
altitude: ?number,
heading: ?number,
speed: ?number,
|},
|},
|};
export type PhotoIdentifierImage = {|
uri: string,
playableDuration: number,
width: number,
height: number,
isStored: ?boolean,
filename: ?string,
|};
export type PhotoIdentifiersPage = {|
edges: Array<PhotoIdentifier>,
page_info: {|
has_next_page: boolean,
start_cursor?: ?string,
end_cursor?: ?string,
|},
|};
export type GetPhotosParams = {|
first: number,
after?: ?string,
groupName?: ?string,
groupTypes?: ?string,
assetType?: ?string,
maxSize?: ?number,
mimeTypes?: ?Array<string>,
|};
export interface Spec extends TurboModule {
+getConstants: () => {||};
// eslint-disable-next-line lint/react-native-modules
+getPhotos: (params: GetPhotosParams) => Promise<PhotoIdentifiersPage>;
+saveToCameraRoll: (uri: string, type: string) => Promise<string>;
// iOS Only
+deletePhotos: (assets: Array<string>) => Promise<boolean>;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'CameraRollManager',
): Spec);