diff --git a/app/(application)/division/[id]/(fitur-division)/document/index.tsx b/app/(application)/division/[id]/(fitur-division)/document/index.tsx index b9b9687..1f66958 100644 --- a/app/(application)/division/[id]/(fitur-division)/document/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/document/index.tsx @@ -45,7 +45,7 @@ export default function DocumentDivision() { { - isChecked && + isChecked && { setIsChecked(false) }} /> } ) diff --git a/components/document/menuBottomSelectDocument.tsx b/components/document/menuBottomSelectDocument.tsx index dd07267..05c51fa 100644 --- a/components/document/menuBottomSelectDocument.tsx +++ b/components/document/menuBottomSelectDocument.tsx @@ -2,16 +2,27 @@ import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { useState } from "react"; -import { Pressable, ScrollView, Text, View } from "react-native"; +import { Pressable, ScrollView, Text, ToastAndroid, View } from "react-native"; import { useSharedValue } from "react-native-reanimated"; +import AlertKonfirmasi from "../alertKonfirmasi"; import DrawerBottom from "../drawerBottom"; +import { InputForm } from "../inputForm"; import ItemAccordion from "../itemAccordion"; import ItemDetailMember from "../itemDetailMember"; import MenuItemRow from "../menuItemRow"; +import ModalFloat from "../modalFloat"; +import ModalSelectMultiple from "../modalSelectMultiple"; -export default function MenuBottomSelectDocument() { + +type Props = { + onDone: () => void +} + +export default function MenuBottomSelectDocument({ onDone }: Props) { const [isModal, setModal] = useState(false) const [isInformasi, setInformasi] = useState(false) + const [isRename, setRename] = useState(false) + const [isShare, setShare] = useState(false) const open = useSharedValue(false) const onPress = () => { @@ -33,21 +44,31 @@ export default function MenuBottomSelectDocument() { } title="Hapus" - onPress={() => { }} + onPress={() => { + AlertKonfirmasi({ + title: 'Konfirmasi', + desc: 'Apakah anda yakin ingin menghapus data?', + + onPress: () => { + onDone() + ToastAndroid.show('Berhasil menghapus data', ToastAndroid.SHORT) + } + }) + }} column="many" color="white" /> } title="Ganti Nama" - onPress={() => { }} + onPress={() => { setRename(true) }} column="many" color="white" /> } title="Bagikan" - onPress={() => { }} + onPress={() => { setShare(true) }} column="many" color="white" /> @@ -61,6 +82,16 @@ export default function MenuBottomSelectDocument() { + { + onDone() + ToastAndroid.show('Berhasil mengganti nama dokumen', ToastAndroid.SHORT) + }}> + + + + + + + { + ToastAndroid.show('Success', ToastAndroid.SHORT) + setShare(false) + }} /> ) } \ No newline at end of file diff --git a/components/modalFloat.tsx b/components/modalFloat.tsx new file mode 100644 index 0000000..6280470 --- /dev/null +++ b/components/modalFloat.tsx @@ -0,0 +1,40 @@ +import Styles from '@/constants/Styles'; +import { Pressable, Text, View } from 'react-native'; +import Modal from 'react-native-modal'; + +type Props = { + isVisible: boolean + setVisible: (value: boolean) => void + title?: string + children: React.ReactNode + onSubmit: () => void +} + +export default function ModalFloat({ isVisible, setVisible, title, children, onSubmit }: Props) { + return ( + { setVisible(false) }} + > + + + {title} + + + {children} + + + { setVisible(false) }}> + Batal + + + Simpan + + + + + ) +} \ No newline at end of file diff --git a/components/modalSelectMultiple.tsx b/components/modalSelectMultiple.tsx new file mode 100644 index 0000000..08c722a --- /dev/null +++ b/components/modalSelectMultiple.tsx @@ -0,0 +1,50 @@ +import Styles from "@/constants/Styles" +import { AntDesign } from "@expo/vector-icons" +import { useState } from "react" +import { Pressable, Text, View } from "react-native" +import { ButtonForm } from "./buttonForm" +import DrawerBottom from "./drawerBottom" + +type Props = { + open: boolean + close: (value: boolean) => void + title: string + category: 'share-division' | 'status-task' + choose: string + onSelect: (value: { val: string, label: string }[]) => void +} + +export default function ModalSelectMultiple({ open, close, title, category, choose, onSelect }: Props) { + const [isChoose, setChoose] = useState(choose) + + return ( + + + { + category == 'share-division' ? + <> + { + setChoose('dinas') + close(false) + }}> + Sosial Kemasyarakatan + + + + Kaur Pemerintahan + + + Kasi Kemasyarakatan + + + PKK + + + : + <> + } + + { onSelect([{ val: 'dinas', label: 'Dinas' }]) }} /> + + ) +} \ No newline at end of file diff --git a/constants/Styles.ts b/constants/Styles.ts index e9cb9b4..d14546c 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -137,6 +137,9 @@ const Styles = StyleSheet.create({ ph15: { paddingHorizontal: 15, }, + pv05: { + paddingVertical: 5 + }, pv10: { paddingVertical: 10 }, @@ -427,6 +430,19 @@ const Styles = StyleSheet.create({ justifyContent: 'space-between', paddingVertical: 10, }, + modalFloatContent: { + backgroundColor: 'white', + borderRadius: 18, + paddingTop: 5, + paddingBottom: 10, + paddingHorizontal: 20 + }, + titleContainerModalFloat: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + paddingVertical: 10, + }, wrapBtnTab: { justifyContent: 'space-between', flexDirection: 'row',