From 60132177aef063d740b8dd8816637a3bf9308dc2 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 10 Mar 2025 12:07:41 +0800 Subject: [PATCH] upd: report divisi Deskripsi: - ui report divisi No Issues --- app/(application)/division/report.tsx | 36 +++++++++++++++++++ components/division/headerDivisionList.tsx | 5 +-- components/division/reportChartDocument.tsx | 39 +++++++++++++++++++++ components/division/reportChartEvent.tsx | 39 +++++++++++++++++++++ components/division/reportChartProgress.tsx | 31 ++++++++++++++++ components/selectForm.tsx | 7 ++-- 6 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 app/(application)/division/report.tsx create mode 100644 components/division/reportChartDocument.tsx create mode 100644 components/division/reportChartEvent.tsx create mode 100644 components/division/reportChartProgress.tsx diff --git a/app/(application)/division/report.tsx b/app/(application)/division/report.tsx new file mode 100644 index 0000000..7010d70 --- /dev/null +++ b/app/(application)/division/report.tsx @@ -0,0 +1,36 @@ +import ButtonBackHeader from "@/components/buttonBackHeader"; +import ReportChartDocument from "@/components/division/reportChartDocument"; +import ReportChartEvent from "@/components/division/reportChartEvent"; +import ReportChartProgress from "@/components/division/reportChartProgress"; +import { InputForm } from "@/components/inputForm"; +import SelectForm from "@/components/selectForm"; +import Styles from "@/constants/Styles"; +import { router, Stack } from "expo-router"; +import { useState } from "react"; +import { SafeAreaView, ScrollView, View } from "react-native"; + +export default function Report() { + const [chooseGroup, setChooseGroup] = useState({ val: '', label: '' }) + + return ( + + { router.back() }} />, + headerTitle: 'Laporan Divisi', + headerTitleAlign: 'center', + }} + /> + + + { }} /> + + + + + + + + + ) +} \ No newline at end of file diff --git a/components/division/headerDivisionList.tsx b/components/division/headerDivisionList.tsx index ec4cf38..4c5ec11 100644 --- a/components/division/headerDivisionList.tsx +++ b/components/division/headerDivisionList.tsx @@ -6,6 +6,7 @@ import Styles from "@/constants/Styles" import MenuItemRow from "../menuItemRow" import { AntDesign, MaterialCommunityIcons } from "@expo/vector-icons" import ModalFilter from "../modalFilter" +import { router } from "expo-router" export default function HeaderRightDivisionList() { const [isVisible, setVisible] = useState(false) @@ -17,7 +18,7 @@ export default function HeaderRightDivisionList() { } - title="Tambah Kegiatan" + title="Tambah Divisi" onPress={() => { setVisible(false) // router.push('/project/create') @@ -36,7 +37,7 @@ export default function HeaderRightDivisionList() { title="Laporan" onPress={() => { setVisible(false) - // router.push('/project/create') + router.push('/division/report') }} /> diff --git a/components/division/reportChartDocument.tsx b/components/division/reportChartDocument.tsx new file mode 100644 index 0000000..2047e0e --- /dev/null +++ b/components/division/reportChartDocument.tsx @@ -0,0 +1,39 @@ +import Styles from "@/constants/Styles"; +import { Dimensions, Text, View } from "react-native"; +import { BarChart } from "react-native-gifted-charts"; + +export default function ReportChartDocument() { + const barData = [ + { value: 23, label: 'Gambar', frontColor: '#fac858' }, + { value: 12, label: 'Dokumen', frontColor: '#92cc76' }, + ]; + const width = Dimensions.get("window").width; + + return ( + + JUMLAH DOKUMEN + { + return ( + + {item.value} + + ); + }} + /> + + ) +} \ No newline at end of file diff --git a/components/division/reportChartEvent.tsx b/components/division/reportChartEvent.tsx new file mode 100644 index 0000000..2f5f5b7 --- /dev/null +++ b/components/division/reportChartEvent.tsx @@ -0,0 +1,39 @@ +import Styles from "@/constants/Styles"; +import { Dimensions, Text, View } from "react-native"; +import { BarChart } from "react-native-gifted-charts"; + +export default function ReportChartEvent() { + const width = Dimensions.get("window").width; + const barData = [ + { value: 23, label: 'Akan Datang', frontColor: 'gray' }, + { value: 12, label: 'Selesai', frontColor: '#177AD5' }, + ]; + + return ( + + ACARA DIVISI + { + return ( + + {item.value} + + ); + }} + /> + + ) +} \ No newline at end of file diff --git a/components/division/reportChartProgress.tsx b/components/division/reportChartProgress.tsx new file mode 100644 index 0000000..a3357d6 --- /dev/null +++ b/components/division/reportChartProgress.tsx @@ -0,0 +1,31 @@ +import Styles from "@/constants/Styles"; +import { Text, View } from "react-native"; +import { PieChart } from "react-native-gifted-charts"; + +export default function ReportChartProgress() { + const pieData = [ + { value: 54, text: "54%", color: '#177AD5' }, + { value: 40, text: "40%", color: '#92cc76' }, + { value: 20, text: "20%", color: '#ED6665' }, + { value: 0, text: "0%", color: '#fac858' }, + ]; + + return ( + + PROGRES KEGIATAN + + + ) +} \ No newline at end of file diff --git a/components/selectForm.tsx b/components/selectForm.tsx index 1d89951..00da44b 100644 --- a/components/selectForm.tsx +++ b/components/selectForm.tsx @@ -14,9 +14,10 @@ type Props = { errorText?: string; required?: boolean; round?: boolean + bg?: 'white' | 'transparent' }; -export default function SelectForm({ label, value, placeholder, onPress, info, error, errorText, required, itemLeft, round }: Props) { +export default function SelectForm({ label, value, placeholder, onPress, info, error, errorText, required, itemLeft, round, bg }: Props) { return ( { @@ -28,7 +29,7 @@ export default function SelectForm({ label, value, placeholder, onPress, info, e ) } - + { value ? ( @@ -40,7 +41,7 @@ export default function SelectForm({ label, value, placeholder, onPress, info, e {error && ({errorText})} - {info != undefined && ({info})} + {info != undefined && ({info})} ) } \ No newline at end of file