2.0.0 • Published 3 months ago

@meksiabdou/react-native-barcode-mask v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

@meksiabdou/react-native-barcode-mask

BarcodeMask Component For React-Native Camera

bundlephobia downloads npm license Known Vulnerabilities

Watch the video

Requirements

Installation

npm install @meksiabdou/react-native-barcode-mask
yarn add @meksiabdou/react-native-barcode-mask

Usage

import React, from 'react';
import {View, TouchableOpacity, StyleSheet, Linking, Text} from 'react-native';
import { Camera, useCameraDevices } from 'react-native-vision-camera';
import BarcodeMask from 'react-native-barcode-mask';

const App = () => {
  const [hasPermission, setHasPermission] = useState(false);
  const devices = useCameraDevices();
  const device = devices.back;

  const requestCameraPermission = async () => {
    return await Camera.requestCameraPermission();
  };

  useEffect((): ReturnType<any> => {
    let isMounted = true;
    requestCameraPermission().then(permission => {
      if (isMounted) {
        if (permission === 'denied') {
          Linking.openSettings();
        }
        setHasPermission(permission === 'authorized');
      }
    });
    return () => (isMounted = false);
  }, []);

  if (device == null || !hasPermission) {
    return <View style={styles.container} />;
  }

  return (
    <View style={styles.container}>
      <Camera
        device={device}
        style={StyleSheet.absoluteFill}
        isActive={true}
        torch={'off'}
      />
      <BarcodeMask
        lineAnimationDuration={2000}
        showAnimatedLine={true}
        width={width}
        height={height}
        outerMaskOpacity={0.4}
        backgroundColor="#eee"
        edgeColor={'#fff'}
        edgeBorderWidth={4}
        edgeHeight={25}
        edgeWidth={25}
        edgeRadius={5}
        animatedLineColor={'#0097AB'}
        animatedLineThickness={3}
        animatedLineOrientation="horizontal"
      />
    </View>
  );

}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'column',
    backgroundColor: '#000',
    //paddingVertical: 50,
  },
});

export default App;

BarcodeMaskProps

nametypedescriptiondefault
widthnumberWidth of the Barcode Finder Area280
heightnumberHeight of the Barcode Finder Area230
edgeWidthnumberWidth of corner edges20
edgeHeightnumberHeight of corner edges20
edgeColorstringColor of corner edges#fff
edgeRadiusnumberBorder Radius of corner edges0
edgeBorderWidthnumberThickness of corner edges4
backgroundColorstringBackground color of Outer Finder Area#eee
maskOpacitynumberOpacity of Outer Finder Area1
showAnimatedLinebooleanWhether to show Animated Linetrue
animatedLineThicknessnumberThickness of Animated Line2
animatedLineOrientation'vertical' or 'horizontal'Orientation that the Animated Line will be drawn'horizontal'
animatedLineColorstringColor of Animated Line#fff
animationDurationnumberDuration of Animated Line animation (in ms)20000
isActivebooleanAnimation line active or nottrue
onPressfunction#undefined

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

2.0.0

3 months ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

2 years ago

1.0.2

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago