"use client"; import { MODEL_DATA_BANK } from "@/app_modules/investasi/_lib/interface"; import { ActionIcon, Button, Center, Grid, Group, Modal, Paper, ScrollArea, Stack, Switch, Table, Text, TextInput, Title, Tooltip } from "@mantine/core"; import { IconCirclePlus, IconEdit } from "@tabler/icons-react"; import _ from "lodash"; import { useState } from "react"; import { ComponentAdminGlobal_NotifikasiBerhasil } from "../../_admin_global/admin_notifikasi/notifikasi_berhasil"; import { ComponentAdminGlobal_NotifikasiGagal } from "../../_admin_global/admin_notifikasi/notifikasi_gagal"; import adminAppInformation_createBank from "../fun/create/fun_create_new_bank"; import adminAppInformation_getMasterBank from "../fun/master/get_list_bank"; import adminAppInformation_updateStatusBankById from "../fun/update/fun_udpate_status_bank"; import adminAppInformation_updateDataBankById from "../fun/update/fun_update_data_bank"; export default function InformasiBank({ listBank, }: { listBank: MODEL_DATA_BANK[]; }) { const [data, setData] = useState(listBank); const [isCreate, setIsCreate] = useState(false); const [newData, setNewData] = useState({ name: "", norek: "", }); const [isUpdate, setIsUpdate] = useState(false); const [updateData, setUpdateData] = useState({ id: "", name: "", norek: "", }); const [isActivation, setIsActivation] = useState(false); const [updateStatus, setUpdateStatus] = useState({ id: "", active: "", }); const [checked, setChecked] = useState(false); async function onCreate() { const create = await adminAppInformation_createBank({ data: newData }); if (create.status === 200) { const loadData = await adminAppInformation_getMasterBank(); setData(loadData); ComponentAdminGlobal_NotifikasiBerhasil(create.message); } else { ComponentAdminGlobal_NotifikasiGagal(create.message); } setIsCreate(false); } async function onUpdate() { const updt = await adminAppInformation_updateDataBankById({ data: updateData as any, }); if (updt.status === 200) { const loadData = await adminAppInformation_getMasterBank(); setData(loadData); ComponentAdminGlobal_NotifikasiBerhasil(updt.message); setIsUpdate(false); } else { ComponentAdminGlobal_NotifikasiGagal(updt.message); } } async function onUpdateActivation({ id, value, }: { id: string; value: boolean; }) { const data = { id: id, active: value, }; const updt = await adminAppInformation_updateStatusBankById({ data: data as any, }); if (updt.status === 200) { const loadData = await adminAppInformation_getMasterBank(); setData(loadData); ComponentAdminGlobal_NotifikasiBerhasil(updt.message); setIsActivation(false); } else { ComponentAdminGlobal_NotifikasiGagal(updt.message); } } const rowTable = _.isEmpty(data) ? (
Tidak ada data
) : ( data.map((e, i) => (
{e?.name}
{e?.norek}
{ setIsActivation(true); setUpdateStatus({ id: e?.id, active: val.currentTarget.checked as any, }); }} />
{ setIsUpdate(true); setIsCreate(false); setUpdateData({ id: e?.id, name: e?.name, norek: e?.norek, }); }} > )) ); return ( <> Informasi Bank {rowTable}
Nama Bank
Nomor Rekening
Status
Aksi
{/*
{ // onPageClick(val); // }} />
*/}
{isCreate ? (
Tambah Daftar Bank
{ setNewData({ ...newData, name: val.currentTarget.value, }); }} /> { setNewData({ ...newData, norek: val.currentTarget.value, }); }} />
) : ( "" )} {isUpdate ? (
Update Data Bank
{ const value = val.currentTarget.value; setUpdateData({ ...updateData, name: value }); }} /> { const value = val.currentTarget.value; setUpdateData({ ...updateData, norek: value }); }} />
) : ( "" )}
{/* Activasi bank */} setIsActivation(false)} > Anda ingin{" "} {updateStatus.active ? ( <Text span inherit> mengaktifkan </Text> ) : ( <Text span inherit> menonaktifkan </Text> )}{" "} Bank ini ? ); }