deskripsi
Fix: page event/id/deteil menjadi event/id/status Feature: Add screens/Event/AlertButtonStatusSection Add app/(application)/(user)/event/[id]/[status]/ # No Issue"
This commit is contained in:
115
screens/Event/AlertButtonStatusSection.tsx
Normal file
115
screens/Event/AlertButtonStatusSection.tsx
Normal file
@@ -0,0 +1,115 @@
|
||||
import AlertCustom from "@/components/Alert/AlertCustom";
|
||||
import { router } from "expo-router";
|
||||
|
||||
export default function Event_AlertButtonStatusSection({
|
||||
id,
|
||||
status,
|
||||
openAlert,
|
||||
setOpenAlert,
|
||||
openDeleteAlert,
|
||||
setOpenDeleteAlert,
|
||||
}: {
|
||||
id: string;
|
||||
status: string;
|
||||
openAlert: boolean;
|
||||
setOpenAlert: (value: boolean) => void;
|
||||
openDeleteAlert: boolean;
|
||||
setOpenDeleteAlert: (value: boolean) => void;
|
||||
}) {
|
||||
// --- Alert untuk aksi berdasarkan status ---
|
||||
const renderStatusAlert = () => {
|
||||
switch (status) {
|
||||
case "publish":
|
||||
return <></>;
|
||||
|
||||
case "review":
|
||||
return (
|
||||
<AlertCustom
|
||||
isVisible={openAlert}
|
||||
title="Batalkan Review"
|
||||
message="Apakah Anda yakin ingin membatalkan review?"
|
||||
textLeft="Batal"
|
||||
textRight="Ya"
|
||||
colorRight="green"
|
||||
onLeftPress={() => {
|
||||
setOpenAlert(false);
|
||||
}}
|
||||
onRightPress={() => {
|
||||
setOpenAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
case "draft":
|
||||
return (
|
||||
<AlertCustom
|
||||
isVisible={openAlert}
|
||||
title="Ajukan Review ?"
|
||||
message="Apakah Anda yakin ingin mengajukan review kembali?"
|
||||
textLeft="Batal"
|
||||
textRight="Ya"
|
||||
colorRight="green"
|
||||
onLeftPress={() => {
|
||||
setOpenAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
onRightPress={() => {
|
||||
setOpenAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
case "reject":
|
||||
return (
|
||||
<AlertCustom
|
||||
isVisible={openAlert}
|
||||
title="Edit Kembali"
|
||||
message="Apakah Anda yakin ingin mengedit kembali event ini?"
|
||||
textLeft="Batal"
|
||||
textRight="Ya"
|
||||
colorRight="green"
|
||||
onLeftPress={() => {
|
||||
setOpenAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
onRightPress={() => {
|
||||
setOpenAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* Alert berdasarkan status */}
|
||||
{renderStatusAlert()}
|
||||
|
||||
{/* Alert untuk hapus - selalu muncul jika openDeleteAlert true */}
|
||||
<AlertCustom
|
||||
isVisible={openDeleteAlert}
|
||||
title="Hapus Event"
|
||||
message="Apakah Anda yakin ingin menghapus event ini?"
|
||||
textLeft="Batal"
|
||||
textRight="Ya, Hapus"
|
||||
colorRight="red"
|
||||
onLeftPress={() => {
|
||||
setOpenDeleteAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
onRightPress={() => {
|
||||
// Aksi hapus event
|
||||
console.log("Menghapus event dengan ID:", id);
|
||||
setOpenDeleteAlert(false);
|
||||
router.back();
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,19 +1,76 @@
|
||||
import { ButtonCustom } from "@/components";
|
||||
import { ButtonCustom, Grid } from "@/components";
|
||||
import { View } from "react-native";
|
||||
|
||||
export default function Event_ButtonStatusSection({
|
||||
detail,
|
||||
status,
|
||||
onOpenAlert,
|
||||
onOpenDeleteAlert,
|
||||
}: {
|
||||
detail: string;
|
||||
status: string;
|
||||
onOpenAlert: (value: boolean) => void;
|
||||
onOpenDeleteAlert: (value: boolean) => void;
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
{detail && detail === "draft" && (
|
||||
<View>
|
||||
<ButtonCustom>Ajukan Review</ButtonCustom>
|
||||
<ButtonCustom backgroundColor="red">Hapus</ButtonCustom>
|
||||
</View>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
|
||||
const handleOpenAlert = () => {
|
||||
onOpenAlert(true);
|
||||
};
|
||||
|
||||
const handleOpenDeleteAlert = () => {
|
||||
onOpenDeleteAlert(true);
|
||||
};
|
||||
|
||||
const DeleteButton = () => {
|
||||
return (
|
||||
<>
|
||||
<ButtonCustom backgroundColor="red" textColor="white" onPress={handleOpenDeleteAlert}>
|
||||
Hapus
|
||||
</ButtonCustom>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
switch (status) {
|
||||
case "publish":
|
||||
return <></>;
|
||||
|
||||
case "review":
|
||||
return (
|
||||
<ButtonCustom onPress={handleOpenAlert}>
|
||||
Batalkan Review
|
||||
</ButtonCustom>
|
||||
);
|
||||
|
||||
case "draft":
|
||||
return (
|
||||
<>
|
||||
<Grid>
|
||||
<Grid.Col span={5}>
|
||||
<ButtonCustom onPress={handleOpenAlert}>Ajukan Review</ButtonCustom>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={2}>
|
||||
<View />
|
||||
</Grid.Col>
|
||||
<Grid.Col span={5}>{DeleteButton()}</Grid.Col>
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
|
||||
case "reject":
|
||||
return (
|
||||
<>
|
||||
<Grid>
|
||||
<Grid.Col span={5}>
|
||||
<ButtonCustom onPress={handleOpenAlert}>Edit Kembali</ButtonCustom>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={2}>
|
||||
<View />
|
||||
</Grid.Col>
|
||||
<Grid.Col span={5}>{DeleteButton()}</Grid.Col>
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
|
||||
default:
|
||||
return <ButtonCustom disabled>Status Undifined</ButtonCustom>;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user