Browse Source

Component

master
Irul24 1 year ago
parent
commit
7df273e2d1
  1. 87
      src/component/draftPDAM.tsx
  2. 91
      src/component/draftPJU.tsx
  3. 88
      src/component/draftPermit.tsx
  4. 2
      src/component/inboxPermit.tsx
  5. 4
      src/component/mapCollectScreen.tsx
  6. 85
      src/component/sentPDAM.tsx
  7. 89
      src/component/sentPJU.tsx
  8. 83
      src/component/sentPermit.tsx

87
src/component/draftPDAM.tsx

@ -196,6 +196,8 @@ function DraftPDAM({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPDAM(); getDataPDAM();
const unsubscribe = NetInfo.addEventListener((state) => { const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!) setConnected(state.isConnected!)
@ -213,10 +215,12 @@ function DraftPDAM({route,navigation}: sendListDataProps) {
// console.log(text); // console.log(text);
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter(data => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.pipe_name.toLowerCase().includes(formattedQuery)
) )
setFilterData(filteredData) setFilterData(filteredData)
// console.log(filteredData);
}; };
const reSend = async (data:any) => { const reSend = async (data:any) => {
@ -373,7 +377,7 @@ function DraftPDAM({route,navigation}: sendListDataProps) {
<RefreshControl refreshing={refreshing} onRefresh={onRefresh} /> <RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
}> }>
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -450,6 +454,83 @@ function DraftPDAM({route,navigation}: sendListDataProps) {
</View> </View>
)) ))
: :
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama Pipa</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Jenis</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Tanggal Installasi</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Status</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pipe_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pipe_type}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.installation_date}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.status}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('Resend Survey Pipa PDAM',{ screen: 'Resend Survey Pipa PDAM',data: {
nama:item.pipe_name,
jenis:item.pipe_type,
tanggal_installasi:item.installation_date,
status:item.status,
keterangan:item.keterangan,
geom:item.geom
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Open</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.pipe_name);
removeValue(item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / draftPDAM");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View>
<View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: '#E2E2E2',
borderBottomWidth: 2,
}}
/>
</View>
))
:
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>
</View> </View>

91
src/component/draftPJU.tsx

@ -199,6 +199,8 @@ function DraftPJU({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPJU(); getDataPJU();
const unsubscribe = NetInfo.addEventListener((state) => { const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!) setConnected(state.isConnected!)
@ -213,13 +215,14 @@ function DraftPJU({route,navigation}: sendListDataProps) {
}); });
const [stringFilter,setStingFilter] = useState('') const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => { const handleSearch = (text:string) => {
// console.log(text);
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter(data => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.pju_name.toLowerCase().includes(formattedQuery)
) )
setFilterData(filteredData) setFilterData(filteredData)
// console.log(filteredData);
}; };
const reSend = async (data:any) => { const reSend = async (data:any) => {
@ -376,7 +379,7 @@ function DraftPJU({route,navigation}: sendListDataProps) {
<RefreshControl refreshing={refreshing} onRefresh={onRefresh} /> <RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
}> }>
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -454,6 +457,84 @@ function DraftPJU({route,navigation}: sendListDataProps) {
</View> </View>
)) ))
: :
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama JPU</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Jenis</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Tanggal Installasi</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Status</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pju_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pju_type}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.installation_date}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.status}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('Resend Survey PJU',{ screen: 'Resend Survey PJU',data: {
nama:item.pju_name,
jenis:item.pju_type,
tanggal_installasi:item.installation_date,
status:item.status,
keterangan:item.keterangan,
long:item.long,
lat:item.lat
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Open</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.pju_name);
removeValue(item.pju_name+" / "+item.pju_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.long+" / "+item.lat+" / draftPJU");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View>
<View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: '#E2E2E2',
borderBottomWidth: 2,
}}
/>
</View>
))
:
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>
</View> </View>

88
src/component/draftPermit.tsx

@ -201,6 +201,8 @@ function DraftPermit({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPermit(); getDataPermit();
const unsubscribe = NetInfo.addEventListener((state) => { const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!) setConnected(state.isConnected!)
@ -215,13 +217,13 @@ function DraftPermit({route,navigation}: sendListDataProps) {
}); });
const [stringFilter,setStingFilter] = useState('') const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => { const handleSearch = (text:string) => {
// console.log(text);
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter(data => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.company_name.toLowerCase().includes(formattedQuery)
) );
setFilterData(filteredData) setFilterData(filteredData)
console.log(filteredData);
}; };
const reSend = async (data:any) => { const reSend = async (data:any) => {
@ -382,7 +384,7 @@ function DraftPermit({route,navigation}: sendListDataProps) {
} }
> >
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -455,6 +457,80 @@ function DraftPermit({route,navigation}: sendListDataProps) {
</View> </View>
)) ))
: :
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Company Name</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Permit Status</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Location</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.company_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.permit_status}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.location}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('Resend Survey Land Permit',{ screen: 'Resend Survey Land Permit',data: {
company_name:item.company_name,
permit_status:item.permit_status,
location:item.location,
geom:item.geom
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Open</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.company_name);
removeValue(item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / draftPermit");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View>
<View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: 'black',
borderBottomWidth: 1,
}}
/>
</View>
))
:
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>
</View> </View>

2
src/component/inboxPermit.tsx

@ -179,7 +179,7 @@ function InboxPermit({route,navigation}: inboxListDataProps) {
<View key={item.id}> <View key={item.id}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}> <View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama Pipa</Text> {/* <Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama Pipa</Text> */}
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Company Name</Text> <Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Company Name</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Permit Status</Text> <Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Permit Status</Text>
</View> </View>

4
src/component/mapCollectScreen.tsx

@ -249,7 +249,7 @@ function MapCollectScreen({route,navigation}:MapCollectProps):React.JSX.Element{
</Pressable> </Pressable>
</View> </View>
<View style={{alignItems:'flex-start',paddingLeft:30,paddingTop:20,paddingRight:30}}> <View style={{alignItems:'flex-start',paddingLeft:30,paddingTop:20,paddingRight:30}}>
<Text style={{fontSize:14,fontWeight:'semibold',marginBottom:10}}>Longitude</Text> <Text style={{fontSize:14,fontWeight:'semibold',marginBottom:10,color:'#A6A6A6'}}>Longitude</Text>
<TextInput <TextInput
inputMode="decimal" inputMode="decimal"
value={long.toString()} value={long.toString()}
@ -268,7 +268,7 @@ function MapCollectScreen({route,navigation}:MapCollectProps):React.JSX.Element{
placeholderTextColor={'grey'} placeholderTextColor={'grey'}
placeholder='Longitude' placeholder='Longitude'
/> />
<Text style={{fontSize:14,fontWeight:'semibold',marginBottom:10,marginTop:20}}>Latitude</Text> <Text style={{fontSize:14,fontWeight:'semibold',marginBottom:10,marginTop:20,color:'#A6A6A6'}}>Latitude</Text>
<TextInput <TextInput
inputMode="decimal" inputMode="decimal"
value={lat.toString()} value={lat.toString()}

85
src/component/sentPDAM.tsx

@ -84,6 +84,8 @@ function SentListPDAM({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPDAM() getDataPDAM()
// getData() // getData()
// .catch(console.error); // .catch(console.error);
@ -101,7 +103,7 @@ function SentListPDAM({route,navigation}: sendListDataProps) {
const handleSearch = (text:string) => { const handleSearch = (text:string) => {
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter((data:any) => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.pipe_name.toLowerCase().includes(formattedQuery)
) )
setFilterData(filteredData) setFilterData(filteredData)
@ -156,7 +158,7 @@ function SentListPDAM({route,navigation}: sendListDataProps) {
refreshControl={ <RefreshControl refreshing={refreshing}/> } refreshControl={ <RefreshControl refreshing={refreshing}/> }
> >
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -230,8 +232,85 @@ function SentListPDAM({route,navigation}: sendListDataProps) {
borderBottomWidth: 2, borderBottomWidth: 2,
}} }}
/> />
</View>
))
:
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama Pipa</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Jenis</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Tanggal Installasi</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Status</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pipe_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pipe_type}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.installation_date}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.status}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('PDAM Editing',{ screen: 'Edit',data: {
id:item.id,
nama:item.pipe_name,
jenis:item.pipe_type,
tanggal_installasi:item.installation_date,
status:item.status,
keterangan:item.keterangan,
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Edit</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.pipe_name);
removeValue(item.id+" / "+item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / sentPDAM");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View> </View>
)) <View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: '#E2E2E2',
borderBottomWidth: 2,
}}
/>
</View>
))
: :
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>

89
src/component/sentPJU.tsx

@ -78,6 +78,8 @@ function SentListPJU({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPJU() getDataPJU()
const unsubscribe = NetInfo.addEventListener((state) => { const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!) setConnected(state.isConnected!)
@ -95,13 +97,13 @@ function SentListPJU({route,navigation}: sendListDataProps) {
}); });
const [stringFilter,setStingFilter] = useState('') const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => { const handleSearch = (text:string) => {
console.log(text);
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter((data:any) => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.pju_name.toLowerCase().includes(formattedQuery)
) )
setFilterData(filteredData) setFilterData(filteredData)
// console.log(filteredData);
}; };
const MoreActionCard = ({show,data}:any) => { const MoreActionCard = ({show,data}:any) => {
@ -195,7 +197,7 @@ function SentListPJU({route,navigation}: sendListDataProps) {
refreshControl={ <RefreshControl refreshing={refreshing}/> } refreshControl={ <RefreshControl refreshing={refreshing}/> }
> >
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -274,6 +276,85 @@ function SentListPJU({route,navigation}: sendListDataProps) {
</View> </View>
)) ))
: :
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Nama JPU</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Jenis</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Tanggal Installasi</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Status</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pju_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.pju_type}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.installation_date}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.status}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('Edit',{ screen: 'Edit',data: {
id:item.id,
nama:item.pju_name,
jenis:item.pju_type,
tanggal_installasi:item.installation_date,
status:item.status,
keterangan:item.keterangan,
long:item.long,
lat:item.lat
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Edit</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.pju_name);
removeValue(item.id+" / "+item.pju_name+" / "+item.pju_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.long+" / "+item.lat+" / sentPJU");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View>
<View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: '#E2E2E2',
borderBottomWidth: 2,
}}
/>
</View>
))
:
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>
</View> </View>

83
src/component/sentPermit.tsx

@ -80,6 +80,8 @@ function SentListPermit({route,navigation}: sendListDataProps) {
const isFocused = useIsFocused(); const isFocused = useIsFocused();
useEffect(() => { useEffect(() => {
if(isFocused){ if(isFocused){
setFilterData([]);
setStingFilter("");
getDataPermit() getDataPermit()
const unsubscribe = NetInfo.addEventListener((state) => { const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!) setConnected(state.isConnected!)
@ -96,8 +98,8 @@ function SentListPermit({route,navigation}: sendListDataProps) {
const handleSearch = (text:string) => { const handleSearch = (text:string) => {
const formattedQuery = text.toLowerCase(); const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter((data:any) => const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery) data.company_name.toLowerCase().includes(formattedQuery)
) );
setFilterData(filteredData) setFilterData(filteredData)
}; };
const optionsStyles = { const optionsStyles = {
@ -156,7 +158,7 @@ function SentListPermit({route,navigation}: sendListDataProps) {
} }
> >
{ {
localStorage.length != 0 ? localStorage.length != 0 && stringFilter === "" ?
localStorage.map((item:any,index:number) => ( localStorage.map((item:any,index:number) => (
<View key={index}> <View key={index}>
<View style={{flexDirection:'row'}}> <View style={{flexDirection:'row'}}>
@ -226,8 +228,81 @@ function SentListPermit({route,navigation}: sendListDataProps) {
borderBottomWidth: 2, borderBottomWidth: 2,
}} }}
/> />
</View>
))
:
filterData.length > 0 ?
filterData.map((item:any,index:number) => (
<View key={index}>
<View style={{flexDirection:'row'}}>
<View style={{ flexDirection:'column',paddingLeft:0,width:'35%'}}>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Company Name</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Permit Status</Text>
<Text style={{fontSize:14,color:'#000000',fontWeight:'600',padding:5}}>Location</Text>
</View>
<View style={{ flexDirection:'column',paddingLeft:0,width:'65%'}}>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.company_name}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.permit_status}</Text>
<Text style={{fontSize:14,fontWeight:'400',color:'#000000',padding:5}}>: {item.location}</Text>
</View>
<View style={{ marginLeft:'55%',marginTop:0,width:150,height:100,position:'absolute'}}>
<MenuProvider skipInstanceCheck={true} style={{flexDirection:'column'}}>
<Menu>
<MenuTrigger>
<Image
style={{justifyContent:'center',alignSelf:'flex-end'}}
source={require('../../assets/icon/Actions.png')}
resizeMode='cover'
/>
</MenuTrigger>
<MenuOptions customStyles={optionsStyles}>
<MenuOption
onSelect={()=>{
navigation.navigate('Permit Editing',{ screen: 'Edit',data: {
id:item.id,
company_name:item.company_name,
permit_status:item.permit_status,
location:item.location,
}});
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/edit.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Edit</Text>
</View>}
/>
<View style={{marginVertical: 5, width:85,
marginHorizontal: 2,
borderBottomWidth: 1,
borderColor: '#ccc'}}
/>
<MenuOption
onSelect={()=> {
deleteById(item.company_name);
removeValue(item.id+" / "+item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / sentPermit");
}}
children={
<View style={{flexDirection:'row',alignItems:'center',justifyContent:'center'}}>
<Image source={require('../../assets/icon/dell.png')} />
<Text style={{marginLeft:10,color:'#6B5E5EB2',fontSize:14,fontWeight:400}}>Delete</Text>
</View>
}
/>
</MenuOptions>
</Menu>
</MenuProvider>
</View>
</View> </View>
)) <View
style={{
marginTop: 10,
marginBottom: 10,
borderBottomColor: '#E2E2E2',
borderBottomWidth: 2,
}}
/>
</View>
))
: :
<View style={{alignItems:'center',padding:20}}> <View style={{alignItems:'center',padding:20}}>
<Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text> <Text style={{fontSize:16,color:'grey'}}>Data Kosong</Text>

Loading…
Cancel
Save