Arga_Fauzianto

get item react native

Oct 19th, 2023
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | Source Code | 0 0
  1. import { FlatList, StyleSheet, Text, View } from 'react-native'
  2. import React, { useState, useEffect, useMemo } from 'react'
  3. import { AccordionItem, Header } from '../../components'
  4. import { colors, fonts, getData } from '../../utils'
  5. import { IcNotFound } from '../../assets'
  6. import axios from 'axios'
  7. import base64 from 'react-native-base64';
  8. import { Dropdown } from 'react-native-element-dropdown'
  9. import { API_HOST } from '../../config'
  10.  
  11. import { useIsFocused } from '@react-navigation/native'
  12.  
  13.  
  14. const DetailHistorySps = () => {
  15.  
  16. const [kodeDepo , setKodeDepo] = useState('')
  17. const [userProfile, setUserProfile] = useState({})
  18. const [historyData, setHistoryData] = useState([])
  19. const [depoData, setDepoData] = useState([]);
  20. const [dataDepo, setDataDepo] = useState(null);
  21. const [isFocus, setIsFocus] = useState(false)
  22. const [selectedDepo, setSelectedDepo] = useState(null)
  23.  
  24.  
  25.  
  26. // useEffect(() => {
  27. // if(userProfile) {
  28. // getData('userProfile').then(res => {
  29. // setUserProfile(res);
  30. // })
  31. // }
  32. // getHistory();
  33. // getDepo();
  34. // }, [])
  35.  
  36. // useEffect(() => {
  37. // getHistory();
  38. // }, [historyData])
  39.  
  40. const getDepo = () => {
  41. let username = 'admin'
  42. let adminPassword = 'Databa53'
  43. const authHeader = 'Basic ' + base64.encode(`${username}:${adminPassword}`);
  44. axios.get(`${API_HOST.url_staging}/depo`, {
  45. headers: {
  46. Authorization: authHeader
  47. }
  48. })
  49. .then(res => {
  50. // console.log('data line :', res.data);
  51. let count = Object.keys(res.data).length;
  52. let depoArray = []
  53. for (let i = 0; i < count; i++) {
  54. depoArray.push({
  55. id: res.data[i].kode_depo,
  56. label: res.data[i].depo,
  57. // total: res.data[i].qty
  58. })
  59. }
  60. console.log('kode :', kodeDepo);
  61. setDepoData(depoArray)
  62. // handleSkuChange(skuArray[0])
  63. setKodeDepo(res.data[0].kode_depo);
  64. }).catch(err => {
  65. console.log('gagal', err);
  66. })
  67. } // mengambil data listing depo
  68.  
  69. const getHistory = () => {
  70. // mengambil get data flatlist yg akan di render
  71.  
  72. let username = 'admin';
  73. let adminPassword = 'Databa53';
  74. const authHeader = 'Basic ' + base64.encode(`${username}:${adminPassword}`);
  75.  
  76. // let selectedKodeDepo = userProfile.lokasi_id === '001' ? kodeDepo : userProfile.lokasi_id;
  77.  
  78. // let selectedKodeDepo = userProfile.lokasi_id === '001' ? (selectedDepo || kodeDepo) : userProfile.lokasi_id;
  79.  
  80. // let selectedKodeDepo = selectedDepo ? selectedDepo : userProfile.lokasi_id === '001' ? kodeDepo : userProfile.lokasi_id;
  81.  
  82. let selectedKodeDepo = selectedDepo || (userProfile.lokasi_id === '001' ? kodeDepo : userProfile.lokasi_id);
  83.  
  84.  
  85.  
  86. // if (selectedKodeDepo && selectedKodeDepo !== '001') {
  87. // selectedKodeDepo = kodeDepo;
  88. // }
  89.  
  90. const today = new Date().toISOString().slice(0, 10);
  91.  
  92. axios.get('https://modust.tvip.co.id/rest_api_appopname_wop/stock_sps/data_history/', {
  93. headers: {
  94. Authorization: authHeader,
  95. 'Content-Type': 'application/json',
  96. },
  97. params: {
  98. type_stock: userProfile.type_user,
  99. id_depo: selectedKodeDepo,
  100. tanggal: today,
  101. },
  102. }).then(res => {
  103. setHistoryData(res.data.data)
  104. console.log('success: ', res.data.data)
  105.  
  106. })
  107. .catch(err => {
  108. console.log('err: ', err)
  109. setHistoryData([])
  110. })
  111. }
  112.  
  113. const isFocused = useIsFocused();
  114.  
  115. useEffect(() => {
  116. getData('userProfile').then(res => {
  117. // console.log('profile', res);
  118. setUserProfile(res);
  119. })
  120. getHistory();
  121. getDepo();
  122. }, [isFocused])
  123.  
  124. const isPusat = userProfile.lokasi_id === '001';
  125.  
  126. return (
  127. <>
  128. <Header title="Detail History SPS" type='default' />
  129. <View style={{ flex: 1, top: 10, paddingHorizontal: 12, backgroundColor: "#FFFFFF" }}>
  130. {isPusat && (
  131. <>
  132. <Dropdown
  133. style={styles.dropdownCover}
  134. placeholderStyle={styles.placeholderStyle}
  135. selectedTextStyle={styles.selectedTextStyle}
  136. inputSearchStyle={styles.inputSearchStyle}
  137. search
  138. labelField='label'
  139. valueField='value'
  140. data={depoData}
  141. maxHeight={300}
  142. value={dataDepo}
  143. placeholder={!isFocus ? 'Pilih Depo' : '....'}
  144. searchPlaceholder='Search...'
  145. onChange={item => {
  146. setKodeDepo(item.id);
  147. setSelectedDepo(item.id);
  148. // setDataDepo(item.id)
  149. }}
  150.  
  151. itemTextStyle={{ color: colors.secondary, fontSize: 13, fontFamily: fonts.primary[200] }}
  152. />
  153.  
  154. <View>
  155. <FlatList
  156. data={historyData}
  157. keyExtractor={(item) => item.id_line}
  158. renderItem={({ item }) =>
  159. <AccordionItem
  160. id_line={item.id_line}
  161. title={item.id_line}
  162. qty_pallet={item.titik_pallet}
  163. total={item.total_stock}
  164. />}
  165. />
  166. </View>
  167.  
  168. </>
  169. )}
  170. {historyData && historyData.length > 0 ? (
  171. <FlatList
  172. data={historyData}
  173. keyExtractor={(item) => item.id_line}
  174. renderItem={({ item }) =>
  175. <AccordionItem
  176. id_line={item.id_line}
  177. title={item.id_line}
  178. qty_pallet={item.titik_pallet}
  179. total={item.total_stock}
  180. />}
  181. />
  182. ) : (
  183. <View style={{ paddingVertical: 10, justifyContent: 'center', alignItems: 'center', flex: 1 }}>
  184. <IcNotFound />
  185. <Text style={{ top: 30, fontSize: 23, fontFamily: fonts.primary[300], color: '#020202' }}>
  186. Oops Belum Tersedia Inputan Hari Ini!
  187. </Text>
  188. </View>
  189. )}
  190. </View>
  191. </>
  192. )
  193. }
  194.  
  195.  
  196. export default DetailHistorySps;
  197.  
  198. const styles = StyleSheet.create({
  199. dropdownCover: {
  200. height: 50,
  201. backgroundColor: "#FFFFFF",
  202. borderRadius: 8,
  203. padding: 12,
  204. shadowColor: '#000',
  205. shadowOffset: {
  206. width: 0,
  207. height: 1,
  208. },
  209. borderWidth: 0.4,
  210. shadowOpacity: 0.2,
  211. shadowRadius: 1.41,
  212. elevation: 2,
  213. },
  214.  
  215. selectedTextStyle: {
  216. fontSize: 16,
  217. color: 'blue',
  218. },
  219.  
  220. inputSearchStyle: {
  221. height: 50,
  222. fontSize: 15,
  223. fontFamily: fonts.primary[200],
  224. color: colors.secondary,
  225. borderColor: colors.secondary,
  226. borderRadius: 4,
  227. },
  228.  
  229. selectedTextStyle: {
  230. fontFamily: fonts.primary[200],
  231. fontSize: 14,
  232. color: colors.primary
  233. }
  234. })
Add Comment
Please, Sign In to add comment