mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Remove ImageStore JS files from RN open source
Summary: This is being removed from RN as part of Lean Core. Reviewed By: rickhanlonii Differential Revision: D15666249 fbshipit-source-id: 00612b999184f216cc3deb72c6b24af359060abe
This commit is contained in:
1 parent
93b9ac74e5
commit
8e16a60faa
3 files changed
+14
-147
No files matched your search
@@ -1,103 +0,0 @@
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
import NativeImageStore from './NativeImageStore';
|
||||
|
||||
const Platform = require('../Utilities/Platform');
|
||||
|
||||
const warnOnce = require('../Utilities/warnOnce');
|
||||
|
||||
function warnUnimplementedMethod(methodName: string): void {
|
||||
warnOnce(
|
||||
`imagestore-${methodName}`,
|
||||
`react-native: ImageStore.${methodName}() is not implemented on ${
|
||||
Platform.OS
|
||||
}`,
|
||||
);
|
||||
}
|
||||
|
||||
class ImageStore {
|
||||
/**
|
||||
* Check if the ImageStore contains image data for the specified URI.
|
||||
* @platform ios
|
||||
*/
|
||||
static hasImageForTag(uri: string, callback: (hasImage: boolean) => void) {
|
||||
if (NativeImageStore.hasImageForTag) {
|
||||
NativeImageStore.hasImageForTag(uri, callback);
|
||||
} else {
|
||||
warnUnimplementedMethod('hasImageForTag');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an image from the ImageStore. Images are stored in memory and
|
||||
* must be manually removed when you are finished with them, otherwise they
|
||||
* will continue to use up RAM until the app is terminated. It is safe to
|
||||
* call `removeImageForTag()` without first calling `hasImageForTag()`, it
|
||||
* will simply fail silently.
|
||||
* @platform ios
|
||||
*/
|
||||
static removeImageForTag(uri: string) {
|
||||
if (NativeImageStore.removeImageForTag) {
|
||||
NativeImageStore.removeImageForTag(uri);
|
||||
} else {
|
||||
warnUnimplementedMethod('removeImageForTag');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores a base64-encoded image in the ImageStore, and returns a URI that
|
||||
* can be used to access or display the image later. Images are stored in
|
||||
* memory only, and must be manually deleted when you are finished with
|
||||
* them by calling `removeImageForTag()`.
|
||||
*
|
||||
* Note that it is very inefficient to transfer large quantities of binary
|
||||
* data between JS and native code, so you should avoid calling this more
|
||||
* than necessary.
|
||||
* @platform ios
|
||||
*/
|
||||
static addImageFromBase64(
|
||||
base64ImageData: string,
|
||||
success: (uri: string) => void,
|
||||
failure: (error: any) => void,
|
||||
) {
|
||||
if (NativeImageStore.addImageFromBase64) {
|
||||
NativeImageStore.addImageFromBase64(base64ImageData, success, failure);
|
||||
} else {
|
||||
warnUnimplementedMethod('addImageFromBase64');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the base64-encoded data for an image in the ImageStore. If the
|
||||
* specified URI does not match an image in the store, the failure callback
|
||||
* will be called.
|
||||
*
|
||||
* Note that it is very inefficient to transfer large quantities of binary
|
||||
* data between JS and native code, so you should avoid calling this more
|
||||
* than necessary. To display an image in the ImageStore, you can just pass
|
||||
* the URI to an `<Image/>` component; there is no need to retrieve the
|
||||
* base64 data.
|
||||
*/
|
||||
static getBase64ForTag(
|
||||
uri: string,
|
||||
success: (base64ImageData: string) => void,
|
||||
failure: (error: any) => void,
|
||||
) {
|
||||
if (NativeImageStore.getBase64ForTag) {
|
||||
NativeImageStore.getBase64ForTag(uri, success, failure);
|
||||
} else {
|
||||
warnUnimplementedMethod('getBase64ForTag');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ImageStore;
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import type {TurboModule} from '../TurboModule/RCTExport';
|
||||
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
// Common
|
||||
+getBase64ForTag: (
|
||||
uri: string,
|
||||
success: (base64ImageData: string) => void,
|
||||
failure: (error: Object) => void,
|
||||
) => void;
|
||||
|
||||
// iOS-only
|
||||
+hasImageForTag: (uri: string, callback: (hasImage: boolean) => void) => void;
|
||||
+removeImageForTag: (uri: string) => void;
|
||||
+addImageFromBase64: (
|
||||
base64ImageData: string,
|
||||
success: (uri: string) => void,
|
||||
failure: (error: Object) => void,
|
||||
) => void;
|
||||
}
|
||||
|
||||
export default TurboModuleRegistry.getEnforcing<Spec>('ImageStoreManager');
|
||||
+14
-10
@@ -61,16 +61,6 @@ module.exports = {
|
||||
);
|
||||
return require('../Image/ImageEditor');
|
||||
},
|
||||
get ImageStore() {
|
||||
warnOnce(
|
||||
'imagestore-deprecation',
|
||||
'ImageStore is deprecated and will be removed in a future release. ' +
|
||||
'To get a base64-encoded string from a local image use either of the following third-party libraries:' +
|
||||
"* expo-file-system: `readAsStringAsync(filepath, 'base64')`" +
|
||||
"* react-native-fs: `readFile(filepath, 'base64')`",
|
||||
);
|
||||
return require('../Image/ImageStore');
|
||||
},
|
||||
get InputAccessoryView() {
|
||||
return require('../Components/TextInput/InputAccessoryView');
|
||||
},
|
||||
@@ -413,4 +403,18 @@ if (__DEV__) {
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
// $FlowFixMe This is intentional: Flow will error when attempting to access ImageStore.
|
||||
Object.defineProperty(module.exports, 'ImageStore', {
|
||||
configurable: true,
|
||||
get() {
|
||||
invariant(
|
||||
false,
|
||||
'ImageStore has been removed from React Native. ' +
|
||||
'To get a base64-encoded string from a local image use either of the following third-party libraries:' +
|
||||
"* expo-file-system: `readAsStringAsync(filepath, 'base64')`" +
|
||||
"* react-native-fs: `readFile(filepath, 'base64')`",
|
||||
);
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user