fix(FE-169-177): Allow Drafted Marketing to be rejected

This commit is contained in:
randy-ar
2025-11-21 13:33:40 +07:00
parent 70521330e4
commit b7c3b9313c
4 changed files with 57 additions and 55 deletions
@@ -183,14 +183,18 @@ const MarketingTable = () => {
);
const hasApprovable = selectedRowsData.some(
(row) => row.latest_approval.step_number === 1
(row) =>
row.latest_approval.step_number === 1 &&
row.latest_approval.action !== 'REJECTED'
);
const hasRejectable = selectedRowsData.some(
(row) => row.latest_approval.step_number === 2
(row) =>
row.latest_approval.step_number === 1 &&
row.latest_approval.action !== 'REJECTED'
);
const disableApprove = !hasApprovable || hasRejectable;
// const disableReject = !hasRejectable || hasApprovable;
const disableApprove = !hasApprovable;
const disableReject = !hasRejectable;
const idsToProcess =
approveAction === 'APPROVED'
@@ -204,15 +208,9 @@ const MarketingTable = () => {
const approveMarketingHandler = async (notes: string) => {
let idsToProcess: number[] = [];
if (approveAction === 'APPROVED') {
idsToProcess = selectedRowsData
.filter((row) => row.latest_approval.step_number === 1)
.map((row) => row.id);
} else if (approveAction === 'REJECTED') {
idsToProcess = selectedRowsData
.filter((row) => row.latest_approval.step_number === 2)
.map((row) => row.id);
}
idsToProcess = selectedRowsData
.filter((row) => row.latest_approval.step_number === 1)
.map((row) => row.id);
if (idsToProcess.length === 0) {
toast.error(`Tidak ada data yang valid untuk di ${approveAction}.`);
@@ -263,8 +261,8 @@ const MarketingTable = () => {
});
const getRowCanSelect = (row: Row<Marketing>): boolean => {
const step = row.original.latest_approval?.step_number;
return step === 1;
const approval = row.original.latest_approval;
return approval?.step_number === 1 && approval?.action !== 'REJECTED';
};
return (
@@ -298,7 +296,7 @@ const MarketingTable = () => {
Approve
</Button>
{/* <Button
<Button
color='error'
onClick={rejectClickHandler}
className='justify-start text-sm'
@@ -306,7 +304,7 @@ const MarketingTable = () => {
>
<Icon icon='material-symbols:close' width={24} height={24} />
Reject
</Button> */}
</Button>
</div>
</div>
<Table