upd: modal konfirmasi

Deskripsi:
- menerapkan semua modal baru pada semua fitur

No Issues''
This commit is contained in:
2026-02-14 14:01:41 +08:00
parent 10212aa5de
commit 039b26f5aa
31 changed files with 718 additions and 245 deletions

View File

@@ -9,7 +9,7 @@ import { useState } from "react"
import { View } from "react-native"
import Toast from "react-native-toast-message"
import { useDispatch, useSelector } from "react-redux"
import AlertKonfirmasi from "../alertKonfirmasi"
import ModalConfirmation from "../ModalConfirmation"
import ButtonMenuHeader from "../buttonMenuHeader"
import DrawerBottom from "../drawerBottom"
import MenuItemRow from "../menuItemRow"
@@ -25,6 +25,8 @@ export default function HeaderRightDiscussionDetail({ id, status, isActive }: Pr
const [isVisible, setVisible] = useState(false)
const { token, decryptToken } = useAuthSession()
const update = useSelector((state: any) => state.discussionUpdate)
const [showModal, setShowModal] = useState(false)
const [modalConfig, setModalConfig] = useState({ title: '', message: '', onConfirm: () => { } })
const dispatch = useDispatch()
const handleOpenClose = async () => {
@@ -86,13 +88,14 @@ export default function HeaderRightDiscussionDetail({ id, status, isActive }: Pr
title={status == 1 ? 'Tutup Diskusi' : 'Buka Diskusi'}
onPress={() => {
setVisible(false)
AlertKonfirmasi({
title: 'Konfirmasi',
desc: `Apakah anda yakin ingin ${status == 1 ? 'menutup' : 'membuka'} diskusi?`,
onPress: () => {
handleOpenClose()
}
})
setTimeout(() => {
setModalConfig({
title: 'Konfirmasi',
message: `Apakah anda yakin ingin ${status == 1 ? 'menutup' : 'membuka'} diskusi?`,
onConfirm: () => handleOpenClose()
})
setShowModal(true)
}, 600)
}}
/>
</>
@@ -102,17 +105,31 @@ export default function HeaderRightDiscussionDetail({ id, status, isActive }: Pr
title={isActive ? 'Arsipkan' : 'Aktifkan Diskusi'}
onPress={() => {
setVisible(false)
AlertKonfirmasi({
title: 'Konfirmasi',
desc: isActive ? 'Apakah anda yakin ingin mengarsipkan diskusi?' : 'Apakah anda yakin ingin mengaktifkan diskusi?',
onPress: () => {
handleArchive()
}
})
setTimeout(() => {
setModalConfig({
title: 'Konfirmasi',
message: isActive ? 'Apakah anda yakin ingin mengarsipkan diskusi?' : 'Apakah anda yakin ingin mengaktifkan diskusi?',
onConfirm: () => handleArchive()
})
setShowModal(true)
}, 600)
}}
/>
</View>
</DrawerBottom>
<ModalConfirmation
visible={showModal}
title={modalConfig.title}
message={modalConfig.message}
onConfirm={() => {
setShowModal(false)
modalConfig.onConfirm()
}}
onCancel={() => setShowModal(false)}
confirmText="Ya"
cancelText="Batal"
/>
</>
)
}