Socket
Book a DemoInstallSign in
Socket

@magiclab/react-native-gallery-manager

Package Overview
Dependencies
Maintainers
3
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@magiclab/react-native-gallery-manager

List Gallery content from React-Native

latest
Source
npmnpm
Version
1.0.12
Version published
Maintainers
3
Created
Source

This version is customised to support iCloud library and Calabash support for automation.

Installation

npm install --save react-native-gallery-manager

or

yarn add react-native-gallery-manager

and then

react-native link

NOTE: If you are using CameraRoll from react-native, you have to unlink it before using this library

Issues

  • If the image is not being shown in Android try the following
    • increase fresco memory
    • resizeMethod='resize' to the Image component
    • removeClippedSubviews={true} to ScrollView (FlatList, SectionList)
    • android:largeHeap="true" to the android manifest.xml in the application section (I dont recommend that but, you got to do, what you got to do....)

#10569 #13600 #10470

Usage

import GalleryManager from 'react-native-gallery-manager';

Methods and Responses

Get Assets

GalleryManager.getAssets({
    type: 'all',
    startFrom: 0,
}).then((response) => {

}).catch((err) => {
    // no rejects are defined currently on iOS
})
PropsTypeDefaultNotes
typeString'all'Type of the asset returned, can be 'image', 'video', 'all'
limitNumber10how many asset to return in one call
startFromNumber0From which index to start
albumNameStringSet the name of the album from which you want assets (Optional)
Response
{
   assets:[
      {
         type:'image',
         uri:'file:///storage/emulated/0/Download/ylo6z7D.jpg',
         id:38,
         filename:'ylo6z7D.jpg',
         width:3456,
         height:1944,
         creationDate:'1517064428',
         duration:0,
         mimeType:'image/jpeg'
      },
      ...
   ],
   totalAssets:7,
   next:7,
   hasMore:false
}

Get Albums

GalleryManager.getAlbums().then((response) => {

}).catch((err) => {
    // no rejects are defined currently on iOS
})
Response
{
    albums:
        [
            {
            	assetCount: 616, title: 'WhatsApp'
            },
            {
            	assetCount: 6, title: 'Instagram'
            },
            {
            	assetCount: 1, title: 'Twitter'
            },
            ...
        ],
    totalAlbums: 24
}

Check Permission

GalleryManager.requestAuthorization(title, message).then((response) => {
    // response.isAuthorized = true || false
}).catch((err) => {

})
PropsTypeDefaultNotes
titleString(Android) title of the dialog
messageString(Android) message in the dialog

Convert Video (iOS only)

GalleryManager.convertVideo({
	id: '98F14DF6-3BF9-4D1B-A6E0-0A36A25AE377/L0/001',
	convertTo: 'm4v',
	quality: 'low'
}).then((response) => {
	console.log(response);
}).catch((err) => {
   console.log(err)
});
PropsTypeDefaultNotes
idStringThe id of the video asset
convertToStringCan be mpeg4, m4v or mov
qualityStringoriginalCan be original, high, medium, low
Response
{
  mimeType: 'video/x-m4v',
  path: 'file:///Users/pentarex/Library/Developer/CoreSimulator/Devices/81873DB4-A220-4F60-88B8-87521BB231E6/data/Containers/Data/Application/91EE6566-4D04-4E33-9608-EDB06DA6C6D2/Documents/8DAEDFBC-9E16-442D-A98F-E145F429DA0B.m4v',
  filename: '8DAEDFBC-9E16-442D-A98F-E145F429DA0B.m4v',
  type: 'video',
  duration: 19.185833333333335
}

The reason the library is returning the path of the file in this format is that the video can be send later to server with fetch library. If the url starts with assets-library:// not with file:// react-native will not send it.

Roadmap

Suggestions and forks are welcome

Keywords

photos

FAQs

Package last updated on 05 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts