From 392ef24697a2ea46cdb9975e738672fe71f222cf Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 3 Mar 2025 14:31:25 +0800 Subject: [PATCH 1/2] upd: member Deskripsi: - list member - ui tambah member - ui detail member - ui edit member No Issues --- app/(application)/member/[id].tsx | 47 ++++++++++++++ app/(application)/member/create.tsx | 77 +++++++++++++++++++++- app/(application)/member/edit/[id].tsx | 79 +++++++++++++++++++++++ app/(application)/member/index.tsx | 12 ++-- app/(application)/profile.tsx | 59 +++-------------- bun.lockb | Bin 442056 -> 443723 bytes components/inputForm.tsx | 2 +- components/itemDetailMember.tsx | 49 ++++++++++++++ components/member/headerMemberDetail.tsx | 46 +++++++++++++ components/member/headerMemberList.tsx | 26 +++++--- components/menuItemRow.tsx | 2 +- components/modalFilter.tsx | 2 +- constants/ColorsStatus.ts | 3 + package.json | 3 + 14 files changed, 337 insertions(+), 70 deletions(-) create mode 100644 app/(application)/member/[id].tsx create mode 100644 app/(application)/member/edit/[id].tsx create mode 100644 components/itemDetailMember.tsx create mode 100644 components/member/headerMemberDetail.tsx diff --git a/app/(application)/member/[id].tsx b/app/(application)/member/[id].tsx new file mode 100644 index 0000000..5cb84b0 --- /dev/null +++ b/app/(application)/member/[id].tsx @@ -0,0 +1,47 @@ +import ButtonBackHeader from "@/components/buttonBackHeader"; +import ItemDetailMember from "@/components/itemDetailMember"; +import HeaderRightMemberDetail from "@/components/member/headerMemberDetail"; +import Styles from "@/constants/Styles"; +import { router, Stack, useLocalSearchParams } from "expo-router"; +import { Image, SafeAreaView, ScrollView, Text, View } from "react-native"; + +export default function MemberDetail() { + const { id } = useLocalSearchParams(); + + return ( + + { router.back() }} />, + headerTitle: 'Anggota', + headerTitleAlign:'center', + headerRight: () => , + headerShadowVisible: false + }} + /> + + + + + Putri Ayu Dewi + Super Admin + + + + Informasi + + + + + + + + + + + + ) +} \ No newline at end of file diff --git a/app/(application)/member/create.tsx b/app/(application)/member/create.tsx index 24577e2..1422d6a 100644 --- a/app/(application)/member/create.tsx +++ b/app/(application)/member/create.tsx @@ -1,7 +1,80 @@ -import { Text } from "react-native"; +import AlertKonfirmasi from "@/components/alertKonfirmasi"; +import ButtonBackHeader from "@/components/buttonBackHeader"; +import { ButtonForm } from "@/components/buttonForm"; +import { InputForm } from "@/components/inputForm"; +import SelectForm from "@/components/selectForm"; +import { ColorsStatus } from "@/constants/ColorsStatus"; +import Styles from "@/constants/Styles"; +import { MaterialCommunityIcons } from "@expo/vector-icons"; +import * as ImagePicker from 'expo-image-picker'; +import { router, Stack } from "expo-router"; +import { useState } from "react"; +import { Image, Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; export default function CreateMember() { + const [chooseGroup, setChooseGroup] = useState({ val: '', label: '' }) + const [selectedImage, setSelectedImage] = useState(undefined); + + const pickImageAsync = async () => { + let result = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ['images'], + allowsEditing: true, + quality: 1, + }); + + if (!result.canceled) { + setSelectedImage(result.assets[0].uri); + } else { + alert('Tidak ada gambar yang dipilih'); + } + }; + return ( - Tambah Member + + { router.back() }} />, + headerTitle: 'Tambah Anggota', + headerTitleAlign: 'center', + }} + /> + + + + { + selectedImage != undefined ? ( + + + + ) : ( + + + + ) + } + + { }} /> + { }} /> + { }} /> + + + + +62} /> + { }} /> + { + AlertKonfirmasi({ + title: 'Konfirmasi', + desc: 'Apakah anda yakin ingin menambahkan data?', + onPress: () => { + ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + router.push('/member?active=true') + } + }) + }} /> + + + ) } \ No newline at end of file diff --git a/app/(application)/member/edit/[id].tsx b/app/(application)/member/edit/[id].tsx new file mode 100644 index 0000000..4bb010f --- /dev/null +++ b/app/(application)/member/edit/[id].tsx @@ -0,0 +1,79 @@ +import AlertKonfirmasi from "@/components/alertKonfirmasi" +import ButtonBackHeader from "@/components/buttonBackHeader" +import { ButtonForm } from "@/components/buttonForm" +import { InputForm } from "@/components/inputForm" +import SelectForm from "@/components/selectForm" +import { ColorsStatus } from "@/constants/ColorsStatus" +import Styles from "@/constants/Styles" +import { MaterialCommunityIcons } from "@expo/vector-icons" +import * as ImagePicker from 'expo-image-picker' +import { router, Stack } from "expo-router" +import { useState } from "react" +import { Image, Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native" + +export default function EditMember() { + const [chooseGroup, setChooseGroup] = useState({ val: '', label: '' }) + const [selectedImage, setSelectedImage] = useState(undefined); + + const pickImageAsync = async () => { + let result = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ['images'], + allowsEditing: true, + quality: 1, + }); + + if (!result.canceled) { + setSelectedImage(result.assets[0].uri); + } else { + alert('Tidak ada gambar yang dipilih'); + } + }; + + return ( + + { router.back() }} />, + headerTitle: 'Edit Anggota', + headerTitleAlign: 'center', + }} + /> + + + + { + selectedImage != undefined ? ( + + + + ) : ( + + + + ) + } + + { }} /> + { }} /> + + + + +62} /> + { }} /> + { + AlertKonfirmasi({ + title: 'Konfirmasi', + desc: 'Apakah anda yakin ingin mengubah data?', + onPress: () => { + ToastAndroid.show('Berhasil mengubah data', ToastAndroid.SHORT) + router.back() + } + }) + }} /> + + + + ) +} \ No newline at end of file diff --git a/app/(application)/member/index.tsx b/app/(application)/member/index.tsx index f764692..4664416 100644 --- a/app/(application)/member/index.tsx +++ b/app/(application)/member/index.tsx @@ -35,7 +35,7 @@ export default function Index() { { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { }} + onPress={() => {router.push('/member/1')}} borderType="all" icon={ { router.back() }} />, headerTitle: 'Profile', headerTitleAlign: 'center', + headerShadowVisible: false, headerRight: () => } onPress={() => { @@ -41,55 +43,12 @@ export default function Profile() { Informasi Edit - - - - NIK - - 123456789 - - - - - - Lembaga Desa - - Dinas - - - - - - Jabatan - - Bendahara - - - - - - No Telepon - - 09482903842 - - - - - - Email - - ayu@gmail.com - - - - - - - Jenis Kelamin - - Perempuan - - + + + + + + diff --git a/bun.lockb b/bun.lockb index 6b99dd77ad695d4ff32c512cc9b50fd14ddc5e7e..41feab017107e5fd2ad1050ab407f29cad1895c9 100755 GIT binary patch delta 72215 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 lHgf+OBifj|;U5ZpmQ5ewjeBPx1O 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 { label != undefined && ( - + {label} {required && (*)} diff --git a/components/itemDetailMember.tsx b/components/itemDetailMember.tsx new file mode 100644 index 0000000..cb1fece --- /dev/null +++ b/components/itemDetailMember.tsx @@ -0,0 +1,49 @@ +import Styles from "@/constants/Styles"; +import { AntDesign, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons"; +import { Text, View } from "react-native"; + +type Props = { + category: 'nik' | 'group' | 'position' | 'phone' | 'email' | 'gender' + value: string +} + + +const data = { + nik: { + label: 'NIK', + icon: + }, + group: { + label: 'Lembaga Desa', + icon: + }, + position: { + label: 'Jabatan', + icon: + }, + phone: { + label: 'No Telepon', + icon: + }, + email: { + label: 'Email', + icon: + }, + gender: { + label: 'Jenis Kelamin', + icon: + }, +} + + +export default function ItemDetailMember({ category, value }: Props) { + return ( + + + {data[category].icon} + {data[category].label} + + {value} + + ) +} \ No newline at end of file diff --git a/components/member/headerMemberDetail.tsx b/components/member/headerMemberDetail.tsx new file mode 100644 index 0000000..42d20b0 --- /dev/null +++ b/components/member/headerMemberDetail.tsx @@ -0,0 +1,46 @@ +import Styles from "@/constants/Styles" +import { MaterialCommunityIcons } from "@expo/vector-icons" +import { useState } from "react" +import { View } from "react-native" +import AlertKonfirmasi from "../alertKonfirmasi" +import ButtonMenuHeader from "../buttonMenuHeader" +import DrawerBottom from "../drawerBottom" +import MenuItemRow from "../menuItemRow" +import { router } from "expo-router" + +type Props = { + id: string | string[] +} + +export default function HeaderRightMemberDetail({ id }: Props) { + const [isVisible, setVisible] = useState(false) + + return ( + <> + { setVisible(true) }} /> + + + } + title="Non Aktifkan" + onPress={() => { + AlertKonfirmasi({ + title: 'Konfirmasi', + desc: 'Apakah anda yakin ingin menonaktifkan data?', + onPress: () => { } + }) + }} + /> + } + title="Edit" + onPress={() => { + setVisible(false) + router.push(`/member/edit/${id}`) + }} + /> + + + + ) +} \ No newline at end of file diff --git a/components/member/headerMemberList.tsx b/components/member/headerMemberList.tsx index d7ce15a..5e613a2 100644 --- a/components/member/headerMemberList.tsx +++ b/components/member/headerMemberList.tsx @@ -1,15 +1,16 @@ -import { router, Stack } from "expo-router" -import ButtonBackHeader from "../buttonBackHeader" -import ButtonMenuHeader from "../buttonMenuHeader" -import { useState } from "react" -import DrawerBottom from "../drawerBottom" -import { View } from "react-native" import Styles from "@/constants/Styles" -import MenuItemRow from "../menuItemRow" import { AntDesign } from "@expo/vector-icons" +import { router } from "expo-router" +import { useState } from "react" +import { View } from "react-native" +import ButtonMenuHeader from "../buttonMenuHeader" +import DrawerBottom from "../drawerBottom" +import MenuItemRow from "../menuItemRow" +import ModalFilter from "../modalFilter" export default function HeaderMemberList() { const [isVisible, setVisible] = useState(false) + const [isFilter, setFilter] = useState(false) return ( <> { setVisible(true) }} /> @@ -18,15 +19,22 @@ export default function HeaderMemberList() { } title="Tambah Anggota" - onPress={() => { }} + onPress={() => { + setVisible(false) + router.push('/member/create') + }} /> } title="Filter" - onPress={() => { }} + onPress={() => { + setVisible(false) + setFilter(true) + }} /> + { setFilter(false) }} open={isFilter} page="member" /> ) } \ No newline at end of file diff --git a/components/menuItemRow.tsx b/components/menuItemRow.tsx index 31668c0..a459a49 100644 --- a/components/menuItemRow.tsx +++ b/components/menuItemRow.tsx @@ -9,7 +9,7 @@ type Props = { export default function MenuItemRow({ onPress, icon, title }: Props) { return ( - { console.log('press'); onPress() }} style={[Styles.btnMenuRow]}> + { onPress() }} style={[Styles.btnMenuRow]}> {icon} {title} diff --git a/components/modalFilter.tsx b/components/modalFilter.tsx index 1462891..7cca98e 100644 --- a/components/modalFilter.tsx +++ b/components/modalFilter.tsx @@ -9,7 +9,7 @@ import { router } from "expo-router" type Props = { open: boolean, close: (value: boolean) => void - page: 'position' + page: 'position' | 'member' } export default function ModalFilter({ open, close, page }: Props) { diff --git a/constants/ColorsStatus.ts b/constants/ColorsStatus.ts index 9eeab6f..199073b 100644 --- a/constants/ColorsStatus.ts +++ b/constants/ColorsStatus.ts @@ -22,5 +22,8 @@ export const ColorsStatus = { }, lightGreen: { backgroundColor: '#d2f0cb' + }, + gray: { + backgroundColor: '#d9d9d9' } } \ No newline at end of file diff --git a/package.json b/package.json index e99a627..8f5177b 100644 --- a/package.json +++ b/package.json @@ -21,10 +21,13 @@ "expo": "~52.0.37", "expo-blur": "~14.0.3", "expo-constants": "~17.0.7", + "expo-document-picker": "^13.0.3", "expo-font": "~13.0.4", "expo-haptics": "~14.0.1", + "expo-image-picker": "~16.0.6", "expo-linear-gradient": "~14.0.2", "expo-linking": "~7.0.5", + "expo-media-library": "~17.0.6", "expo-router": "~4.0.17", "expo-splash-screen": "~0.29.22", "expo-status-bar": "~2.0.1", From d923d10290a9af74a3e657430e26ae5cbcb55080 Mon Sep 17 00:00:00 2001 From: amel Date: Tue, 4 Mar 2025 10:19:39 +0800 Subject: [PATCH 2/2] upd: discussion Deskripsi: - ui list diskusi No Issues --- app/(application)/_layout.tsx | 8 ++- app/(application)/discussion/[id].tsx | 7 ++ app/(application)/discussion/create.tsx | 7 ++ app/(application)/discussion/index.tsx | 66 +++++++++++++++++++ app/(application)/feature.tsx | 2 +- components/borderBottomItem.tsx | 39 ++++++++++- .../headerDiscussionGeneral.tsx | 40 +++++++++++ components/labelStatus.tsx | 17 +++++ components/modalFilter.tsx | 2 +- constants/ColorsStatus.ts | 2 +- constants/Styles.ts | 8 +++ 11 files changed, 191 insertions(+), 7 deletions(-) create mode 100644 app/(application)/discussion/[id].tsx create mode 100644 app/(application)/discussion/create.tsx create mode 100644 app/(application)/discussion/index.tsx create mode 100644 components/discussion_general/headerDiscussionGeneral.tsx create mode 100644 components/labelStatus.tsx diff --git a/app/(application)/_layout.tsx b/app/(application)/_layout.tsx index 4a53b50..9c4529c 100644 --- a/app/(application)/_layout.tsx +++ b/app/(application)/_layout.tsx @@ -1,4 +1,5 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; +import HeaderDiscussionGeneral from "@/components/discussion_general/headerDiscussionGeneral"; import HeaderMemberList from "@/components/member/headerMemberList"; import { Headers } from "@/constants/Headers"; import { router, Stack } from "expo-router"; @@ -21,7 +22,12 @@ export default function RootLayout() { headerTitleAlign: 'center', headerRight: () => }} /> - + { router.back() }} />, + title: 'Diskusi Umum', + headerTitleAlign: 'center', + headerRight: () => + }} /> diff --git a/app/(application)/discussion/[id].tsx b/app/(application)/discussion/[id].tsx new file mode 100644 index 0000000..bf302cb --- /dev/null +++ b/app/(application)/discussion/[id].tsx @@ -0,0 +1,7 @@ +import { Text } from "react-native"; + +export default function DetailDiscussionGeneral() { + return ( + Detail diskusi general + ) +} \ No newline at end of file diff --git a/app/(application)/discussion/create.tsx b/app/(application)/discussion/create.tsx new file mode 100644 index 0000000..bd3b99c --- /dev/null +++ b/app/(application)/discussion/create.tsx @@ -0,0 +1,7 @@ +import { Text } from "react-native"; + +export default function CreateDiscussionGeneral(){ + return( + Tambah diskusi general + ) +} \ No newline at end of file diff --git a/app/(application)/discussion/index.tsx b/app/(application)/discussion/index.tsx new file mode 100644 index 0000000..2b62923 --- /dev/null +++ b/app/(application)/discussion/index.tsx @@ -0,0 +1,66 @@ +import BorderBottomItem from "@/components/borderBottomItem"; +import ButtonTab from "@/components/buttonTab"; +import InputSearch from "@/components/inputSearch"; +import LabelStatus from "@/components/labelStatus"; +import { ColorsStatus } from "@/constants/ColorsStatus"; +import Styles from "@/constants/Styles"; +import { AntDesign, Feather, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons"; +import { router, useLocalSearchParams } from "expo-router"; +import { SafeAreaView, ScrollView, Text, View } from "react-native"; + +export default function Discussion() { + const { active } = useLocalSearchParams<{ active?: string }>() + + return ( + + + + + { router.push('/discussion?active=true') }} + label="Aktif" + icon={} + n={2} /> + { router.push('/discussion?active=false') }} + label="Arsip" + icon={} + n={2} /> + + + + Filter : Dinas + + + { router.push('/discussion/1') }} + borderType="bottom" + icon={ + + + + } + title="Danantara" + subtitle={ + + } + rightTopInfo="3 Jan 2025" + desc="Bagaimana dampak yg dirasakan akibat efisiensi?" + leftBottomInfo={ + + + Diskusikan + + } + rightBottomInfo='15 Komentar' + /> + + + + + ); +} \ No newline at end of file diff --git a/app/(application)/feature.tsx b/app/(application)/feature.tsx index db893b4..6e309fe 100644 --- a/app/(application)/feature.tsx +++ b/app/(application)/feature.tsx @@ -20,7 +20,7 @@ export default function Feature() { } text="Divisi" /> } text="Kegiatan" /> } text="Pengumuman" /> - } text="Diskusi" /> + } text="Diskusi" onPress={() => { router.push('/discussion?active=true') }}/> } text="Anggota" onPress={() => { router.push('/member?active=true') }}/> diff --git a/components/borderBottomItem.tsx b/components/borderBottomItem.tsx index 8f82c8d..6483a8c 100644 --- a/components/borderBottomItem.tsx +++ b/components/borderBottomItem.tsx @@ -1,17 +1,24 @@ import Styles from "@/constants/Styles"; +import React from "react"; import { Pressable, Text, View } from "react-native"; +import LabelStatus from "./labelStatus"; +import { Feather } from "@expo/vector-icons"; type Props = { title: string - subtitle?: string + subtitle?: string | React.ReactNode icon: React.ReactNode desc?: string rightTopInfo?: string onPress?: () => void borderType: 'all' | 'bottom' + leftBottomInfo?: React.ReactNode | string + rightBottomInfo?: React.ReactNode | string } -export default function BorderBottomItem({ title, subtitle, icon, desc, onPress, rightTopInfo, borderType }: Props) { +export default function BorderBottomItem({ title, subtitle, icon, desc, onPress, rightTopInfo, borderType, leftBottomInfo, rightBottomInfo }: Props) { + + console.log(typeof rightBottomInfo) return ( @@ -19,7 +26,14 @@ export default function BorderBottomItem({ title, subtitle, icon, desc, onPress, {title} - {subtitle && {subtitle}} + { + subtitle && + typeof subtitle == "string" + ? {subtitle} + : + {subtitle} + + } { rightTopInfo && {rightTopInfo} @@ -28,6 +42,25 @@ export default function BorderBottomItem({ title, subtitle, icon, desc, onPress, {desc && {desc}} + { + leftBottomInfo && rightBottomInfo && + ( + + { + typeof leftBottomInfo == 'string' ? + {leftBottomInfo} + : + leftBottomInfo + } + { + typeof rightBottomInfo == 'string' ? + {rightBottomInfo} + : + rightBottomInfo + } + + ) + } ) } \ No newline at end of file diff --git a/components/discussion_general/headerDiscussionGeneral.tsx b/components/discussion_general/headerDiscussionGeneral.tsx new file mode 100644 index 0000000..b89753a --- /dev/null +++ b/components/discussion_general/headerDiscussionGeneral.tsx @@ -0,0 +1,40 @@ +import Styles from "@/constants/Styles" +import { AntDesign } from "@expo/vector-icons" +import { router } from "expo-router" +import { useState } from "react" +import { View } from "react-native" +import ButtonMenuHeader from "../buttonMenuHeader" +import DrawerBottom from "../drawerBottom" +import MenuItemRow from "../menuItemRow" +import ModalFilter from "../modalFilter" + +export default function HeaderDiscussionGeneral() { + const [isVisible, setVisible] = useState(false) + const [isFilter, setFilter] = useState(false) + return ( + <> + { setVisible(true) }} /> + + + } + title="Tambah Diskusi" + onPress={() => { + setVisible(false) + router.push('/discussion/create') + }} + /> + } + title="Filter" + onPress={() => { + setVisible(false) + setFilter(true) + }} + /> + + + { setFilter(false) }} open={isFilter} page="discussion" /> + + ) +} \ No newline at end of file diff --git a/components/labelStatus.tsx b/components/labelStatus.tsx new file mode 100644 index 0000000..51deb32 --- /dev/null +++ b/components/labelStatus.tsx @@ -0,0 +1,17 @@ +import { ColorsStatus } from "@/constants/ColorsStatus"; +import Styles from "@/constants/Styles"; +import { Text, View } from "react-native"; + + +type Props = { + category: 'error' | 'success' | 'warning' | 'primary' + text: string + size: 'small' | 'default' +} +export default function LabelStatus({ category, text, size }: Props) { + return ( + + {text} + + ) +} \ No newline at end of file diff --git a/components/modalFilter.tsx b/components/modalFilter.tsx index 7cca98e..cc05fb8 100644 --- a/components/modalFilter.tsx +++ b/components/modalFilter.tsx @@ -9,7 +9,7 @@ import { router } from "expo-router" type Props = { open: boolean, close: (value: boolean) => void - page: 'position' | 'member' + page: 'position' | 'member' | 'discussion' } export default function ModalFilter({ open, close, page }: Props) { diff --git a/constants/ColorsStatus.ts b/constants/ColorsStatus.ts index 199073b..2424e26 100644 --- a/constants/ColorsStatus.ts +++ b/constants/ColorsStatus.ts @@ -3,7 +3,7 @@ export const ColorsStatus = { backgroundColor: '#19345E' }, success: { - backgroundColor: 'green' + backgroundColor: '#40c057' }, info: { backgroundColor: 'blue' diff --git a/constants/Styles.ts b/constants/Styles.ts index beb886a..11a3956 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -25,6 +25,10 @@ const Styles = StyleSheet.create({ lineHeight: 24, fontWeight: '600', }, + textSmallSemiBold: { + fontSize: 10, + fontWeight: '600', + }, textTitle: { fontSize: 32, fontWeight: 'bold', @@ -120,6 +124,10 @@ const Styles = StyleSheet.create({ paddingHorizontal: 15, borderRadius: 10 }, + labelStatusSmall: { + paddingHorizontal: 10, + borderRadius: 10 + }, rowSpaceBetween: { justifyContent: 'space-between', flexDirection: 'row'