Fix Admin
Admin – App Information - app/(application)/admin/app-information/index.tsx - app/(application)/admin/app-information/business-field/[id]/index.tsx Admin Screens - screens/Admin/App-Information/BusinessFieldSection.tsx - screens/Admin/App-Information/InformationBankSection.tsx - screens/Admin/User-Access/ScreenUserAccess.tsx New Admin Screens - screens/Admin/App-Information/ScreenAppInformation.tsx - screens/Admin/App-Information/ScreenBusinessFieldDetail.tsx Shared Components - components/_ShareComponent/Admin/BoxTitlePage.tsx API Service - service/api-admin/api-master-admin.ts Styles - styles/global-styles.ts Docs - docs/prompt-for-qwen-code.md ### No Issue
This commit is contained in:
@@ -1,119 +1,59 @@
|
||||
import {
|
||||
ActionIcon,
|
||||
BadgeCustom,
|
||||
CenterCustom,
|
||||
Grid,
|
||||
LoaderCustom,
|
||||
StackCustom,
|
||||
TextCustom,
|
||||
TextCustom
|
||||
} from "@/components";
|
||||
import { AccentColor } from "@/constants/color-palet";
|
||||
import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
|
||||
import { apiAdminMasterBank } from "@/service/api-admin/api-master-admin";
|
||||
import { FontAwesome5 } from "@expo/vector-icons";
|
||||
import { router, useFocusEffect } from "expo-router";
|
||||
import _ from "lodash";
|
||||
import { useCallback, useState } from "react";
|
||||
import { View } from "react-native";
|
||||
import { Divider } from "react-native-paper";
|
||||
import AdminBasicBox from "@/components/_ShareComponent/Admin/AdminBasicBox";
|
||||
import { router } from "expo-router";
|
||||
|
||||
export default function AdminAppInformation_Bank() {
|
||||
const [listData, setListData] = useState<any | null>(null);
|
||||
const [loadData, setLoadData] = useState(false);
|
||||
|
||||
useFocusEffect(
|
||||
useCallback(() => {
|
||||
loadMasterBank();
|
||||
}, [])
|
||||
);
|
||||
|
||||
const loadMasterBank = async () => {
|
||||
try {
|
||||
setLoadData(true);
|
||||
const response = await apiAdminMasterBank();
|
||||
|
||||
setListData(response.data);
|
||||
} catch (error) {
|
||||
console.log("[ERROR LIST BANK]", error);
|
||||
setListData([]);
|
||||
} finally {
|
||||
setLoadData(false);
|
||||
}
|
||||
interface BankProps {
|
||||
item: {
|
||||
id: string;
|
||||
namaBank: string;
|
||||
namaAkun: string;
|
||||
norek: string;
|
||||
isActive: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
};
|
||||
|
||||
}
|
||||
export default function AdminAppInformation_Bank({
|
||||
item,
|
||||
}: {
|
||||
item: BankProps;
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<StackCustom>
|
||||
<AdminBasicBox
|
||||
onPress={() =>
|
||||
router.push(`/admin/app-information/information-bank/${item.item.id}`)
|
||||
}
|
||||
style={{ marginHorizontal: 10, marginVertical: 5 }}
|
||||
>
|
||||
<Grid>
|
||||
<Grid.Col span={3}>
|
||||
<TextCustom bold align="center">
|
||||
Aksi
|
||||
</TextCustom>
|
||||
<Grid.Col span={8}>
|
||||
<StackCustom gap={"xs"}>
|
||||
<TextCustom bold truncate>
|
||||
{item?.item?.namaBank || "-"}
|
||||
</TextCustom>
|
||||
<TextCustom size={"small"} bold truncate color="gray">
|
||||
{item?.item?.norek || "-"}
|
||||
</TextCustom>
|
||||
</StackCustom>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={3}>
|
||||
<TextCustom bold align="center">
|
||||
Status
|
||||
</TextCustom>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={6}>
|
||||
<TextCustom bold align="center">
|
||||
Nama Bank
|
||||
</TextCustom>
|
||||
<Grid.Col span={4} style={{ alignItems: "flex-end" }}>
|
||||
<CenterCustom>
|
||||
{item?.item?.isActive ? (
|
||||
<BadgeCustom color="green">Aktif</BadgeCustom>
|
||||
) : (
|
||||
<BadgeCustom color="red">Tidak Aktif</BadgeCustom>
|
||||
)}
|
||||
</CenterCustom>
|
||||
</Grid.Col>
|
||||
</Grid>
|
||||
|
||||
<Divider />
|
||||
|
||||
{loadData ? (
|
||||
<LoaderCustom />
|
||||
) : _.isEmpty(listData) ? (
|
||||
<TextCustom align="center">Tidak ada data</TextCustom>
|
||||
) : (
|
||||
<StackCustom>
|
||||
{listData?.map((item: any, index: number) => (
|
||||
<View key={index}>
|
||||
<Grid>
|
||||
<Grid.Col span={3} style={{ alignItems: "center" }}>
|
||||
<ActionIcon
|
||||
icon={
|
||||
<FontAwesome5
|
||||
name="edit"
|
||||
size={ICON_SIZE_BUTTON}
|
||||
color="black"
|
||||
/>
|
||||
}
|
||||
onPress={() => {
|
||||
router.push(
|
||||
`/admin/app-information/information-bank/${item.id}`
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Grid.Col>
|
||||
<Grid.Col
|
||||
span={3}
|
||||
style={{ alignItems: "center", justifyContent: "center" }}
|
||||
>
|
||||
<CenterCustom>
|
||||
<BadgeCustom
|
||||
color={
|
||||
item.isActive
|
||||
? AccentColor.blue
|
||||
: AccentColor.blackgray
|
||||
}
|
||||
>
|
||||
{item.isActive ? "Aktif" : "Tidak Aktif"}
|
||||
</BadgeCustom>
|
||||
</CenterCustom>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={6} style={{ justifyContent: "center" }}>
|
||||
<TextCustom align="center">{item.namaBank}</TextCustom>
|
||||
</Grid.Col>
|
||||
</Grid>
|
||||
</View>
|
||||
))}
|
||||
</StackCustom>
|
||||
)}
|
||||
</StackCustom>
|
||||
</AdminBasicBox>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user