Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
renderAsset(asset: MediaLibrary.Asset) {
const aspectRatio = asset.height ? asset.width / asset.height : 1;
switch (asset.mediaType) {
case MediaLibrary.MediaType.photo:
case MediaLibrary.MediaType.video: // TODO: render Expo.Video component
return (
<img style="{[styles.image,">
);
default:
return null;
}
}
import { connect } from 'react-redux';
import ProfileActions from '../../redux/ProfileActions';
import Store from '../../redux/Store';
import MediaLibraryCell from './MediaLibraryCell';
const RNButton = Button;
const COLUMNS = 3;
const PAGE_SIZE = COLUMNS * 10;
const WINDOW_SIZE = Dimensions.get('window');
const mediaTypeStates: { [key in MediaLibrary.MediaTypeValue]: MediaLibrary.MediaTypeValue } = {
[MediaLibrary.MediaType.unknown]: MediaLibrary.MediaType.photo,
[MediaLibrary.MediaType.photo]: MediaLibrary.MediaType.video,
[MediaLibrary.MediaType.video]: MediaLibrary.MediaType.audio,
[MediaLibrary.MediaType.audio]: MediaLibrary.MediaType.unknown,
};
const sortByStates: { [key in MediaLibrary.SortByKey]: MediaLibrary.SortByKey } = {
[MediaLibrary.SortBy.default]: MediaLibrary.SortBy.creationTime,
[MediaLibrary.SortBy.creationTime]: MediaLibrary.SortBy.modificationTime,
[MediaLibrary.SortBy.modificationTime]: MediaLibrary.SortBy.mediaType,
[MediaLibrary.SortBy.mediaType]: MediaLibrary.SortBy.width,
[MediaLibrary.SortBy.width]: MediaLibrary.SortBy.height,
[MediaLibrary.SortBy.height]: MediaLibrary.SortBy.duration,
[MediaLibrary.SortBy.duration]: MediaLibrary.SortBy.default,
};
interface State {
assets: MediaLibrary.Asset[];
endCursor?: string;
} from 'react-native';
import { NavigationEvents, NavigationScreenConfig, NavigationScreenProps } from 'react-navigation';
import { connect } from 'react-redux';
import ProfileActions from '../../redux/ProfileActions';
import Store from '../../redux/Store';
import MediaLibraryCell from './MediaLibraryCell';
const RNButton = Button;
const COLUMNS = 3;
const PAGE_SIZE = COLUMNS * 10;
const WINDOW_SIZE = Dimensions.get('window');
const mediaTypeStates: { [key in MediaLibrary.MediaTypeValue]: MediaLibrary.MediaTypeValue } = {
[MediaLibrary.MediaType.unknown]: MediaLibrary.MediaType.photo,
[MediaLibrary.MediaType.photo]: MediaLibrary.MediaType.video,
[MediaLibrary.MediaType.video]: MediaLibrary.MediaType.audio,
[MediaLibrary.MediaType.audio]: MediaLibrary.MediaType.unknown,
};
const sortByStates: { [key in MediaLibrary.SortByKey]: MediaLibrary.SortByKey } = {
[MediaLibrary.SortBy.default]: MediaLibrary.SortBy.creationTime,
[MediaLibrary.SortBy.creationTime]: MediaLibrary.SortBy.modificationTime,
[MediaLibrary.SortBy.modificationTime]: MediaLibrary.SortBy.mediaType,
[MediaLibrary.SortBy.mediaType]: MediaLibrary.SortBy.width,
[MediaLibrary.SortBy.width]: MediaLibrary.SortBy.height,
[MediaLibrary.SortBy.height]: MediaLibrary.SortBy.duration,
[MediaLibrary.SortBy.duration]: MediaLibrary.SortBy.default,
};
interface State {
RefreshControl,
ListRenderItem,
} from 'react-native';
import { NavigationEvents, NavigationScreenProps, NavigationScreenConfig } from 'react-navigation';
import Colors from '../../constants/Colors';
import MediaLibraryCell from './MediaLibraryCell';
import Button from '../../components/Button';
import HeadingText from '../../components/HeadingText';
const COLUMNS = 3;
const PAGE_SIZE = COLUMNS * 10;
const WINDOW_SIZE = Dimensions.get('window');
const mediaTypeStates: { [key in MediaLibrary.MediaTypeValue]: MediaLibrary.MediaTypeValue } = {
[MediaLibrary.MediaType.unknown]: MediaLibrary.MediaType.photo,
[MediaLibrary.MediaType.photo]: MediaLibrary.MediaType.video,
[MediaLibrary.MediaType.video]: MediaLibrary.MediaType.audio,
[MediaLibrary.MediaType.audio]: MediaLibrary.MediaType.unknown,
};
const sortByStates: { [key in MediaLibrary.SortByKey]: MediaLibrary.SortByKey } = {
[MediaLibrary.SortBy.default]: MediaLibrary.SortBy.creationTime,
[MediaLibrary.SortBy.creationTime]: MediaLibrary.SortBy.modificationTime,
[MediaLibrary.SortBy.modificationTime]: MediaLibrary.SortBy.mediaType,
[MediaLibrary.SortBy.mediaType]: MediaLibrary.SortBy.width,
[MediaLibrary.SortBy.width]: MediaLibrary.SortBy.height,
[MediaLibrary.SortBy.height]: MediaLibrary.SortBy.duration,
[MediaLibrary.SortBy.duration]: MediaLibrary.SortBy.default,
};
interface State {
getAssetData(asset: MediaLibrary.Asset) {
switch (asset.mediaType) {
case MediaLibrary.MediaType.photo:
return {
icon: 'photo',
description: `${asset.width}x${asset.height}`,
preview: <img style="{styles.preview}">,
};
case MediaLibrary.MediaType.video:
return {
icon: 'video-camera',
description: `${Math.round(asset.duration)}s`,
preview: <img style="{styles.preview}">,
};
case MediaLibrary.MediaType.audio:
return {
icon: 'music',
description: `${Math.round(asset.duration)}s`,
preview: (
import { NavigationEvents, NavigationScreenProps, NavigationScreenConfig } from 'react-navigation';
import Colors from '../../constants/Colors';
import MediaLibraryCell from './MediaLibraryCell';
import Button from '../../components/Button';
import HeadingText from '../../components/HeadingText';
const COLUMNS = 3;
const PAGE_SIZE = COLUMNS * 10;
const WINDOW_SIZE = Dimensions.get('window');
const mediaTypeStates: { [key in MediaLibrary.MediaTypeValue]: MediaLibrary.MediaTypeValue } = {
[MediaLibrary.MediaType.unknown]: MediaLibrary.MediaType.photo,
[MediaLibrary.MediaType.photo]: MediaLibrary.MediaType.video,
[MediaLibrary.MediaType.video]: MediaLibrary.MediaType.audio,
[MediaLibrary.MediaType.audio]: MediaLibrary.MediaType.unknown,
};
const sortByStates: { [key in MediaLibrary.SortByKey]: MediaLibrary.SortByKey } = {
[MediaLibrary.SortBy.default]: MediaLibrary.SortBy.creationTime,
[MediaLibrary.SortBy.creationTime]: MediaLibrary.SortBy.modificationTime,
[MediaLibrary.SortBy.modificationTime]: MediaLibrary.SortBy.mediaType,
[MediaLibrary.SortBy.mediaType]: MediaLibrary.SortBy.width,
[MediaLibrary.SortBy.width]: MediaLibrary.SortBy.height,
[MediaLibrary.SortBy.height]: MediaLibrary.SortBy.duration,
[MediaLibrary.SortBy.duration]: MediaLibrary.SortBy.default,
};
interface State {
assets: MediaLibrary.Asset[];
endCursor?: string;
hasNextPage?: boolean;