prokuranepal/inventory_app

View on GitHub
src/screens/ReceivedItemScreen.js

Summary

Maintainability
A
3 hrs
Test Coverage
A
90%
import React, { useEffect, useState } from 'react';
import {
    View,
    FlatList,
    Text,
    Platform,
    ActivityIndicator,
    StyleSheet,
    Button
} from 'react-native';
import { useSelector, useDispatch } from 'react-redux';
import { HeaderButtons, Item } from 'react-navigation-header-buttons';
import moment from 'moment';
import HeaderButton from '../components/Component/HeaderButton';
import OrderItem from '../components/UI/OrderItem';
import * as itemsActions from '../store/actions/items';
import Colors from '../constants/Colors';
export const date = new Date();
export const idRan= Math.random();
const ReceivedItemScreen = props => {
    // const [isLoading, setIsLoading] = useState(false);
    const data = props.navigation.getParam('data');
    receiveditems = [
        Order = {
            date: moment(date).format('MMMM Do YYYY, hh:mm'),
            // id: "i" + Math.random(),
            items: [
                {
                    itemid: "i" + idRan,
                    itemPrice: 20,
                    quantity: 5,
                    itemTitle: data
                },
            ]
        }]


    // console.log(receiveditems)
    const dispatch = useDispatch();
    const sendAddToInventoryHandler = () => {
        dispatch(
            itemsActions.addItems(
                data,
                'BGuys',
                5,
                'Paracetamol (acetaminophen) is a pain reliever and a fever reducer',
                30,
                'General'

            )
        );
        alert(`Items has been added to inventory`);
        props.navigation.goBack();
    }


    const sendCancelHandler = () => {
        props.navigation.navigate('Scanner')
    };

    if (receiveditems.length === 0) {
        return (
            <View data-test="receivedComp" style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
                <Text>No received item  found.</Text>
            </View>
        );
    }

    return (
        <View style={styles.centered}>
            <Text style={styles.title}> Order Details</Text>
            <FlatList
                data={receiveditems}
                keyExtractor={(item => item.id)}
                data-test="flatListComp"
                renderItem={itemData => (
                    <OrderItem
                    data-test="orderItem"
                        // amount={itemData.item.totalAmount}
                        date={itemData.item.date}
                        items={itemData.item.items}
                    />
                )}
            />
            <View style={styles.buttonContainer}>
                {/* {isLoading ? (
                    <ActivityIndicator size="small" color={Colors.primary} />
                ) : ( */}
                <Button
                data-test="buttonComp"
                    color={Colors.accent}
                    title="ADD TO INVENTORY"
                    onPress={sendAddToInventoryHandler} />
                {/* )} */}
            </View>
            <View style={styles.buttonContainer}>
                <Button title="CANCEL" 
                data-test="buttonComp2"
                onPress={sendCancelHandler} />
            </View>
        </View>
    );
};

ReceivedItemScreen.navigationOptions = navData => {
    return {
        headerTitle: 'Your Received Orders',
        headerStyle: {
            backgroundColor: Platform.OS === 'android' ? Colors.primaryColor : ''
        },
        headerTitleStyle: {
            fontFamily: 'open-sans'
        },
        // headerLeft: () => (
        //     <HeaderButtons HeaderButtonComponent={HeaderButton}>
        //         <Item
        //             title="Menu"
        //             iconName={Platform.OS === 'android' ? 'md-menu' : 'ios-menu'}
        //             onPress={() => {
        //                 navData.navigation.toggleDrawer();
        //             }}
        //         />
        //     </HeaderButtons>
        // )
    };
};

const styles = StyleSheet.create({
    centered: {
        flex: 1,
        width: '100%'
    },
    buttonContainer: {
        justifyContent: 'center',
        alignItems: 'center',
        marginBottom: 20
    },
    detailItems: {
        width: '100%'
    },
    title: {
        fontSize: 20,
    },

});

export default ReceivedItemScreen;