diff --git a/App.tsx b/App.tsx
index 9564a1b..c5c631a 100644
--- a/App.tsx
+++ b/App.tsx
@@ -19,7 +19,12 @@ import MainScreen from './src/component/mainscreen';
import CollectScreen from './src/component/collectscreen';
import SendListScreen from './src/component/sentscreen';
import SentListPJU from './src/component/sentPJU';
+import SentListPDAM from './src/component/sentPDAM';
+import SentListPermit from './src/component/sentPermit';
import InboxListScreen from './src/component/inboxscreen';
+import InboxPJU from './src/component/inboxPJU';
+import InboxPDAM from './src/component/inboxPDAM';
+import InboxPermit from './src/component/inboxPermit';
import MapViewScreen from './src/component/mapviewscreen';
import EditScreen from './src/component/editscreen';
import LoginScreen from './src/component/loginscreen';
@@ -422,6 +427,28 @@ export const Nav = () => {
fontSize:20
}
}}/>
+
+
{
fontSize:20
}
}}/>
+
+
+
=16.8"
}
},
+ "node_modules/react-native-popup-menu": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.16.1.tgz",
+ "integrity": "sha512-xRS7mRh0exwu7Iw8PPVHdM11d13A/KzYjy0/fZx3zVtxISxPkNaDGayau6oa7HqO3Nj0oS9ulFCYjcQfG6vahA==",
+ "license": "ISC"
+ },
"node_modules/react-native-safe-area-context": {
"version": "4.14.0",
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.14.0.tgz",
diff --git a/package.json b/package.json
index 8fcf7db..cafeee1 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"react-native-maps": "^1.18.2",
"react-native-modal": "^13.0.1",
"react-native-paper": "^5.12.5",
+ "react-native-popup-menu": "^0.16.1",
"react-native-safe-area-context": "^4.14.0",
"react-native-screens": "^4.0.0",
"react-native-svg": "^15.8.0",
diff --git a/src/component/collectscreen.tsx b/src/component/collectscreen.tsx
index 49682f6..c1ef846 100644
--- a/src/component/collectscreen.tsx
+++ b/src/component/collectscreen.tsx
@@ -279,7 +279,8 @@ function CollectScreen({route,navigation}: collectScreenProps) {
).then(async (resp) => {
Alert.alert("Success")
setAlertOnline(false);
- navigation.navigate('Property Survey', { screen: 'Property Survey'})
+ // navigation.navigate('Property Survey', { screen: 'Property Survey'})
+ navigation.navigate('Survey Penerangan Jalan Umum', { screen: 'Survey Penerangan Jalan Umum'})
}
)
});
diff --git a/src/component/sentscreen copy 2.tsx b/src/component/draftPJU.tsx
similarity index 63%
rename from src/component/sentscreen copy 2.tsx
rename to src/component/draftPJU.tsx
index 12c2f3d..2f27536 100644
--- a/src/component/sentscreen copy 2.tsx
+++ b/src/component/draftPJU.tsx
@@ -14,16 +14,21 @@ import {
Dimensions
} from 'react-native';
+import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
import AsyncStorage from '@react-native-async-storage/async-storage';
-import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
import { useCallback, useEffect, useState } from 'react';
+import { width } from '@fortawesome/free-solid-svg-icons/faMugSaucer';
import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PERMIT_API_URL, PJU_API_URL } from '../../urlConfig';
import AwesomeAlert from 'react-native-awesome-alerts';
import NetInfo from "@react-native-community/netinfo";
-import { PJU_API_URL } from '../../urlConfig';
+import Moment from 'moment';
+import RNFetchBlob from 'rn-fetch-blob';
+
type sendListDataProps = {route: any,navigation: any};
-function SentListScreen({route,navigation}: sendListDataProps) {
+function DraftListScreen({route,navigation}: sendListDataProps) {
const survey_Type = [
{key:'PJU', value:'PJU'},
{key:'PERMIT', value:'PERMIT'},
@@ -43,7 +48,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const [alertOffline, setAlertOffline] = useState(false);
const [connected, setConnected] = useState(true)
const storeData = async (value:any) => {
- console.log("key",value.case_name)
+ // console.log("key",value.case_name)
try {
const jsonValue = JSON.stringify(value);
@@ -63,7 +68,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
//save error
}
- console.log("Done.")
+ // console.log("Done.")
}
const deleteById = (name:string) => {
if(selectedSurveyType==="PJU"){
@@ -81,18 +86,17 @@ function SentListScreen({route,navigation}: sendListDataProps) {
return oldValues.filter((local_data:any) => local_data.company_name !== name)
})
}
-
}
const removeValue = async (key:string) => {
try {
- console.log("keyDelete",key);
+ // console.log("keyDelete",key);
await AsyncStorage.removeItem(key)
// await getCount();
} catch(e) {
}
}
const selectSurveyType = () => {
- console.log(selectedSurveyType);
+ // console.log(selectedSurveyType);
if(selectedSurveyType==='PJU'){
getDataPJU()
}
@@ -103,29 +107,57 @@ function SentListScreen({route,navigation}: sendListDataProps) {
getDataPermit()
}
}
-
+ const getDataPJU = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ // console.log("All Key",jsonValue)
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ const objectItem = {
+ pju_name:splited[0],
+ pju_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ long:splited[5],
+ lat:splited[6]
+ }
+ // console.log(objectItem);
+
+ if(splited[7] === 'draftPJU'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+ })
+ }
+ } catch (e) {
+ // error reading value
+ }
+ };
const getDataPDAM = async () => {
setLocalStorage([])
try {
const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
+ // console.log("All Key",jsonValue.length)
if(jsonValue.length != 0) {
jsonValue.map((item) => {
if(item != "USER_DATA" && item != "my-jwt"){
let splited = item.split(" / ");
- if(splited.length === 8){
+ if(splited.length === 7){
const objectItem = {
- id:splited[0],
- pipe_name:splited[1],
- pipe_type:splited[2],
- installation_date:splited[3],
- status:splited[4],
- keterangan:splited[5],
- geom:splited[6].split(",")
+ pipe_name:splited[0],
+ pipe_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ geom:splited[5].split(",")
}
- console.log(objectItem);
+ // console.log(objectItem);
- if(splited[7] === 'sentPDAM'){
+ if(splited[6] === 'draftPDAM'){
setLocalStorage(oldArray => [...oldArray,objectItem])
}
}
@@ -146,17 +178,18 @@ function SentListScreen({route,navigation}: sendListDataProps) {
jsonValue.map((item) => {
if(item != "USER_DATA" && item != "my-jwt"){
let splited = item.split(" / ");
- if(splited.length === 6){
+ console.log(splited.length);
+
+ if(splited.length === 5){
const objectItem = {
- id:splited[0],
- company_name:splited[1],
- permit_status:splited[2],
- location:splited[3],
- geom:splited[4].split(",")
+ company_name:splited[0],
+ permit_status:splited[1],
+ location:splited[2],
+ geom:splited[3].split(",")
}
- console.log("aaa",objectItem);
+ // console.log(objectItem);
- if(splited[5] === 'sentPermit'){
+ if(splited[4] === 'draftPermit'){
setLocalStorage(oldArray => [...oldArray,objectItem])
}
}
@@ -167,43 +200,10 @@ function SentListScreen({route,navigation}: sendListDataProps) {
} catch (error) {
}
-
}
- const getDataPJU = async () => {
- setLocalStorage([])
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
- if(jsonValue.length != 0) {
- jsonValue.map((item) => {
- if(item != "USER_DATA" && item != "my-jwt"){
- let splited = item.split(" / ");
- const objectItem = {
- id:splited[0],
- pju_name:splited[1],
- pju_type:splited[2],
- installation_date:splited[3],
- status:splited[4],
- keterangan:splited[5],
- long:splited[6],
- lat:splited[7]
- }
-
- if(splited[8] === 'sentPJU'){
- setLocalStorage(oldArray => [...oldArray,objectItem])
- }
- }
- })
- }
- } catch (e) {
- // error reading value
- }
- };
const isFocused = useIsFocused();
useEffect(() => {
if(isFocused){
- // getData()
- // .catch(console.error);
const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!)
});
@@ -236,7 +236,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
};
const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => {
- console.log(text);
+ // console.log(text);
const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter(data =>
@@ -248,7 +248,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const getDataAll = async () => {
try {
const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All",jsonValue)
+ // console.log("All",jsonValue)
// return jsonValue != null ? JSON.parse(jsonValue) : null;
} catch (e) {
// error reading value
@@ -257,7 +257,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const getDataItem = async () => {
try {
const jsonValue = await AsyncStorage.getItem("120 / test1 / Structure Damage Missing / SDM-1 / 1. High")
- console.log("pure",jsonValue)
+ // console.log("pure",jsonValue)
return jsonValue != null ? JSON.parse(jsonValue) : null;
} catch (e) {
// error reading value
@@ -271,38 +271,115 @@ function SentListScreen({route,navigation}: sendListDataProps) {
}
const reSend = async (data:any) => {
if(connected){
- let result = await fetch(`${PJU_API_URL}/addData`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify({
- nama: data.nama,
- jenis: data.jenis,
- tanggal_installasi: data.date,
- status: data.status,
- keterangan: data.keterangan,
- geom: `POINT(${data.long} ${data.lat})`
- })
- });
- const status = result.status
- if (status == 201) {
- deleteById(data.nama);
- removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.long+" / "+data.lat+" / draftPJU");
+ if(selectedSurveyType==="PJU"){
+ try {
+ const result = {
+ status: 0,
+ body: {},
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PJU_API_URL}/addData`,{
+ "Accept": 'application/json',
+ "Content-Type": "application/json",
+ },
+ JSON.stringify({
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `POINT(${data.long} ${data.lat})`
+ })
+ ).then(async (resp) => {
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.long+" / "+data.lat+" / draftPJU");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
}
- else {
- Alert.alert("Internal Server Error")
+ if(selectedSurveyType==="PDAM"){
+ try {
+ const obj = {
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `MULTILINESTRING((${data.geom}))`
+ };
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PDAM_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = resp.json();
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.geom+" / draftPDAM");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error");
+ }
+
}
- }
- else{
+ if(selectedSurveyType==="PERMIT"){
+ try {
+ const obj = {
+ company_name: data.company_name,
+ location: data.location,
+ permit_status: data.permit_status,
+ geom: `MULTIPOLYGON (((${data.geom},${String(data.geom).split(",")[0]})))`
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PERMIT_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = await resp.json();
+ const status = resp.respInfo.status;
+ if (status == 201) {
+ deleteById(data.company_name);
+ removeValue(data.company_name+" / "+data.permit_status+" / "+data.location+" / "+data.geom+" / draftPermit");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
+
+ }
+ }
+ else{
setAlertOffline(true)
}
- }
- const gotoEdit = () => {
-
}
return(
+ {/* */}
+ {/* {handleSearch(queryText),setStingFilter(queryText)}}
+ /> */}
}>
{selectedSurveyType=="PJU" && localStorage.length != 0?
- localStorage.map((item:any,index:number) => (
-
-
-
- Nama JPU
- Jenis
- Tanggal Installasi
- Status
-
-
- : {item.pju_name}
- : {item.pju_type}
- : {item.installation_date}
- : {item.status}
-
-
-
-
- {
- 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");
- }}>
-
-
-
-
-
-
-
-
- {
- 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
- }});
- // setLocalStorage([])
- }}>
-
-
- {/* View */}
-
-
-
-
-
-
-
-
- ))
- :
- selectedSurveyType=="PDAM" && localStorage.length != 0 ?
localStorage.map((item:any,index:number) => (
- Nama Pipa
+ Nama JPU
Jenis
Tanggal Installasi
Status
- : {item.pipe_name}
- : {item.pipe_type}
+ : {item.pju_name}
+ : {item.pju_type}
: {item.installation_date}
: {item.status}
@@ -407,34 +414,33 @@ function SentListScreen({route,navigation}: sendListDataProps) {
{
- deleteById(item.pipe_name);
- removeValue(item.id+" / "+item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / sentPDAM");
+ deleteById(item.pju_name);
+ removeValue(item.pju_name+" / "+item.pju_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.long+" / "+item.lat+" / draftPJU");
}}>
+ {/* View */}
- {
- navigation.navigate('PDAM Editing',{ screen: 'Edit',data: {
- id:item.id,
- nama:item.pipe_name,
- jenis:item.pipe_type,
- tanggal_installasi:item.installation_date,
+ {reSend({
+ nama:item.pju_name,
+ jenis:item.pju_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
status:item.status,
keterangan:item.keterangan,
- }});
- // setLocalStorage([])
- }}>
+ long:item.long,
+ lat:item.lat
+ })}}>
{/* View */}
@@ -455,26 +461,28 @@ function SentListScreen({route,navigation}: sendListDataProps) {
))
:
- selectedSurveyType=="PERMIT" && localStorage.length != 0 ?
+ selectedSurveyType=="PDAM" && localStorage.length != 0 ?
localStorage.map((item:any,index:number) => (
- Company Name
- Permit Status
- Location
+ Nama Pipa
+ Jenis
+ Tanggal Installasi
+ Status
- : {item.company_name}
- : {item.permit_status}
- : {item.location}
+ : {item.pipe_name}
+ : {item.pipe_type}
+ : {item.installation_date}
+ : {item.status}
{
- deleteById(item.company_name);
- removeValue(item.id+" / "+item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / sentPermit");
+ deleteById(item.pipe_name);
+ removeValue(item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / draftPDAM");
}}>
+
+
+ {reSend({
+ nama:item.pipe_name,
+ jenis:item.pipe_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
+ status:item.status,
+ keterangan:item.keterangan,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
+
+
+
+
+ ))
+ :
+ selectedSurveyType=="PERMIT" && localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Company Name
+ Permit Status
+ Location
+
+
+ : {item.company_name}
+ : {item.permit_status}
+ : {item.location}
+
+
- {
- navigation.navigate('Permit Editing',{ screen: 'Edit',data: {
- id:item.id,
- company_name:item.company_name,
- permit_status:item.permit_status,
- location:item.location,
- }});
- // setLocalStorage([])
+ {
+ deleteById(item.company_name);
+ removeValue(item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / draftPermit");
}}>
- {/* View */}
+
+
+ {reSend({
+ company_name:item.company_name,
+ permit_status:item.permit_status,
+ location:item.location,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
- ))
- :
- Data Kosong
-
+ ))
+ :
+
+ Data Kosong
+
}
+ {/* */}
);
}
@@ -573,4 +643,4 @@ const styles = StyleSheet.create({
},
});
-export default SentListScreen;
\ No newline at end of file
+export default DraftListScreen;
\ No newline at end of file
diff --git a/src/component/sentscreen copy 3.tsx b/src/component/draftscreen copy 2.tsx
similarity index 63%
rename from src/component/sentscreen copy 3.tsx
rename to src/component/draftscreen copy 2.tsx
index 12c2f3d..2f27536 100644
--- a/src/component/sentscreen copy 3.tsx
+++ b/src/component/draftscreen copy 2.tsx
@@ -14,16 +14,21 @@ import {
Dimensions
} from 'react-native';
+import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
import AsyncStorage from '@react-native-async-storage/async-storage';
-import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
import { useCallback, useEffect, useState } from 'react';
+import { width } from '@fortawesome/free-solid-svg-icons/faMugSaucer';
import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PERMIT_API_URL, PJU_API_URL } from '../../urlConfig';
import AwesomeAlert from 'react-native-awesome-alerts';
import NetInfo from "@react-native-community/netinfo";
-import { PJU_API_URL } from '../../urlConfig';
+import Moment from 'moment';
+import RNFetchBlob from 'rn-fetch-blob';
+
type sendListDataProps = {route: any,navigation: any};
-function SentListScreen({route,navigation}: sendListDataProps) {
+function DraftListScreen({route,navigation}: sendListDataProps) {
const survey_Type = [
{key:'PJU', value:'PJU'},
{key:'PERMIT', value:'PERMIT'},
@@ -43,7 +48,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const [alertOffline, setAlertOffline] = useState(false);
const [connected, setConnected] = useState(true)
const storeData = async (value:any) => {
- console.log("key",value.case_name)
+ // console.log("key",value.case_name)
try {
const jsonValue = JSON.stringify(value);
@@ -63,7 +68,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
//save error
}
- console.log("Done.")
+ // console.log("Done.")
}
const deleteById = (name:string) => {
if(selectedSurveyType==="PJU"){
@@ -81,18 +86,17 @@ function SentListScreen({route,navigation}: sendListDataProps) {
return oldValues.filter((local_data:any) => local_data.company_name !== name)
})
}
-
}
const removeValue = async (key:string) => {
try {
- console.log("keyDelete",key);
+ // console.log("keyDelete",key);
await AsyncStorage.removeItem(key)
// await getCount();
} catch(e) {
}
}
const selectSurveyType = () => {
- console.log(selectedSurveyType);
+ // console.log(selectedSurveyType);
if(selectedSurveyType==='PJU'){
getDataPJU()
}
@@ -103,29 +107,57 @@ function SentListScreen({route,navigation}: sendListDataProps) {
getDataPermit()
}
}
-
+ const getDataPJU = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ // console.log("All Key",jsonValue)
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ const objectItem = {
+ pju_name:splited[0],
+ pju_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ long:splited[5],
+ lat:splited[6]
+ }
+ // console.log(objectItem);
+
+ if(splited[7] === 'draftPJU'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+ })
+ }
+ } catch (e) {
+ // error reading value
+ }
+ };
const getDataPDAM = async () => {
setLocalStorage([])
try {
const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
+ // console.log("All Key",jsonValue.length)
if(jsonValue.length != 0) {
jsonValue.map((item) => {
if(item != "USER_DATA" && item != "my-jwt"){
let splited = item.split(" / ");
- if(splited.length === 8){
+ if(splited.length === 7){
const objectItem = {
- id:splited[0],
- pipe_name:splited[1],
- pipe_type:splited[2],
- installation_date:splited[3],
- status:splited[4],
- keterangan:splited[5],
- geom:splited[6].split(",")
+ pipe_name:splited[0],
+ pipe_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ geom:splited[5].split(",")
}
- console.log(objectItem);
+ // console.log(objectItem);
- if(splited[7] === 'sentPDAM'){
+ if(splited[6] === 'draftPDAM'){
setLocalStorage(oldArray => [...oldArray,objectItem])
}
}
@@ -146,17 +178,18 @@ function SentListScreen({route,navigation}: sendListDataProps) {
jsonValue.map((item) => {
if(item != "USER_DATA" && item != "my-jwt"){
let splited = item.split(" / ");
- if(splited.length === 6){
+ console.log(splited.length);
+
+ if(splited.length === 5){
const objectItem = {
- id:splited[0],
- company_name:splited[1],
- permit_status:splited[2],
- location:splited[3],
- geom:splited[4].split(",")
+ company_name:splited[0],
+ permit_status:splited[1],
+ location:splited[2],
+ geom:splited[3].split(",")
}
- console.log("aaa",objectItem);
+ // console.log(objectItem);
- if(splited[5] === 'sentPermit'){
+ if(splited[4] === 'draftPermit'){
setLocalStorage(oldArray => [...oldArray,objectItem])
}
}
@@ -167,43 +200,10 @@ function SentListScreen({route,navigation}: sendListDataProps) {
} catch (error) {
}
-
}
- const getDataPJU = async () => {
- setLocalStorage([])
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
- if(jsonValue.length != 0) {
- jsonValue.map((item) => {
- if(item != "USER_DATA" && item != "my-jwt"){
- let splited = item.split(" / ");
- const objectItem = {
- id:splited[0],
- pju_name:splited[1],
- pju_type:splited[2],
- installation_date:splited[3],
- status:splited[4],
- keterangan:splited[5],
- long:splited[6],
- lat:splited[7]
- }
-
- if(splited[8] === 'sentPJU'){
- setLocalStorage(oldArray => [...oldArray,objectItem])
- }
- }
- })
- }
- } catch (e) {
- // error reading value
- }
- };
const isFocused = useIsFocused();
useEffect(() => {
if(isFocused){
- // getData()
- // .catch(console.error);
const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!)
});
@@ -236,7 +236,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
};
const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => {
- console.log(text);
+ // console.log(text);
const formattedQuery = text.toLowerCase();
const filteredData = localStorage.filter(data =>
@@ -248,7 +248,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const getDataAll = async () => {
try {
const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All",jsonValue)
+ // console.log("All",jsonValue)
// return jsonValue != null ? JSON.parse(jsonValue) : null;
} catch (e) {
// error reading value
@@ -257,7 +257,7 @@ function SentListScreen({route,navigation}: sendListDataProps) {
const getDataItem = async () => {
try {
const jsonValue = await AsyncStorage.getItem("120 / test1 / Structure Damage Missing / SDM-1 / 1. High")
- console.log("pure",jsonValue)
+ // console.log("pure",jsonValue)
return jsonValue != null ? JSON.parse(jsonValue) : null;
} catch (e) {
// error reading value
@@ -271,38 +271,115 @@ function SentListScreen({route,navigation}: sendListDataProps) {
}
const reSend = async (data:any) => {
if(connected){
- let result = await fetch(`${PJU_API_URL}/addData`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify({
- nama: data.nama,
- jenis: data.jenis,
- tanggal_installasi: data.date,
- status: data.status,
- keterangan: data.keterangan,
- geom: `POINT(${data.long} ${data.lat})`
- })
- });
- const status = result.status
- if (status == 201) {
- deleteById(data.nama);
- removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.long+" / "+data.lat+" / draftPJU");
+ if(selectedSurveyType==="PJU"){
+ try {
+ const result = {
+ status: 0,
+ body: {},
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PJU_API_URL}/addData`,{
+ "Accept": 'application/json',
+ "Content-Type": "application/json",
+ },
+ JSON.stringify({
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `POINT(${data.long} ${data.lat})`
+ })
+ ).then(async (resp) => {
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.long+" / "+data.lat+" / draftPJU");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
}
- else {
- Alert.alert("Internal Server Error")
+ if(selectedSurveyType==="PDAM"){
+ try {
+ const obj = {
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `MULTILINESTRING((${data.geom}))`
+ };
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PDAM_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = resp.json();
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.geom+" / draftPDAM");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error");
+ }
+
}
- }
- else{
+ if(selectedSurveyType==="PERMIT"){
+ try {
+ const obj = {
+ company_name: data.company_name,
+ location: data.location,
+ permit_status: data.permit_status,
+ geom: `MULTIPOLYGON (((${data.geom},${String(data.geom).split(",")[0]})))`
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PERMIT_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = await resp.json();
+ const status = resp.respInfo.status;
+ if (status == 201) {
+ deleteById(data.company_name);
+ removeValue(data.company_name+" / "+data.permit_status+" / "+data.location+" / "+data.geom+" / draftPermit");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
+
+ }
+ }
+ else{
setAlertOffline(true)
}
- }
- const gotoEdit = () => {
-
}
return(
+ {/* */}
+ {/* {handleSearch(queryText),setStingFilter(queryText)}}
+ /> */}
}>
{selectedSurveyType=="PJU" && localStorage.length != 0?
- localStorage.map((item:any,index:number) => (
-
-
-
- Nama JPU
- Jenis
- Tanggal Installasi
- Status
-
-
- : {item.pju_name}
- : {item.pju_type}
- : {item.installation_date}
- : {item.status}
-
-
-
-
- {
- 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");
- }}>
-
-
-
-
-
-
-
-
- {
- 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
- }});
- // setLocalStorage([])
- }}>
-
-
- {/* View */}
-
-
-
-
-
-
-
-
- ))
- :
- selectedSurveyType=="PDAM" && localStorage.length != 0 ?
localStorage.map((item:any,index:number) => (
- Nama Pipa
+ Nama JPU
Jenis
Tanggal Installasi
Status
- : {item.pipe_name}
- : {item.pipe_type}
+ : {item.pju_name}
+ : {item.pju_type}
: {item.installation_date}
: {item.status}
@@ -407,34 +414,33 @@ function SentListScreen({route,navigation}: sendListDataProps) {
{
- deleteById(item.pipe_name);
- removeValue(item.id+" / "+item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / sentPDAM");
+ deleteById(item.pju_name);
+ removeValue(item.pju_name+" / "+item.pju_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.long+" / "+item.lat+" / draftPJU");
}}>
+ {/* View */}
- {
- navigation.navigate('PDAM Editing',{ screen: 'Edit',data: {
- id:item.id,
- nama:item.pipe_name,
- jenis:item.pipe_type,
- tanggal_installasi:item.installation_date,
+ {reSend({
+ nama:item.pju_name,
+ jenis:item.pju_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
status:item.status,
keterangan:item.keterangan,
- }});
- // setLocalStorage([])
- }}>
+ long:item.long,
+ lat:item.lat
+ })}}>
{/* View */}
@@ -455,26 +461,28 @@ function SentListScreen({route,navigation}: sendListDataProps) {
))
:
- selectedSurveyType=="PERMIT" && localStorage.length != 0 ?
+ selectedSurveyType=="PDAM" && localStorage.length != 0 ?
localStorage.map((item:any,index:number) => (
- Company Name
- Permit Status
- Location
+ Nama Pipa
+ Jenis
+ Tanggal Installasi
+ Status
- : {item.company_name}
- : {item.permit_status}
- : {item.location}
+ : {item.pipe_name}
+ : {item.pipe_type}
+ : {item.installation_date}
+ : {item.status}
{
- deleteById(item.company_name);
- removeValue(item.id+" / "+item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / sentPermit");
+ deleteById(item.pipe_name);
+ removeValue(item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / draftPDAM");
}}>
+
+
+ {reSend({
+ nama:item.pipe_name,
+ jenis:item.pipe_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
+ status:item.status,
+ keterangan:item.keterangan,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
+
+
+
+
+ ))
+ :
+ selectedSurveyType=="PERMIT" && localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Company Name
+ Permit Status
+ Location
+
+
+ : {item.company_name}
+ : {item.permit_status}
+ : {item.location}
+
+
- {
- navigation.navigate('Permit Editing',{ screen: 'Edit',data: {
- id:item.id,
- company_name:item.company_name,
- permit_status:item.permit_status,
- location:item.location,
- }});
- // setLocalStorage([])
+ {
+ deleteById(item.company_name);
+ removeValue(item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / draftPermit");
}}>
- {/* View */}
+
+
+ {reSend({
+ company_name:item.company_name,
+ permit_status:item.permit_status,
+ location:item.location,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
- ))
- :
- Data Kosong
-
+ ))
+ :
+
+ Data Kosong
+
}
+ {/* */}
);
}
@@ -573,4 +643,4 @@ const styles = StyleSheet.create({
},
});
-export default SentListScreen;
\ No newline at end of file
+export default DraftListScreen;
\ No newline at end of file
diff --git a/src/component/draftscreen copy 3.tsx b/src/component/draftscreen copy 3.tsx
new file mode 100644
index 0000000..2f27536
--- /dev/null
+++ b/src/component/draftscreen copy 3.tsx
@@ -0,0 +1,646 @@
+import { Alert, Animated, Keyboard, RefreshControl } from 'react-native';
+import {
+ TextInput,
+ Button,
+ PermissionsAndroid,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ TouchableOpacity,
+ ScrollView,
+ FlatList,
+ Dimensions
+} from 'react-native';
+
+import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
+
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { useCallback, useEffect, useState } from 'react';
+import { width } from '@fortawesome/free-solid-svg-icons/faMugSaucer';
+import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PERMIT_API_URL, PJU_API_URL } from '../../urlConfig';
+import AwesomeAlert from 'react-native-awesome-alerts';
+import NetInfo from "@react-native-community/netinfo";
+import Moment from 'moment';
+import RNFetchBlob from 'rn-fetch-blob';
+
+type sendListDataProps = {route: any,navigation: any};
+function DraftListScreen({route,navigation}: sendListDataProps) {
+ const survey_Type = [
+ {key:'PJU', value:'PJU'},
+ {key:'PERMIT', value:'PERMIT'},
+ {key:'PDAM', value:'PDAM'},
+ ]
+ const [selectedSurveyType, setselectedSurveyType] = useState("");
+ const [refreshing, setRefreshing] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ }, 2000);
+ }, []);
+ const [localStorage, setLocalStorage] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [surveyType, setSurveyType] = useState("");
+ const [alertOffline, setAlertOffline] = useState(false);
+ const [connected, setConnected] = useState(true)
+ const storeData = async (value:any) => {
+ // console.log("key",value.case_name)
+
+ try {
+ const jsonValue = JSON.stringify(value);
+ await AsyncStorage.setItem(String(value.case_id)+" / "+String(value.case_name)+" / "+String(value.case_category)+" / "+"3PA-01"+" / "+String(value.case_risk),jsonValue);
+ } catch (e) {
+ // saving error
+ }
+ };
+ const multiSet = async () => {
+ const firstPair = [1, "value_1"]
+ const secondPair = [2, "value_2"]
+ try {
+ const objCase1 = JSON.stringify({id:1,case_name:"test1"})
+ const objCase2 = JSON.stringify({id:2,case_name:"test2"})
+ await AsyncStorage.multiSet([["case_1",objCase1],["case_2",objCase2]])
+ } catch(e) {
+ //save error
+ }
+
+ // console.log("Done.")
+ }
+ const deleteById = (name:string) => {
+ if(selectedSurveyType==="PJU"){
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.pju_name !== name)
+ })
+ }
+ if(selectedSurveyType==="PDAM"){
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.pipe_name !== name)
+ })
+ }
+ if(selectedSurveyType==="PERMIT"){
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.company_name !== name)
+ })
+ }
+ }
+ const removeValue = async (key:string) => {
+ try {
+ // console.log("keyDelete",key);
+ await AsyncStorage.removeItem(key)
+ // await getCount();
+ } catch(e) {
+ }
+ }
+ const selectSurveyType = () => {
+ // console.log(selectedSurveyType);
+ if(selectedSurveyType==='PJU'){
+ getDataPJU()
+ }
+ if(selectedSurveyType==='PDAM'){
+ getDataPDAM()
+ }
+ if(selectedSurveyType==='PERMIT'){
+ getDataPermit()
+ }
+ }
+ const getDataPJU = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ // console.log("All Key",jsonValue)
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ const objectItem = {
+ pju_name:splited[0],
+ pju_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ long:splited[5],
+ lat:splited[6]
+ }
+ // console.log(objectItem);
+
+ if(splited[7] === 'draftPJU'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+ })
+ }
+ } catch (e) {
+ // error reading value
+ }
+ };
+ const getDataPDAM = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ // console.log("All Key",jsonValue.length)
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ if(splited.length === 7){
+ const objectItem = {
+ pipe_name:splited[0],
+ pipe_type:splited[1],
+ installation_date:splited[2],
+ status:splited[3],
+ keterangan:splited[4],
+ geom:splited[5].split(",")
+ }
+ // console.log(objectItem);
+
+ if(splited[6] === 'draftPDAM'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+
+ }
+ })
+ }
+ } catch (error) {
+
+ }
+ }
+ const getDataPermit = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ console.log("All Key",jsonValue)
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ console.log(splited.length);
+
+ if(splited.length === 5){
+ const objectItem = {
+ company_name:splited[0],
+ permit_status:splited[1],
+ location:splited[2],
+ geom:splited[3].split(",")
+ }
+ // console.log(objectItem);
+
+ if(splited[4] === 'draftPermit'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+
+ }
+ })
+ }
+ } catch (error) {
+
+ }
+ }
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ const unsubscribe = NetInfo.addEventListener((state) => {
+ setConnected(state.isConnected!)
+ });
+ return () => {
+ unsubscribe();
+ };
+ };
+ },[isFocused])
+ const [draftData, setDraftData] = useState(0);
+ navigation.addListener('beforeRemove', (e:any)=> {
+ // Alert.alert(String(draftData))
+
+ // route.params.onGoBack(draftData);
+ })
+ const getCount = async () => {
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ let index = 0;
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ if(splited[4] === 'draftPJU'){
+ index+=1
+ }
+ }
+ setDraftData(index)
+ })
+ } catch (e) {
+ }
+ };
+ const [stringFilter,setStingFilter] = useState('')
+ const handleSearch = (text:string) => {
+ // console.log(text);
+
+ const formattedQuery = text.toLowerCase();
+ const filteredData = localStorage.filter(data =>
+ data.case_name.toLowerCase().includes(formattedQuery)
+ )
+ setFilterData(filteredData)
+
+ };
+ const getDataAll = async () => {
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ // console.log("All",jsonValue)
+ // return jsonValue != null ? JSON.parse(jsonValue) : null;
+ } catch (e) {
+ // error reading value
+ }
+ };
+ const getDataItem = async () => {
+ try {
+ const jsonValue = await AsyncStorage.getItem("120 / test1 / Structure Damage Missing / SDM-1 / 1. High")
+ // console.log("pure",jsonValue)
+ return jsonValue != null ? JSON.parse(jsonValue) : null;
+ } catch (e) {
+ // error reading value
+ }
+ };
+ const getMultiple = async () => {
+ try {
+ await AsyncStorage.removeItem("141 / Case 1 / Structure Damage Missing / SDM-01 / 2. Medium / draft")
+ } catch(e) {
+ }
+ }
+ const reSend = async (data:any) => {
+ if(connected){
+ if(selectedSurveyType==="PJU"){
+ try {
+ const result = {
+ status: 0,
+ body: {},
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PJU_API_URL}/addData`,{
+ "Accept": 'application/json',
+ "Content-Type": "application/json",
+ },
+ JSON.stringify({
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `POINT(${data.long} ${data.lat})`
+ })
+ ).then(async (resp) => {
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.long+" / "+data.lat+" / draftPJU");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
+ }
+ if(selectedSurveyType==="PDAM"){
+ try {
+ const obj = {
+ nama: data.nama,
+ jenis: data.jenis,
+ tanggal_installasi: data.date,
+ status: data.status,
+ keterangan: data.keterangan,
+ geom: `MULTILINESTRING((${data.geom}))`
+ };
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PDAM_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = resp.json();
+ const status = resp.respInfo.status
+ if (status == 201) {
+ deleteById(data.nama);
+ removeValue(data.nama+" / "+data.jenis+" / "+data.date+" / "+data.status+" / "+data.keterangan+" / "+data.geom+" / draftPDAM");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error");
+ }
+
+ }
+ if(selectedSurveyType==="PERMIT"){
+ try {
+ const obj = {
+ company_name: data.company_name,
+ location: data.location,
+ permit_status: data.permit_status,
+ geom: `MULTIPOLYGON (((${data.geom},${String(data.geom).split(",")[0]})))`
+ }
+ await RNFetchBlob.config({
+ trusty : true
+ }).fetch('POST', `${PERMIT_API_URL}/addData`,{
+ "Content-Type": "application/json",
+ },
+ JSON.stringify(obj)
+ ).then(async(resp) => {
+ const json = await resp.json();
+ const status = resp.respInfo.status;
+ if (status == 201) {
+ deleteById(data.company_name);
+ removeValue(data.company_name+" / "+data.permit_status+" / "+data.location+" / "+data.geom+" / draftPermit");
+ }
+ else {
+ Alert.alert("Internal Server Error")
+ }
+ })
+ } catch (error) {
+ Alert.alert("Internal Server Error")
+ }
+
+ }
+ }
+ else{
+ setAlertOffline(true)
+ }
+ }
+ return(
+
+ {/* */}
+ {/* {handleSearch(queryText),setStingFilter(queryText)}}
+ /> */}
+
+
+ }>
+ {selectedSurveyType=="PJU" && localStorage.length != 0?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Nama JPU
+ Jenis
+ Tanggal Installasi
+ Status
+
+
+ : {item.pju_name}
+ : {item.pju_type}
+ : {item.installation_date}
+ : {item.status}
+
+
+
+
+ {
+ deleteById(item.pju_name);
+ removeValue(item.pju_name+" / "+item.pju_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.long+" / "+item.lat+" / draftPJU");
+ }}>
+
+
+ {/* View */}
+
+
+
+
+
+
+ {reSend({
+ nama:item.pju_name,
+ jenis:item.pju_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
+ status:item.status,
+ keterangan:item.keterangan,
+ long:item.long,
+ lat:item.lat
+ })}}>
+
+
+ {/* View */}
+
+
+
+
+
+
+
+
+ ))
+ :
+ selectedSurveyType=="PDAM" && localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Nama Pipa
+ Jenis
+ Tanggal Installasi
+ Status
+
+
+ : {item.pipe_name}
+ : {item.pipe_type}
+ : {item.installation_date}
+ : {item.status}
+
+
+
+
+ {
+ deleteById(item.pipe_name);
+ removeValue(item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / draftPDAM");
+ }}>
+
+
+
+
+
+
+
+
+ {reSend({
+ nama:item.pipe_name,
+ jenis:item.pipe_type,
+ date:Moment(new Date(item.installation_date)).format('YYYY-MM-DD'),
+ status:item.status,
+ keterangan:item.keterangan,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
+
+
+
+
+ ))
+ :
+ selectedSurveyType=="PERMIT" && localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Company Name
+ Permit Status
+ Location
+
+
+ : {item.company_name}
+ : {item.permit_status}
+ : {item.location}
+
+
+
+
+ {
+ deleteById(item.company_name);
+ removeValue(item.company_name+" / "+item.permit_status+" / "+item.location+" / "+item.geom+" / draftPermit");
+ }}>
+
+
+
+
+
+
+
+
+ {reSend({
+ company_name:item.company_name,
+ permit_status:item.permit_status,
+ location:item.location,
+ geom:item.geom
+ })}}>
+
+
+ {/* View */}
+
+
+
+
+
+
+
+
+ ))
+ :
+
+ Data Kosong
+
+ }
+
+ {
+ setAlertOffline(false);
+ }}
+ overlayStyle={{width:'100%'}}
+ contentContainerStyle={{width:'70%',borderRadius:10}}
+ titleStyle={{fontSize:20}}
+ messageStyle={{fontSize:16}}
+ />
+ {/* */}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#ecf0f1',
+ padding: 10,
+ },
+ mainContainer: {
+ flex: 1,
+ padding: 10,
+ },
+ title: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ alignSelf: 'center',
+ fontWeight: 'bold',
+ fontSize: 22,
+ color: 'black',
+ marginBottom: 10
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+
+export default DraftListScreen;
\ No newline at end of file
diff --git a/src/component/inboxPDAM.tsx b/src/component/inboxPDAM.tsx
new file mode 100644
index 0000000..c8f9f29
--- /dev/null
+++ b/src/component/inboxPDAM.tsx
@@ -0,0 +1,339 @@
+import { Alert, Animated, Keyboard, RefreshControl, BackHandler } from 'react-native';
+import {
+ TextInput,
+ Button,
+ PermissionsAndroid,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ TouchableOpacity,
+ ScrollView,
+ FlatList,
+ Dimensions
+} from 'react-native';
+import { useCallback, useEffect, useState } from 'react';
+
+import {useNavigation,NavigationContainer,useIsFocused } from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
+import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PJU_API_URL, PERMIT_API_URL } from '../../urlConfig';
+import React from 'react';
+import RNFetchBlob from 'rn-fetch-blob';
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+ } from 'react-native-popup-menu';
+
+
+type inboxListDataProps = {route: any,navigation: any};
+function InboxPDAM({route,navigation}: inboxListDataProps) {
+ const survey_Type = [
+ {key:'PJU', value:'PJU'},
+ {key:'PERMIT', value:'PERMIT'},
+ {key:'PDAM', value:'PDAM'},
+ ]
+ const [selectedSurveyType, setselectedSurveyType] = useState("");
+ const [refreshing, setRefreshing] = useState(false);
+ const [inboxData, setInboxData] = useState([]);
+ const [inboxDataPDAM, setInboxDataPDAM] = useState([]);
+ const [inboxDataPERMIT, setInboxDataPERMIT] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [stringFilter,setStingFilter] = useState('')
+ const [loading,setLoading] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ setStingFilter("")
+ setFilterData([])
+ getDataPDAM()
+ }, 2000);
+ }, []);
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
+ const animation = {
+ one: new Animated.Value(0),
+ two: new Animated.Value(0),
+ three: new Animated.Value(0)
+ };
+ const onAnimate = (animation:any,nexAnimation:any) => {
+ Animated.sequence([
+ Animated.timing(animation, {
+ toValue: -10,
+ duration:500,
+ useNativeDriver: true
+ }),
+ Animated.timing(animation, {
+ toValue: 0,
+ duration:500,
+ useNativeDriver: true
+ })
+ ]).start();
+ setTimeout(nexAnimation,200);
+
+ };
+ const onStartAnimate = () => {
+ const onThreeAnimation = () => {
+ onAnimate(animation.three,()=>{
+ setTimeout(onStartAnimate,800);
+ });
+ }
+ const onTwoAnimation = () => {
+ onAnimate(animation.two,onThreeAnimation);
+ }
+ onAnimate(animation.one,onTwoAnimation);
+ };
+ const getDataPDAM = async () => {
+ try {
+ const url = `${PDAM_API_URL}/`
+ await RNFetchBlob.config({
+ trusty : true
+ })
+ .fetch('GET', url)
+ .then((resp) => {
+ const json = resp.json()
+ setInboxDataPDAM(json)
+ })
+ } catch (e) {
+ console.log("error",e);
+ Alert.alert('Internal Server Error', "Network Request Failed",[
+ {
+ text: 'Ok'
+ }
+ ])
+ }
+
+ };
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ setFilterData([]);
+ setStingFilter("");
+ getDataPDAM()
+ }
+ },[isFocused]);
+ const handleSearch = (text:string) => {
+ const formattedQuery = text.toLowerCase();
+ const filteredData = inboxDataPDAM.filter((data:any) =>
+ data.nama.toLowerCase().includes(formattedQuery)
+ )
+ setFilterData(filteredData)
+ };
+ return(
+
+
+
+
+
+ {handleSearch(queryText),setStingFilter(queryText)}}
+ defaultValue={stringFilter}
+ />
+
+
+ }
+ >
+ {
+ filterData.length > 0 ?
+ filterData.map((item:any) => (
+
+
+
+ Nama Pipa
+ Jenis Pipa
+ Tanggal Installasi
+ Status
+
+
+ : {item.nama}
+ : {item.jenis}
+ : {item.tanggal_installasi}
+ : {item.status}
+
+
+
+
+
+
+
+
+
+ ))
+ :
+ inboxDataPDAM.length > 0 && stringFilter === "" ?
+ inboxDataPDAM.map((item:any) => (
+
+
+
+ Nama Pipa
+ Jenis Pipa
+ Tanggal Installasi
+ Status
+
+
+ : {item.nama}
+ : {item.jenis}
+ : {item.tanggal_installasi}
+ : {item.status}
+
+
+
+
+
+
+
+
+
+ ))
+
+ :
+
+ Data Kosong
+
+ }
+
+
+
+ {/* */}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ padding: 30,
+ },
+ mainContainer: {
+ flex: 1,
+ },
+ title: {
+ textAlign:'center',
+ fontSize: 20,
+ color: 'black',
+ },
+ label: {
+ color:'black',
+ fontSize:12,
+ fontWeight:'light',
+ textAlign:'center',
+ paddingTop:20
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+
+export default InboxPDAM;
\ No newline at end of file
diff --git a/src/component/inboxPJU.tsx b/src/component/inboxPJU.tsx
new file mode 100644
index 0000000..ff49722
--- /dev/null
+++ b/src/component/inboxPJU.tsx
@@ -0,0 +1,343 @@
+import { Alert, Animated, Keyboard, RefreshControl, BackHandler } from 'react-native';
+import {
+ TextInput,
+ Button,
+ PermissionsAndroid,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ TouchableOpacity,
+ ScrollView,
+ FlatList,
+ Dimensions
+} from 'react-native';
+import { useCallback, useEffect, useState } from 'react';
+
+import {useNavigation,NavigationContainer,useIsFocused } from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
+import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PJU_API_URL, PERMIT_API_URL } from '../../urlConfig';
+import React from 'react';
+import RNFetchBlob from 'rn-fetch-blob';
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+ } from 'react-native-popup-menu';
+
+
+type inboxListDataProps = {route: any,navigation: any};
+function InboxPJU({route,navigation}: inboxListDataProps) {
+ const survey_Type = [
+ {key:'PJU', value:'PJU'},
+ {key:'PERMIT', value:'PERMIT'},
+ {key:'PDAM', value:'PDAM'},
+ ]
+ const [selectedSurveyType, setselectedSurveyType] = useState("");
+ const [refreshing, setRefreshing] = useState(false);
+ const [inboxData, setInboxData] = useState([]);
+ const [inboxDataPDAM, setInboxDataPDAM] = useState([]);
+ const [inboxDataPERMIT, setInboxDataPERMIT] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [stringFilter,setStingFilter] = useState('')
+ const [loading,setLoading] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ setStingFilter("")
+ setFilterData([])
+ getDataPJU()
+ }, 2000);
+ }, []);
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
+ const animation = {
+ one: new Animated.Value(0),
+ two: new Animated.Value(0),
+ three: new Animated.Value(0)
+ };
+ const onAnimate = (animation:any,nexAnimation:any) => {
+ Animated.sequence([
+ Animated.timing(animation, {
+ toValue: -10,
+ duration:500,
+ useNativeDriver: true
+ }),
+ Animated.timing(animation, {
+ toValue: 0,
+ duration:500,
+ useNativeDriver: true
+ })
+ ]).start();
+ setTimeout(nexAnimation,200);
+
+ };
+ const onStartAnimate = () => {
+ const onThreeAnimation = () => {
+ onAnimate(animation.three,()=>{
+ setTimeout(onStartAnimate,800);
+ });
+ }
+ const onTwoAnimation = () => {
+ onAnimate(animation.two,onThreeAnimation);
+ }
+ onAnimate(animation.one,onTwoAnimation);
+ };
+ const getDataPJU = async () => {
+ try {
+ const url = `${PJU_API_URL}/`
+ await RNFetchBlob.config({
+ trusty : true
+ })
+ .fetch('GET', url)
+ .then((resp) => {
+ const json = resp.json()
+ setInboxData(json)
+ })
+ } catch (e) {
+ console.log("error",e);
+ Alert.alert('Internal Server Error', "Network Request Failed",[
+ {
+ text: 'Ok'
+ }
+ ])
+ }
+
+ };
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ setFilterData([]);
+ setStingFilter("");
+ getDataPJU()
+ }
+ },[isFocused]);
+ const handleSearch = (text:string) => {
+ const formattedQuery = text.toLowerCase();
+ const filteredData = inboxData.filter((data:any) =>
+ data.nama.toLowerCase().includes(formattedQuery)
+ )
+ setFilterData(filteredData)
+ };
+ return(
+
+
+
+
+
+ {handleSearch(queryText),setStingFilter(queryText)}}
+ defaultValue={stringFilter}
+ />
+
+
+ }
+ >
+ {
+ filterData.length > 0 ?
+ filterData.map((item:any) => (
+
+
+
+ Nama JPU
+ Jenis
+ Tanggal Installasi
+ Status
+
+
+ : {item.nama}
+ : {item.jenis}
+ : {item.tanggal_installasi}
+ : {item.status}
+
+
+
+
+
+
+
+
+
+ ))
+ :
+ inboxData.length > 0 && stringFilter === "" ?
+ inboxData.map((item:any) => (
+
+
+
+ Nama JPU
+ Jenis
+ Tanggal Installasi
+ Status
+
+
+ : {item.nama}
+ : {item.jenis}
+ : {item.tanggal_installasi}
+ : {item.status}
+
+
+
+
+
+
+
+
+
+ ))
+
+ :
+
+ Data Kosong
+
+ }
+
+
+
+ {/* */}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ padding: 30,
+ },
+ mainContainer: {
+ flex: 1,
+ },
+ title: {
+ textAlign:'center',
+ fontSize: 20,
+ color: 'black',
+ },
+ label: {
+ color:'black',
+ fontSize:12,
+ fontWeight:'light',
+ textAlign:'center',
+ paddingTop:20
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+
+export default InboxPJU;
\ No newline at end of file
diff --git a/src/component/inboxPermit.tsx b/src/component/inboxPermit.tsx
new file mode 100644
index 0000000..f01a5ec
--- /dev/null
+++ b/src/component/inboxPermit.tsx
@@ -0,0 +1,328 @@
+import { Alert, Animated, Keyboard, RefreshControl, BackHandler } from 'react-native';
+import {
+ TextInput,
+ Button,
+ PermissionsAndroid,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ TouchableOpacity,
+ ScrollView,
+ FlatList,
+ Dimensions
+} from 'react-native';
+import { useCallback, useEffect, useState } from 'react';
+
+import {useNavigation,NavigationContainer,useIsFocused } from '@react-navigation/native';
+import {createNativeStackNavigator} from '@react-navigation/native-stack';
+import { SelectList } from 'react-native-dropdown-select-list';
+import { PDAM_API_URL, PJU_API_URL, PERMIT_API_URL } from '../../urlConfig';
+import React from 'react';
+import RNFetchBlob from 'rn-fetch-blob';
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+ } from 'react-native-popup-menu';
+
+
+type inboxListDataProps = {route: any,navigation: any};
+function InboxPermit({route,navigation}: inboxListDataProps) {
+ const survey_Type = [
+ {key:'PJU', value:'PJU'},
+ {key:'PERMIT', value:'PERMIT'},
+ {key:'PDAM', value:'PDAM'},
+ ]
+ const [selectedSurveyType, setselectedSurveyType] = useState("");
+ const [refreshing, setRefreshing] = useState(false);
+ const [inboxData, setInboxData] = useState([]);
+ const [inboxDataPDAM, setInboxDataPDAM] = useState([]);
+ const [inboxDataPERMIT, setInboxDataPERMIT] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [stringFilter,setStingFilter] = useState('')
+ const [loading,setLoading] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ setStingFilter("")
+ setFilterData([])
+ getDataPERMIT()
+ }, 2000);
+ }, []);
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
+ const animation = {
+ one: new Animated.Value(0),
+ two: new Animated.Value(0),
+ three: new Animated.Value(0)
+ };
+ const onAnimate = (animation:any,nexAnimation:any) => {
+ Animated.sequence([
+ Animated.timing(animation, {
+ toValue: -10,
+ duration:500,
+ useNativeDriver: true
+ }),
+ Animated.timing(animation, {
+ toValue: 0,
+ duration:500,
+ useNativeDriver: true
+ })
+ ]).start();
+ setTimeout(nexAnimation,200);
+
+ };
+ const onStartAnimate = () => {
+ const onThreeAnimation = () => {
+ onAnimate(animation.three,()=>{
+ setTimeout(onStartAnimate,800);
+ });
+ }
+ const onTwoAnimation = () => {
+ onAnimate(animation.two,onThreeAnimation);
+ }
+ onAnimate(animation.one,onTwoAnimation);
+ };
+ const getDataPERMIT = async () => {
+ try {
+ const url = `${PERMIT_API_URL}/`
+ await RNFetchBlob.config({
+ trusty : true
+ })
+ .fetch('GET', url)
+ .then((resp) => {
+ const json = resp.json()
+ setInboxDataPERMIT(json)
+ })
+ } catch (e) {
+ console.log("error",e);
+ Alert.alert('Internal Server Error', "Network Request Failed",[
+ {
+ text: 'Ok'
+ }
+ ])
+ }
+
+ };
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ setFilterData([]);
+ setStingFilter("");
+ getDataPERMIT()
+ }
+ },[isFocused]);
+ const handleSearch = (text:string) => {
+ const formattedQuery = text.toLowerCase();
+ const filteredData = inboxDataPERMIT.filter((data:any) =>
+ data.company_name.toLowerCase().includes(formattedQuery)
+ );
+ setFilterData(filteredData)
+ };
+ return(
+
+
+
+
+
+ {handleSearch(queryText),setStingFilter(queryText)}}
+ defaultValue={stringFilter}
+ />
+
+
+ }
+ >
+ {
+ filterData.length > 0 ?
+ filterData.map((item:any) => (
+
+
+
+ Nama Pipa
+ Company Name
+ Permit Status
+
+
+ : {item.company_name}
+ : {item.permit_status}
+
+
+
+
+
+
+
+
+
+ ))
+ :
+ inboxDataPERMIT.length > 0 && stringFilter === "" ?
+ inboxDataPERMIT.map((item:any) => (
+
+
+
+ Company Name
+ Permit Status
+
+
+ : {item.company_name}
+ : {item.permit_status}
+
+
+
+
+
+
+
+
+
+ ))
+
+ :
+
+ Data Kosong
+
+ }
+
+
+
+ {/* */}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ padding: 30,
+ },
+ mainContainer: {
+ flex: 1,
+ },
+ title: {
+ textAlign:'center',
+ fontSize: 20,
+ color: 'black',
+ },
+ label: {
+ color:'black',
+ fontSize:12,
+ fontWeight:'light',
+ textAlign:'center',
+ paddingTop:20
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+
+export default InboxPermit;
\ No newline at end of file
diff --git a/src/component/sentPDAM.tsx b/src/component/sentPDAM.tsx
new file mode 100644
index 0000000..518ae22
--- /dev/null
+++ b/src/component/sentPDAM.tsx
@@ -0,0 +1,291 @@
+import { RefreshControl } from 'react-native';
+import {
+ TextInput,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ ScrollView
+} from 'react-native';
+
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import {useIsFocused} from '@react-navigation/native';
+import { useCallback, useEffect, useState } from 'react';
+import AwesomeAlert from 'react-native-awesome-alerts';
+import NetInfo from "@react-native-community/netinfo";
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+} from 'react-native-popup-menu';
+type sendListDataProps = {route: any,navigation: any};
+function SentListPDAM({route,navigation}: sendListDataProps) {
+ const [selectedSurveyType, setselectedSurveyType] = useState("");
+ const [refreshing, setRefreshing] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ }, 2000);
+ }, []);
+ const [localStorage, setLocalStorage] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [alertOffline, setAlertOffline] = useState(false);
+ const [connected, setConnected] = useState(true)
+ const deleteById = (name:string) => {
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.pipe_name !== name)
+ })
+
+ };
+ const removeValue = async (key:string) => {
+ try {
+ console.log("keyDelete",key);
+ await AsyncStorage.removeItem(key)
+ // await getCount();
+ } catch(e) {
+ }
+ };
+ const getDataPDAM = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ if(splited.length === 8){
+ const objectItem = {
+ id:splited[0],
+ pipe_name:splited[1],
+ pipe_type:splited[2],
+ installation_date:splited[3],
+ status:splited[4],
+ keterangan:splited[5],
+ geom:splited[6].split(",")
+ }
+ console.log(objectItem);
+
+ if(splited[7] === 'sentPDAM'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+
+ }
+ })
+ }
+ } catch (error) {
+
+ }
+ };
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ getDataPDAM()
+ // getData()
+ // .catch(console.error);
+ const unsubscribe = NetInfo.addEventListener((state) => {
+ setConnected(state.isConnected!)
+ });
+ return () => {
+ unsubscribe();
+ };
+ };
+ },[isFocused])
+ navigation.addListener('beforeRemove', (e:any)=> {
+ })
+ const [stringFilter,setStingFilter] = useState('')
+ const handleSearch = (text:string) => {
+ const formattedQuery = text.toLowerCase();
+ const filteredData = localStorage.filter((data:any) =>
+ data.case_name.toLowerCase().includes(formattedQuery)
+ )
+ setFilterData(filteredData)
+
+ };
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
+ return(
+
+
+
+
+
+ {handleSearch(queryText),setStingFilter(queryText)}}
+ defaultValue={stringFilter}
+ />
+
+ }
+ >
+ {
+ localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Nama Pipa
+ Jenis
+ Tanggal Installasi
+ Status
+
+
+ : {item.pipe_name}
+ : {item.pipe_type}
+ : {item.installation_date}
+ : {item.status}
+
+
+
+
+
+
+
+
+
+ ))
+ :
+
+ Data Kosong
+
+ }
+
+
+
+
+ {
+ setAlertOffline(false);
+ }}
+ overlayStyle={{width:'100%'}}
+ contentContainerStyle={{width:'70%',borderRadius:10}}
+ titleStyle={{fontSize:20}}
+ messageStyle={{fontSize:16}}
+ />
+
+ );
+}
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#ecf0f1',
+ padding: 10,
+ },
+ mainContainer: {
+ flex: 1,
+ },
+ title: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ alignSelf: 'center',
+ fontWeight: 'bold',
+ fontSize: 22,
+ color: 'black',
+ marginBottom: 10
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+export default SentListPDAM;
\ No newline at end of file
diff --git a/src/component/sentPJU.tsx b/src/component/sentPJU.tsx
index 7d81ba6..d1de277 100644
--- a/src/component/sentPJU.tsx
+++ b/src/component/sentPJU.tsx
@@ -1,35 +1,29 @@
-import { Alert, Animated, Keyboard, RefreshControl } from 'react-native';
+import { Pressable, RefreshControl } from 'react-native';
import {
TextInput,
- Button,
- PermissionsAndroid,
StatusBar,
StyleSheet,
Text,
View,
Image,
- TouchableOpacity,
ScrollView,
- FlatList,
- Dimensions
} from 'react-native';
-
import AsyncStorage from '@react-native-async-storage/async-storage';
-import {useNavigation,NavigationContainer,useIsFocused} from '@react-navigation/native';
+import {useIsFocused} from '@react-navigation/native';
import { useCallback, useEffect, useState } from 'react';
-import { SelectList } from 'react-native-dropdown-select-list';
import AwesomeAlert from 'react-native-awesome-alerts';
import NetInfo from "@react-native-community/netinfo";
-import { PJU_API_URL } from '../../urlConfig';
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+ } from 'react-native-popup-menu';
+import React from 'react';
type sendListDataProps = {route: any,navigation: any};
function SentListPJU({route,navigation}: sendListDataProps) {
- const survey_Type = [
- {key:'PJU', value:'PJU'},
- {key:'PERMIT', value:'PERMIT'},
- {key:'PDAM', value:'PDAM'},
- ]
- const [selectedSurveyType, setselectedSurveyType] = useState("");
const [refreshing, setRefreshing] = useState(false);
const onRefresh = useCallback(() => {
setRefreshing(true);
@@ -39,141 +33,23 @@ function SentListPJU({route,navigation}: sendListDataProps) {
}, []);
const [localStorage, setLocalStorage] = useState([]);
const [filterData, setFilterData] = useState([]);
- const [surveyType, setSurveyType] = useState("");
const [alertOffline, setAlertOffline] = useState(false);
const [connected, setConnected] = useState(true)
- const storeData = async (value:any) => {
- console.log("key",value.case_name)
-
- try {
- const jsonValue = JSON.stringify(value);
- await AsyncStorage.setItem(String(value.case_id)+" / "+String(value.case_name)+" / "+String(value.case_category)+" / "+"3PA-01"+" / "+String(value.case_risk),jsonValue);
- } catch (e) {
- // saving error
- }
- };
- const multiSet = async () => {
- const firstPair = [1, "value_1"]
- const secondPair = [2, "value_2"]
- try {
- const objCase1 = JSON.stringify({id:1,case_name:"test1"})
- const objCase2 = JSON.stringify({id:2,case_name:"test2"})
- await AsyncStorage.multiSet([["case_1",objCase1],["case_2",objCase2]])
- } catch(e) {
- //save error
- }
-
- console.log("Done.")
- }
const deleteById = (name:string) => {
- if(selectedSurveyType==="PJU"){
- setLocalStorage(oldValues => {
- return oldValues.filter((local_data:any) => local_data.pju_name !== name)
- })
- }
- if(selectedSurveyType==="PDAM"){
- setLocalStorage(oldValues => {
- return oldValues.filter((local_data:any) => local_data.pipe_name !== name)
- })
- }
- if(selectedSurveyType==="PERMIT"){
- setLocalStorage(oldValues => {
- return oldValues.filter((local_data:any) => local_data.company_name !== name)
- })
- }
-
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.pju_name !== name)
+ })
}
const removeValue = async (key:string) => {
try {
- console.log("keyDelete",key);
await AsyncStorage.removeItem(key)
- // await getCount();
} catch(e) {
}
}
- const selectSurveyType = () => {
- console.log(selectedSurveyType);
- if(selectedSurveyType==='PJU'){
- getDataPJU()
- }
- if(selectedSurveyType==='PDAM'){
- getDataPDAM()
- }
- if(selectedSurveyType==='PERMIT'){
- getDataPermit()
- }
- }
-
- const getDataPDAM = async () => {
- setLocalStorage([])
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
- if(jsonValue.length != 0) {
- jsonValue.map((item) => {
- if(item != "USER_DATA" && item != "my-jwt"){
- let splited = item.split(" / ");
- if(splited.length === 8){
- const objectItem = {
- id:splited[0],
- pipe_name:splited[1],
- pipe_type:splited[2],
- installation_date:splited[3],
- status:splited[4],
- keterangan:splited[5],
- geom:splited[6].split(",")
- }
- console.log(objectItem);
-
- if(splited[7] === 'sentPDAM'){
- setLocalStorage(oldArray => [...oldArray,objectItem])
- }
- }
-
- }
- })
- }
- } catch (error) {
-
- }
- }
- const getDataPermit = async () => {
- setLocalStorage([])
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
- if(jsonValue.length != 0) {
- jsonValue.map((item) => {
- if(item != "USER_DATA" && item != "my-jwt"){
- let splited = item.split(" / ");
- if(splited.length === 6){
- const objectItem = {
- id:splited[0],
- company_name:splited[1],
- permit_status:splited[2],
- location:splited[3],
- geom:splited[4].split(",")
- }
- console.log("aaa",objectItem);
-
- if(splited[5] === 'sentPermit'){
- setLocalStorage(oldArray => [...oldArray,objectItem])
- }
- }
-
- }
- })
- }
- } catch (error) {
-
- }
-
- }
const getDataPJU = async () => {
setLocalStorage([])
try {
const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All Key",jsonValue)
if(jsonValue.length != 0) {
jsonValue.map((item) => {
if(item != "USER_DATA" && item != "my-jwt"){
@@ -203,8 +79,6 @@ function SentListPJU({route,navigation}: sendListDataProps) {
useEffect(() => {
if(isFocused){
getDataPJU()
- // getData()
- // .catch(console.error);
const unsubscribe = NetInfo.addEventListener((state) => {
setConnected(state.isConnected!)
});
@@ -218,91 +92,83 @@ function SentListPJU({route,navigation}: sendListDataProps) {
// Alert.alert(String(draftData))
// route.params.onGoBack(draftData);
- })
- const getCount = async () => {
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- let index = 0;
- jsonValue.map((item) => {
- if(item != "USER_DATA" && item != "my-jwt"){
- let splited = item.split(" / ");
- if(splited[4] === 'draftPJU'){
- index+=1
- }
- }
- setDraftData(index)
- })
- } catch (e) {
- }
- };
+ });
const [stringFilter,setStingFilter] = useState('')
const handleSearch = (text:string) => {
console.log(text);
const formattedQuery = text.toLowerCase();
- const filteredData = localStorage.filter(data =>
+ const filteredData = localStorage.filter((data:any) =>
data.case_name.toLowerCase().includes(formattedQuery)
)
setFilterData(filteredData)
};
- const getDataAll = async () => {
- try {
- const jsonValue = await AsyncStorage.getAllKeys()
- console.log("All",jsonValue)
- // return jsonValue != null ? JSON.parse(jsonValue) : null;
- } catch (e) {
- // error reading value
- }
- };
- const getDataItem = async () => {
- try {
- const jsonValue = await AsyncStorage.getItem("120 / test1 / Structure Damage Missing / SDM-1 / 1. High")
- console.log("pure",jsonValue)
- return jsonValue != null ? JSON.parse(jsonValue) : null;
- } catch (e) {
- // error reading value
- }
- };
- const getMultiple = async () => {
- try {
- await AsyncStorage.removeItem("141 / Case 1 / Structure Damage Missing / SDM-01 / 2. Medium / draft")
- } catch(e) {
- }
- }
- const reSend = async (data:any) => {
- if(connected){
- let result = await fetch(`${PJU_API_URL}/addData`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
+ const MoreActionCard = ({show,data}:any) => {
+ console.log(data,show);
+ const [showAction,setShowAction] = useState(show)
+ return(
+ {
-
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ width: 100,
+ height: 80,
+ justifyContent: 'center',
+ // alignItems: 'center',
+ marginLeft:'65%',
+ marginTop:20
+
+ }}>
+
+
+
+ Edit
+
+
+
+
+ Delete
+
+
+
+
+ )
}
-
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
return(
@@ -312,7 +178,6 @@ function SentListPJU({route,navigation}: sendListDataProps) {
-
- }
+ }
>
{
localStorage.length != 0 ?
@@ -345,52 +205,62 @@ function SentListPJU({route,navigation}: sendListDataProps) {
Tanggal Installasi
Status
-
+
: {item.pju_name}
: {item.pju_type}
: {item.installation_date}
: {item.status}
-
-
-
-
- {
- 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");
- }}>
-
-
-
-
-
-
- {/*
-
- {
- 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
- }});
- }}>
-
-
-
-
-
- */}
+
+
+
+
-
- ))
+
+ ))
:
Data Kosong
}
-
-
);
-}
-
+};
const styles = StyleSheet.create({
container: {
flex: 1,
@@ -460,5 +327,4 @@ const styles = StyleSheet.create({
color: 'black'
},
});
-
export default SentListPJU;
\ No newline at end of file
diff --git a/src/component/sentPermit.tsx b/src/component/sentPermit.tsx
new file mode 100644
index 0000000..16ffd65
--- /dev/null
+++ b/src/component/sentPermit.tsx
@@ -0,0 +1,287 @@
+import { RefreshControl } from 'react-native';
+import {
+ TextInput,
+ StatusBar,
+ StyleSheet,
+ Text,
+ View,
+ Image,
+ ScrollView,
+} from 'react-native';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import {useIsFocused} from '@react-navigation/native';
+import { useCallback, useEffect, useState } from 'react';
+import AwesomeAlert from 'react-native-awesome-alerts';
+import NetInfo from "@react-native-community/netinfo";
+import { MenuProvider } from 'react-native-popup-menu';
+import {
+ Menu,
+ MenuOptions,
+ MenuOption,
+ MenuTrigger,
+} from 'react-native-popup-menu';
+type sendListDataProps = {route: any,navigation: any};
+function SentListPermit({route,navigation}: sendListDataProps) {
+ const [refreshing, setRefreshing] = useState(false);
+ const onRefresh = useCallback(() => {
+ setRefreshing(true);
+ setTimeout(() => {
+ setRefreshing(false);
+ }, 2000);
+ }, []);
+ const [localStorage, setLocalStorage] = useState([]);
+ const [filterData, setFilterData] = useState([]);
+ const [alertOffline, setAlertOffline] = useState(false);
+ const [connected, setConnected] = useState(true)
+ const deleteById = (name:string) => {
+ setLocalStorage(oldValues => {
+ return oldValues.filter((local_data:any) => local_data.company_name !== name)
+ })
+ };
+ const removeValue = async (key:string) => {
+ try {
+ console.log("keyDelete",key);
+ await AsyncStorage.removeItem(key)
+ // await getCount();
+ } catch(e) {
+ }
+ };
+ const getDataPermit = async () => {
+ setLocalStorage([])
+ try {
+ const jsonValue = await AsyncStorage.getAllKeys()
+ if(jsonValue.length != 0) {
+ jsonValue.map((item) => {
+ if(item != "USER_DATA" && item != "my-jwt"){
+ let splited = item.split(" / ");
+ if(splited.length === 6){
+ const objectItem = {
+ id:splited[0],
+ company_name:splited[1],
+ permit_status:splited[2],
+ location:splited[3],
+ geom:splited[4].split(",")
+ }
+ console.log("aaa",objectItem);
+
+ if(splited[5] === 'sentPermit'){
+ setLocalStorage(oldArray => [...oldArray,objectItem])
+ }
+ }
+
+ }
+ })
+ }
+ } catch (error) {
+
+ }
+
+ };
+ const isFocused = useIsFocused();
+ useEffect(() => {
+ if(isFocused){
+ getDataPermit()
+ const unsubscribe = NetInfo.addEventListener((state) => {
+ setConnected(state.isConnected!)
+ });
+ return () => {
+ unsubscribe();
+ };
+ };
+ },[isFocused])
+ const [draftData, setDraftData] = useState(0);
+ navigation.addListener('beforeRemove', (e:any)=> {
+ })
+ const [stringFilter,setStingFilter] = useState('')
+ const handleSearch = (text:string) => {
+ const formattedQuery = text.toLowerCase();
+ const filteredData = localStorage.filter((data:any) =>
+ data.case_name.toLowerCase().includes(formattedQuery)
+ )
+ setFilterData(filteredData)
+ };
+ const optionsStyles = {
+ optionsContainer: {
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width:100,
+ marginVertical:-10,
+ marginLeft:-10,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 5,
+ shadowColor: '#00000040',
+ shadowOffset: {
+ width: 0,
+ height: 2,
+ },
+ borderColor:'#6B5E5E4D',
+ borderWidth:1,
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 5,
+ },
+ optionText: {
+ color: 'brown',
+ },
+ };
+ return(
+
+
+
+
+
+ {handleSearch(queryText),setStingFilter(queryText)}}
+ defaultValue={stringFilter}
+ />
+
+
+ }
+ >
+ {
+ localStorage.length != 0 ?
+ localStorage.map((item:any,index:number) => (
+
+
+
+ Company Name
+ Permit Status
+ Location
+
+
+ : {item.company_name}
+ : {item.permit_status}
+ : {item.location}
+
+
+
+
+
+
+
+
+
+ ))
+ :
+
+ Data Kosong
+
+ }
+
+
+
+
+ {
+ setAlertOffline(false);
+ }}
+ overlayStyle={{width:'100%'}}
+ contentContainerStyle={{width:'70%',borderRadius:10}}
+ titleStyle={{fontSize:20}}
+ messageStyle={{fontSize:16}}
+ />
+
+ );
+};
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#ecf0f1',
+ padding: 10,
+ },
+ mainContainer: {
+ flex: 1,
+ },
+ title: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ alignSelf: 'center',
+ fontWeight: 'bold',
+ fontSize: 22,
+ color: 'black',
+ marginBottom: 10
+ },
+ input: {
+ height: 40,
+ borderWidth: 1,
+ padding: 10,
+ borderRadius: 50,
+ color: 'black'
+ },
+});
+export default SentListPermit;
\ No newline at end of file
diff --git a/src/component/sentscreen.tsx b/src/component/sentscreen.tsx
index 12c2f3d..d82d406 100644
--- a/src/component/sentscreen.tsx
+++ b/src/component/sentscreen.tsx
@@ -103,7 +103,6 @@ function SentListScreen({route,navigation}: sendListDataProps) {
getDataPermit()
}
}
-
const getDataPDAM = async () => {
setLocalStorage([])
try {
@@ -407,8 +406,8 @@ function SentListScreen({route,navigation}: sendListDataProps) {
{
- deleteById(item.pipe_name);
- removeValue(item.id+" / "+item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / sentPDAM");
+ // deleteById(item.pipe_name);
+ // removeValue(item.id+" / "+item.pipe_name+" / "+item.pipe_type+" / "+item.installation_date+" / "+item.status+" / "+item.keterangan+" / "+item.geom+" / sentPDAM");
}}>
-
+ {
+ navigation.navigate('Sent Pipa PDAM', { screen: 'Sent'})
+ }}>
Sent
@@ -70,7 +72,9 @@ const img_1 = require('../../assets/img/Geonet_polos.png')
{/* aaa */}
-
+ {
+ navigation.navigate('Inbox Pipa PDAM', { screen: 'Inbox'})
+ }}>
Inbox
diff --git a/src/component/surveyPERMIT.tsx b/src/component/surveyPERMIT.tsx
index ae44ea6..c11f7a9 100644
--- a/src/component/surveyPERMIT.tsx
+++ b/src/component/surveyPERMIT.tsx
@@ -53,13 +53,17 @@ const img_1 = require('../../assets/img/Geonet_polos.png')
{/* aaa */}
-
+ {
+ navigation.navigate('Permit Map', { screen: 'PDAM Map Collect'})
+ }}>
Add Data
-
+ {
+ navigation.navigate('Sent Land Permit', { screen: 'Sent'})
+ }}>
Sent
@@ -68,7 +72,9 @@ const img_1 = require('../../assets/img/Geonet_polos.png')
{/* aaa */}
-
+ {
+ navigation.navigate('Inbox Land Permit', { screen: 'Inbox'})
+ }}>
Inbox
diff --git a/src/component/surveyPJU.tsx b/src/component/surveyPJU.tsx
index 8c0f9c0..0f98f7e 100644
--- a/src/component/surveyPJU.tsx
+++ b/src/component/surveyPJU.tsx
@@ -72,7 +72,9 @@ const img_1 = require('../../assets/img/Geonet_polos.png')
{/* aaa */}
-
+ {
+ navigation.navigate('Inbox Penerangan Jalan Umum', { screen: 'Inbox'})
+ }}>
Inbox