fix(js) remove legacy proptypes and fix paths

This commit is contained in:
Bartol Karuza 2019-03-03 20:12:30 +08:00
parent 13bc86ada8
commit 595e65fd18
2 changed files with 10 additions and 81 deletions

View File

@ -9,10 +9,7 @@
*/ */
'use strict'; 'use strict';
const PropTypes = require('prop-types'); import RNCCameraRoll from './nativeInterface';
const {checkPropTypes} = PropTypes;
const RNCCameraRoll = require('./nativeInterface');
const deprecatedCreateStrictShapeTypeChecker = require('deprecatedCreateStrictShapeTypeChecker');
const invariant = require('fbjs/lib/invariant'); const invariant = require('fbjs/lib/invariant');
const GROUP_TYPES_OPTIONS = { const GROUP_TYPES_OPTIONS = {
@ -33,52 +30,43 @@ const ASSET_TYPE_OPTIONS = {
export type GroupTypes = $Keys<typeof GROUP_TYPES_OPTIONS>; export type GroupTypes = $Keys<typeof GROUP_TYPES_OPTIONS>;
export type GetPhotosParams = {
first: number,
after?: string,
groupTypes?: GroupTypes,
groupName?: string,
assetType?: $Keys<typeof ASSET_TYPE_OPTIONS>,
mimeTypes?: Array<string>,
};
/** /**
* Shape of the param arg for the `getPhotos` function. * Shape of the param arg for the `getPhotos` function.
*/ */
const getPhotosParamChecker = deprecatedCreateStrictShapeTypeChecker({ export type GetPhotosParams = {
/** /**
* The number of photos wanted in reverse order of the photo application * The number of photos wanted in reverse order of the photo application
* (i.e. most recent first for SavedPhotos). * (i.e. most recent first for SavedPhotos).
*/ */
first: PropTypes.number.isRequired, first: number,
/** /**
* A cursor that matches `page_info { end_cursor }` returned from a previous * A cursor that matches `page_info { end_cursor }` returned from a previous
* call to `getPhotos` * call to `getPhotos`
*/ */
after: PropTypes.string, after?: string,
/** /**
* Specifies which group types to filter the results to. * Specifies which group types to filter the results to.
*/ */
groupTypes: PropTypes.oneOf(Object.keys(GROUP_TYPES_OPTIONS)), groupTypes?: GroupTypes,
/** /**
* Specifies filter on group names, like 'Recent Photos' or custom album * Specifies filter on group names, like 'Recent Photos' or custom album
* titles. * titles.
*/ */
groupName: PropTypes.string, groupName?: string,
/** /**
* Specifies filter on asset type * Specifies filter on asset type
*/ */
assetType: PropTypes.oneOf(Object.keys(ASSET_TYPE_OPTIONS)), assetType?: $Keys<typeof ASSET_TYPE_OPTIONS>,
/** /**
* Filter by mimetype (e.g. image/jpeg). * Filter by mimetype (e.g. image/jpeg).
*/ */
mimeTypes: PropTypes.arrayOf(PropTypes.string), mimeTypes?: Array<string>,
}); };
export type PhotoIdentifier = { export type PhotoIdentifier = {
node: { node: {
@ -112,43 +100,6 @@ export type PhotoIdentifiersPage = {
}, },
}; };
/**
* Shape of the return value of the `getPhotos` function.
*/
const getPhotosReturnChecker = deprecatedCreateStrictShapeTypeChecker({
edges: PropTypes.arrayOf(
/* $FlowFixMe(>=0.66.0 site=react_native_fb) This comment suppresses an
* error found when Flow v0.66 was deployed. To see the error delete this
* comment and run Flow. */
deprecatedCreateStrictShapeTypeChecker({
node: deprecatedCreateStrictShapeTypeChecker({
type: PropTypes.string.isRequired,
group_name: PropTypes.string.isRequired,
image: deprecatedCreateStrictShapeTypeChecker({
uri: PropTypes.string.isRequired,
height: PropTypes.number.isRequired,
width: PropTypes.number.isRequired,
isStored: PropTypes.bool,
playableDuration: PropTypes.number.isRequired,
}).isRequired,
timestamp: PropTypes.number.isRequired,
location: deprecatedCreateStrictShapeTypeChecker({
latitude: PropTypes.number,
longitude: PropTypes.number,
altitude: PropTypes.number,
heading: PropTypes.number,
speed: PropTypes.number,
}),
}).isRequired,
}),
).isRequired,
page_info: deprecatedCreateStrictShapeTypeChecker({
has_next_page: PropTypes.bool.isRequired,
start_cursor: PropTypes.string,
end_cursor: PropTypes.string,
}).isRequired,
});
/** /**
* `CameraRoll` provides access to the local camera roll or photo library. * `CameraRoll` provides access to the local camera roll or photo library.
* *
@ -208,35 +159,14 @@ class CameraRoll {
* See https://facebook.github.io/react-native/docs/cameraroll.html#getphotos * See https://facebook.github.io/react-native/docs/cameraroll.html#getphotos
*/ */
static getPhotos(params: GetPhotosParams): Promise<PhotoIdentifiersPage> { static getPhotos(params: GetPhotosParams): Promise<PhotoIdentifiersPage> {
if (__DEV__) {
checkPropTypes(
{params: getPhotosParamChecker},
{params},
'params',
'CameraRoll.getPhotos',
);
}
if (arguments.length > 1) { if (arguments.length > 1) {
console.warn( console.warn(
'CameraRoll.getPhotos(tag, success, error) is deprecated. Use the returned Promise instead', 'CameraRoll.getPhotos(tag, success, error) is deprecated. Use the returned Promise instead',
); );
let successCallback = arguments[1]; let successCallback = arguments[1];
if (__DEV__) {
const callback = arguments[1];
successCallback = response => {
checkPropTypes(
{response: getPhotosReturnChecker},
{response},
'response',
'CameraRoll.getPhotos callback',
);
callback(response);
};
}
const errorCallback = arguments[2] || (() => {}); const errorCallback = arguments[2] || (() => {});
RNCCameraRoll.getPhotos(params).then(successCallback, errorCallback); RNCCameraRoll.getPhotos(params).then(successCallback, errorCallback);
} }
// TODO: Add the __DEV__ check back in to verify the Promise result
return RNCCameraRoll.getPhotos(params); return RNCCameraRoll.getPhotos(params);
} }
} }

View File

@ -1,2 +1 @@
const RNCCameraRoll = require('NativeModules').RNCCameraRoll; export default require('NativeModules').RNCCameraRoll;
export default RNCCameraRoll;