diff --git a/src/screens/daily-report-page/dialogform.js b/src/screens/daily-report-page/dialogform.js new file mode 100644 index 0000000..97457c6 --- /dev/null +++ b/src/screens/daily-report-page/dialogform.js @@ -0,0 +1,145 @@ +import React, { useEffect, useCallback, useMemo, useState, useRef } from 'react'; +import { StatusBar } from 'react-native'; +import { Button, Text, Appbar, } from 'react-native-paper'; +import { StyleSheet, View, } from 'react-native'; +import { colors } from '../../utils/color'; +import { strings } from '../../utils/i18n'; +import StepIndicator from 'react-native-step-indicator'; +import Manpower from './stepComponent/manPower' +import InformationReport from './stepComponent/informationReport'; +import SpesialRequest from './stepComponent/spesialRequest'; +import Training from './stepComponent/training'; +import Visit from './stepComponent/visit'; +import PatroliDRScreen from './stepComponent/patroli' + + +export default function DialogForm({ route, navigation }) { + const [active, setActive] = useState(0); + const labels = ["Manpower", "Kunjungan", "Spesial Request", "Pelatihan", "Laporan Informasi", "Patroli"]; + + const renderStepContent = useMemo(() => { + switch (active) { + case 0: + return ; + case 1: + return ; + case 2: + return ; + case 3: + return ; + case 4: + return ; + case 5: + return ; + default: + return null; + } + }, [active]); + + const handleBack = () => { + if (active > 0) { + setActive(active - 1); + } + }; + + const handleNext = () => { + if (active < labels.length - 1) { + setActive(active + 1); + } + }; + return ( + + + + { navigation.goBack() }} /> + + + + setActive(position)} + /> + + + {renderStepContent} + + + + {active === labels.length - 1 ? + ( + + ) + : ( + + )} + + + + ) +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + marginTop: 20, + backgroundColor: colors.pureWhite + }, + cardView: { + marginTop: 10, + }, + card: { + marginTop: 10, + marginHorizontal: 10, + backgroundColor: '#1C1B40', + }, + button: { + flex: 1, + margin: 5, + borderRadius: 5 + }, + contentContainer: { + flex: 1, + }, + buttonContainer: { + flexDirection: 'row', + justifyContent: 'space-between', + padding: 10, + paddingBottom: 20, + }, + +}) + +const stepIndicatorStyles = { + + stepIndicatorSize: 25, + currentStepIndicatorSize: 30, + separatorStrokeWidth: 2, + currentStepStrokeWidth: 2, + stepIndicatorCurrentColor: colors.blue, + stepStrokeCurrentColor: colors.blue, + stepStrokeWidth: 1, + stepStrokeFinishedColor: colors.blue, + stepStrokeUnFinishedColor: colors.semiBlue, + separatorFinishedColor: colors.blue, + separatorUnFinishedColor: colors.semiBlue, + stepIndicatorFinishedColor: colors.blue, + stepIndicatorUnFinishedColor: colors.semiBlue, + stepIndicatorCurrentColor: colors.blue, + stepIndicatorLabelFontSize: 12, + currentStepIndicatorLabelFontSize: 12, + stepIndicatorLabelCurrentColor: colors.pureWhite, + stepIndicatorLabelFinishedColor: colors.pureWhite, + stepIndicatorLabelUnFinishedColor: colors.blue, + labelColor: colors.semiBlue, + labelSize: 12, + currentStepLabelColor: colors.blue +} \ No newline at end of file diff --git a/src/screens/daily-report-page/index.js b/src/screens/daily-report-page/index.js index ceb38b6..08b6c05 100644 --- a/src/screens/daily-report-page/index.js +++ b/src/screens/daily-report-page/index.js @@ -1,40 +1,56 @@ import React, { useEffect, useCallback, useMemo, useState, useRef } from 'react'; -import { Icon, Card, Text, Avatar, useTheme, IconButton, Appbar, Button } from 'react-native-paper'; -import { RefreshControl, StyleSheet, View, ScrollView, Image, Dimensions } from 'react-native'; +import { Card, Text, Appbar, Button, TouchableRipple } from 'react-native-paper'; +import { RefreshControl, StyleSheet, View, ScrollView, StatusBar } from 'react-native'; +import { colors } from '../../utils/color'; +import Icon from 'react-native-vector-icons/AntDesign'; +import { strings } from '../../utils/i18n'; + export default function DailyReportScreen({ route, navigation }) { + const incidentData = [ + { id: 1, date: "Senin, 02-05-2024 21:03", location: "Kangean Site Indonesia", company: "Kangean Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "KEI2301M" }, + { id: 2, date: "Selasa, 03-05-2024 10:15", location: "Sumatra Site Indonesia", company: "Sumatra Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "SEI2402M" }, + { id: 3, date: "Rabu, 04-05-2024 15:20", location: "Java Site Indonesia", company: "Java Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "JEI2503M" }, + { id: 4, date: "Kamis, 05-05-2024 18:30", location: "Bali Site Indonesia", company: "Bali Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "BEI2604M" }, + { id: 5, date: "Jumat, 06-05-2024 08:00", location: "Sulawesi Site Indonesia", company: "Sulawesi Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "SEI2705M" }, + { id: 5, date: "Sabtu, 07-05-2024 08:00", location: "Sulawesi Site Indonesia", company: "Sulawesi Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "SEI2705M" }, + { id: 5, date: "Minggu, 08-05-2024 08:00", location: "Sulawesi Site Indonesia", company: "Sulawesi Energy Indonesia, BUT. Ltd.", icn: "KEI2301M", sicn: "SEI2705M" } + ]; + return ( - + + { navigation.goBack() }} /> - - { }} /> - { }} /> + - - - - - - ICN - SICN - - - TIM2301M - DNC200102A - - - - - - - - + + + + + + + {incidentData.map((incident) => ( + + + + + + + + {incident.date} + {incident.location} + {incident.company} + {incident.icn} - {incident.sicn} + + + + + + + + ))} ) @@ -44,22 +60,44 @@ const styles = StyleSheet.create({ container: { flex: 1, marginTop: 20, + backgroundColor: colors.pureWhite + }, + Text: { + fontSize: 16, + fontWeight: 'bold', + color: colors.blue }, card: { - marginTop: 15, - marginHorizontal: 10, - marginVertical: 2, - backgroundColor: '#1C1B40', + flex: 1, + marginHorizontal: 8, + marginVertical: 5, + backgroundColor: colors.pureWhite, }, - cardActions: { - justifyContent: 'space-between', - backgroundColor: '#1C1B40', - borderBottomRightRadius: 20, - borderBottomLeftRadius: 20, - marginVertical: 4, + subText: { + fontSize: 12, + color: colors.blue }, cardContent: { - paddingHorizontal: 10, + flexDirection: 'row', + justifyContent: 'space-between', + paddingVertical: 10, + }, + leftContent: { + flex: 1, + justifyContent: 'center', + alignItems: 'flex-start', + marginLeft: 15 + }, + midContent: { + flex: 7, + justifyContent: 'flex-start', + alignItems: 'flex-start', + }, + rightContent: { + flex: 1, + justifyContent: 'center', + alignItems: 'flex-end', + marginRight: 15, }, row: { flexDirection: 'row',