UNPKG

react-native-vishesh-animated-loader

Version:

This is the lottie based react-native loader screen

67 lines (61 loc) 1.81 kB
import React,{Component,useState,useEffect} from "react" import {Modal,View,StyleSheet,TouchableOpacity,Text} from "react-native" import LottieView from "lottie-react-native"; const Loader = props=>{ const{visible,source,text,width,height,textStyle,loop,autoPlay,type} = props const[mainSource,setmainSource]= useState(source) useEffect(()=>{ console.log("inside here ", type) switch(type){ case 1:{ console.log("case 1") setmainSource(require("../pulse-loader.json")) break; } case 2:{ console.log("case 2") setmainSource(require("../loading1.json")) break; } case 3:{ console.log("case 3") setmainSource(require("../loading2.json")) break; } case 4:{ console.log("case 4") setmainSource(require("../loading3.json")) break; } case 5:{ console.log("case 5") setmainSource(require("../loading4.json")) break; } default:{ console.log("default") setmainSource(source) } } },[]) console.log("this is main source",mainSource) return( <Modal animationType="fade" transparent={true} visible={visible} presentationStyle="overFullScreen" > <View style={{flex:1,alignItems:"center",justifyContent:"center"}}> <LottieView style={{ width:width||50, height:height||100}} source={mainSource} loop={loop?loop:true} autoPlay={autoPlay?autoPlay:true} /> <Text style={textStyle}> {text}</Text> </View> </Modal> ) } export default Loader;