Commit 21c728a3 authored by Nguyen Danh Khanh's avatar Nguyen Danh Khanh

Merge branch 'khanhHome/fixUI' into 'master'

fix UI Inventory

See merge request !2
parents 4ab396ac b54ee956
import axios from 'axios' import axios from 'axios'
import { useSelector } from 'react-redux'
import config from '../configs' import config from '../configs'
import { store } from '../redux/store' import { store } from '../redux/store'
export function* getListProducts() { export function getListProducts() {
const token = store.getState().auth.token
const body = { const body = {
"drug_barcode": "", "drug_barcode": "",
"drug_name": "", "drug_name": "",
...@@ -14,7 +16,7 @@ export function* getListProducts() { ...@@ -14,7 +16,7 @@ export function* getListProducts() {
} }
const header = { const header = {
headers: { headers: {
'Authorization': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIzNjQ5LTAiLCJpYXQiOjE2MjUzOTI5MzIsImV4cCI6MTYyNTQ3OTMzMn0.l_z2ABgvD51hDJmI-mOGM9gOpBTlhyp3UPUNDTbsdWAcZ0KTzeLmJXhV81HdH2S3_mtmM_bGlHCnPi_wHueBkw' 'Authorization': token
} }
} }
const baseURL = config.axiosConfig().baseURL const baseURL = config.axiosConfig().baseURL
......
...@@ -3,24 +3,26 @@ import { StyleSheet } from "react-native"; ...@@ -3,24 +3,26 @@ import { StyleSheet } from "react-native";
const styles = StyleSheet.create({ const styles = StyleSheet.create({
inputLogin: { container: {
flexDirection: "row", flexDirection: 'row',
height: 40, padding: 10,
alignItems: "center",
borderBottomColor: '#FFFFFF',
borderBottomWidth: 0.5,
}, },
inputText: { image: {
paddingLeft: 5, width: 60,
paddingBottom: 8, height: 60,
width: '100%',
}, },
validateText: { infoContainer: {
color: 'red', marginLeft: 10,
fontSize: 11, justifyContent: 'space-between',
marginLeft: 0, padding: 5,
alignItems: "center",
}, },
textName: {
fontSize: 16,
fontWeight: 'bold'
},
textInfo: {
fontSize: 16,
}
}); });
export default styles; export default styles;
\ No newline at end of file
...@@ -4,21 +4,24 @@ import { View, Text, Image, TextInput } from 'react-native'; ...@@ -4,21 +4,24 @@ import { View, Text, Image, TextInput } from 'react-native';
import styles from './index.style' import styles from './index.style'
type Props = { type Props = {
drg_drug_cd: string, drg_drug_name: string, lot: string, quantity: number, exp_date:string image_url: string
drg_drug_cd: string, drg_drug_name: string, lot: string, quantity: number, exp_date: string
} }
const ItemProduct = (props: Props) => { const ItemProduct = (props: Props) => {
return ( return (
<View style={styles.container}>
<View> <Image style={styles.image} source={{ uri: props.image_url }} />
<Text> <View style={styles.infoContainer}>
<Text style={styles.textName}>
{`${props.drg_drug_cd} - ${props.drg_drug_name}`} {`${props.drg_drug_cd} - ${props.drg_drug_name}`}
</Text> </Text>
<Text> <Text style={styles.textInfo}>
{`Lô: ${props.lot} - Số lượng: ${props.quantity} - HSD: ${props.exp_date}`} {`Lô: ${props.lot} - Số lượng: ${props.quantity} - HSD: ${props.exp_date}`}
</Text> </Text>
</View> </View>
); </View>
)
}; };
......
...@@ -5,16 +5,21 @@ import auth, { InitStateAuth } from "./auth" ...@@ -5,16 +5,21 @@ import auth, { InitStateAuth } from "./auth"
import invoice, { InitStateInvoice } from './invoice' import invoice, { InitStateInvoice } from './invoice'
import cart from './cart' import cart from './cart'
import { Cart } from "../../model/cart"; import { Cart } from "../../model/cart";
import { Product } from "../../model/invoice";
import product, { InitStateProduct } from "./product";
export type RootState = { export type RootState = {
auth: InitStateAuth, auth: InitStateAuth,
invoice: InitStateInvoice, invoice: InitStateInvoice,
cart: Cart,
product: InitStateProduct,
} }
const rootReducer = combineReducers({ const rootReducer = combineReducers({
auth, auth,
invoice, invoice,
cart, cart,
product,
}); });
export default rootReducer; export default rootReducer;
\ No newline at end of file
...@@ -5,7 +5,7 @@ import Types from '../types' ...@@ -5,7 +5,7 @@ import Types from '../types'
type InitStateProduct = { export type InitStateProduct = {
page: number, page: number,
size: number, size: number,
...@@ -55,7 +55,7 @@ const defaultData = { ...@@ -55,7 +55,7 @@ const defaultData = {
updated_user: '', updated_user: '',
vat_percent: 0, vat_percent: 0,
unit: [defaultUnit] unit: []
} }
...@@ -65,7 +65,7 @@ const initState: InitStateProduct = { ...@@ -65,7 +65,7 @@ const initState: InitStateProduct = {
total_elements: 0, total_elements: 0,
total_pages: 1, total_pages: 1,
last: true, last: true,
data: [defaultData] data: []
} }
function invoiceReducer(state: InitStateProduct = initState, action: AnyAction) { function invoiceReducer(state: InitStateProduct = initState, action: AnyAction) {
......
...@@ -19,11 +19,12 @@ import ItemProduct from '../../components/ItemProduct'; ...@@ -19,11 +19,12 @@ import ItemProduct from '../../components/ItemProduct';
import { addProductToCart } from '../../redux/actions/cart'; import { addProductToCart } from '../../redux/actions/cart';
import { Cart, Product } from "../../model/cart"; import { Cart, Product } from "../../model/cart";
import { Data } from '../../model/product'; import { Data } from '../../model/product';
import { RootState } from '../../redux/reducers';
const App = () => { const App = () => {
//data product------------------------------------------------------- //data product-------------------------------------------------------
const products = useSelector(state => state.product.data) const products = useSelector((state: RootState) => state.product.data)
console.log('Product: ', products) console.log('Product: ', products)
//------------------------------------------------------------------- //-------------------------------------------------------------------
const _renderHeaderLeft = () => { const _renderHeaderLeft = () => {
...@@ -51,12 +52,24 @@ const App = () => { ...@@ -51,12 +52,24 @@ const App = () => {
/> />
) )
const ItemSeparatorView = () => {
return (
// Flat List Item Separator ______________________________________________
<View
style={{
height: 1,
width: '100%',
backgroundColor: '#C8C8C8',
}}
/>
);
};
const _renderListProduct = (product: Data) => { const _renderListProduct = (product: Data) => {
const product1 = product const product1 = product
return ( return (
<TouchableOpacity onPress={() => { addToCart(product) }}> <TouchableOpacity onPress={() => { addToCart(product) }}>
<ItemProduct <ItemProduct
image_url={product.image_url}
drg_drug_cd={product.drg_drug_cd} drg_drug_cd={product.drg_drug_cd}
drg_drug_name={product.drg_drug_name} drg_drug_name={product.drg_drug_name}
lot={product.lot} lot={product.lot}
...@@ -113,9 +126,11 @@ const App = () => { ...@@ -113,9 +126,11 @@ const App = () => {
<View > <View >
<FlatList <FlatList
data={products} data={products}
ItemSeparatorComponent={ItemSeparatorView}
renderItem={({ item }) => _renderListProduct(item)} renderItem={({ item }) => _renderListProduct(item)}
// keyExtractor={({ item }) => item.drug_id}
/> />
{_renderButtonSubmit()} {/* {_renderButtonSubmit()} */}
</View> </View>
</SafeAreaView> </SafeAreaView>
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment