forked from Ivasoft/mattermost-mobile
Do not preload images with FastImage (#4315)
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
This commit is contained in:
@@ -7,7 +7,6 @@ import {
|
|||||||
View,
|
View,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import FastImage from 'react-native-fast-image';
|
|
||||||
|
|
||||||
import brokenImageIcon from '@assets/images/icons/brokenimage.png';
|
import brokenImageIcon from '@assets/images/icons/brokenimage.png';
|
||||||
import ProgressiveImage from '@components/progressive_image';
|
import ProgressiveImage from '@components/progressive_image';
|
||||||
@@ -49,29 +48,9 @@ export default class FileAttachmentImage extends PureComponent {
|
|||||||
resizeMethod: 'resize',
|
resizeMethod: 'resize',
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor(props) {
|
state = {
|
||||||
super(props);
|
failed: false,
|
||||||
|
};
|
||||||
const {file} = props;
|
|
||||||
if (file && file.id && !file.localPath) {
|
|
||||||
const headers = Client4.getOptions({}).headers;
|
|
||||||
|
|
||||||
const preloadImages = [
|
|
||||||
{uri: Client4.getFileThumbnailUrl(file.id), headers},
|
|
||||||
{uri: Client4.getFileUrl(file.id), headers},
|
|
||||||
];
|
|
||||||
|
|
||||||
if (isGif(file)) {
|
|
||||||
preloadImages.push({uri: Client4.getFilePreviewUrl(file.id), headers});
|
|
||||||
}
|
|
||||||
|
|
||||||
FastImage.preload(preloadImages);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.state = {
|
|
||||||
failed: false,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
boxPlaceholder = () => {
|
boxPlaceholder = () => {
|
||||||
if (this.props.isSingleImage) {
|
if (this.props.isSingleImage) {
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ export default class MarkdownImage extends ImageViewPort {
|
|||||||
uri = EphemeralStore.currentServerUrl + uri;
|
uri = EphemeralStore.currentServerUrl + uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
FastImage.preload([{uri}]);
|
|
||||||
return uri;
|
return uri;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,14 +16,6 @@ export default class AttachmentAuthor extends PureComponent {
|
|||||||
theme: PropTypes.object.isRequired,
|
theme: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor(props) {
|
|
||||||
super(props);
|
|
||||||
|
|
||||||
if (props.icon) {
|
|
||||||
FastImage.preload([{uri: props.icon}]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
openLink = () => {
|
openLink = () => {
|
||||||
const {link} = this.props;
|
const {link} = this.props;
|
||||||
if (link && Linking.canOpenURL(link)) {
|
if (link && Linking.canOpenURL(link)) {
|
||||||
|
|||||||
@@ -17,14 +17,6 @@ export default class AttachmentFooter extends PureComponent {
|
|||||||
theme: PropTypes.object.isRequired,
|
theme: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor(props) {
|
|
||||||
super(props);
|
|
||||||
|
|
||||||
if (props.icon) {
|
|
||||||
FastImage.preload([{uri: props.icon}]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
text,
|
text,
|
||||||
|
|||||||
@@ -110,8 +110,6 @@ export default class PostAttachmentOpenGraph extends PureComponent {
|
|||||||
dimensions = calculateDimensions(ogImage.height, ogImage.width, this.getViewPostWidth());
|
dimensions = calculateDimensions(ogImage.height, ogImage.width, this.getViewPostWidth());
|
||||||
}
|
}
|
||||||
|
|
||||||
FastImage.preload([{uri: imageUrl}]);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
hasImage: true,
|
hasImage: true,
|
||||||
...dimensions,
|
...dimensions,
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ export default class ProfilePicture extends PureComponent {
|
|||||||
this.setImageURL(imageUri);
|
this.setImageURL(imageUri);
|
||||||
} else if (user) {
|
} else if (user) {
|
||||||
const uri = Client4.getProfilePictureUrl(user.id, user.last_picture_update);
|
const uri = Client4.getProfilePictureUrl(user.id, user.last_picture_update);
|
||||||
FastImage.preload([{uri, headers: Client4.getOptions({}).headers}]);
|
|
||||||
|
|
||||||
this.setImageURL(uri);
|
this.setImageURL(uri);
|
||||||
this.clearProfileImageUri();
|
this.clearProfileImageUri();
|
||||||
@@ -102,7 +101,6 @@ export default class ProfilePicture extends PureComponent {
|
|||||||
|
|
||||||
if (nextUrl && url !== nextUrl) {
|
if (nextUrl && url !== nextUrl) {
|
||||||
// empty function is so that promise unhandled is not triggered in dev mode
|
// empty function is so that promise unhandled is not triggered in dev mode
|
||||||
FastImage.preload([{uri: nextUrl, headers: Client4.getOptions({}).headers}]);
|
|
||||||
this.setImageURL(nextUrl);
|
this.setImageURL(nextUrl);
|
||||||
this.clearProfileImageUri();
|
this.clearProfileImageUri();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ import Preferences from '@mm-redux/constants/preferences';
|
|||||||
|
|
||||||
import ProgressiveImage from './progressive_image';
|
import ProgressiveImage from './progressive_image';
|
||||||
|
|
||||||
jest.mock('react-native-fast-image', () => ({
|
|
||||||
preload: jest.fn(),
|
|
||||||
}));
|
|
||||||
|
|
||||||
jest.useFakeTimers();
|
jest.useFakeTimers();
|
||||||
|
|
||||||
describe('ProgressiveImage', () => {
|
describe('ProgressiveImage', () => {
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ export default class TeamIcon extends React.PureComponent {
|
|||||||
|
|
||||||
preloadTeamIcon = (teamId, lastIconUpdate) => {
|
preloadTeamIcon = (teamId, lastIconUpdate) => {
|
||||||
const uri = Client4.getTeamIconUrl(teamId, lastIconUpdate);
|
const uri = Client4.getTeamIconUrl(teamId, lastIconUpdate);
|
||||||
FastImage.preload([{uri, headers: Client4.getOptions({}).headers}]);
|
|
||||||
this.setImageURL(uri);
|
this.setImageURL(uri);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -119,13 +119,6 @@ jest.mock('react-native-device-info', () => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
jest.mock('react-native-fast-image', () => {
|
|
||||||
const FastImage = jest.requireActual('react-native-fast-image').default;
|
|
||||||
FastImage.preload = jest.fn();
|
|
||||||
|
|
||||||
return FastImage;
|
|
||||||
});
|
|
||||||
|
|
||||||
jest.mock('rn-fetch-blob', () => ({
|
jest.mock('rn-fetch-blob', () => ({
|
||||||
fs: {
|
fs: {
|
||||||
dirs: {
|
dirs: {
|
||||||
|
|||||||
Reference in New Issue
Block a user