diff --git a/app/(application)/admin/_layout.tsx b/app/(application)/admin/_layout.tsx index bd4383c..f707bd4 100644 --- a/app/(application)/admin/_layout.tsx +++ b/app/(application)/admin/_layout.tsx @@ -9,7 +9,7 @@ import { import DrawerAdmin from "@/components/Drawer/DrawerAdmin"; import NavbarMenu from "@/components/Drawer/NavbarMenu"; import { AccentColor, MainColor } from "@/constants/color-palet"; -import { ICON_SIZE_SMALL } from "@/constants/constans-value"; +import { ICON_SIZE_MEDIUM, ICON_SIZE_SMALL, ICON_SIZE_XLARGE } from "@/constants/constans-value"; import { adminListMenu } from "@/screens/Admin/listPageAdmin"; import { GStyles } from "@/styles/global-styles"; import { FontAwesome6, Ionicons } from "@expo/vector-icons"; @@ -33,7 +33,7 @@ export default function AdminLayout() { headerLeft: () => ( setOpenDrawerNavbar(true)} /> @@ -41,7 +41,7 @@ export default function AdminLayout() { headerRight: () => ( setOpenDrawerUser(true)} /> diff --git a/app/(application)/admin/app-information/business-field/[id]/index.tsx b/app/(application)/admin/app-information/business-field/[id]/index.tsx new file mode 100644 index 0000000..340b7ce --- /dev/null +++ b/app/(application)/admin/app-information/business-field/[id]/index.tsx @@ -0,0 +1,36 @@ +import { + BoxButtonOnFooter, + ButtonCustom, + StackCustom, + TextInputCustom, + ViewWrapper, +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { router } from "expo-router"; + +export default function AdminAppInformation_BusinessFieldDetail() { + const buttonSubmit = ( + + router.back()} + > + Update + + + ); + return ( + <> + + + + + + + + + ); +} diff --git a/app/(application)/admin/app-information/business-field/create.tsx b/app/(application)/admin/app-information/business-field/create.tsx new file mode 100644 index 0000000..205542c --- /dev/null +++ b/app/(application)/admin/app-information/business-field/create.tsx @@ -0,0 +1,36 @@ +import { + BoxButtonOnFooter, + ButtonCustom, + StackCustom, + TextInputCustom, + ViewWrapper, +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { router } from "expo-router"; + +export default function AdminAppInformation_BusinessFieldCreate() { + const buttonSubmit = ( + + router.back()} + > + Tambah + + + ); + return ( + <> + + + + + + + + + ); +} diff --git a/app/(application)/admin/app-information/index.tsx b/app/(application)/admin/app-information/index.tsx index 213ad29..abfe6d7 100644 --- a/app/(application)/admin/app-information/index.tsx +++ b/app/(application)/admin/app-information/index.tsx @@ -1,42 +1,37 @@ import { + ActionIcon, ScrollableCustom, - ViewWrapper + StackCustom, + ViewWrapper, } from "@/components"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import { ICON_SIZE_SMALL } from "@/constants/constans-value"; import AdminAppInformation_BusinessFieldSection from "@/screens/Admin/App-Information/BusinessFieldSection"; import AdminAppInformation_Bank from "@/screens/Admin/App-Information/InformationBankSection"; import AdminAppInformation_StickerSection from "@/screens/Admin/App-Information/StickerSection"; +import { Ionicons } from "@expo/vector-icons"; +import { router } from "expo-router"; import { useState } from "react"; +import { View } from "react-native"; export default function AdminInformation() { const [activeCategory, setActiveCategory] = useState("bank"); + const [activePage, setActivePage] = useState("Informasi Bank"); const handlePress = (item: any) => { setActiveCategory(item.value); + setActivePage(item.label); // tambahkan logika lain seperti filter dsb. }; const scrollComponent = ( - + + + ); const renderContent = () => { @@ -55,8 +50,47 @@ export default function AdminInformation() { return ( <> + + + } + onPress={() => { + if (activeCategory === "bank") { + router.push("/admin/app-information/information-bank/create"); + } else if (activeCategory === "business") { + router.push("/admin/app-information/business-field/create"); + } else if (activeCategory === "sticker") { + router.push("/admin/app-information/sticker/create"); + } + }} + /> + + } + /> {renderContent()} ); } + +const listPage = [ + { + id: "1", + label: "Informasi Bank", + value: "bank", + }, + { + id: "2", + label: "Bidang Bisnis", + value: "business", + }, + { + id: "3", + label: "Stiker", + value: "sticker", + }, +]; diff --git a/app/(application)/admin/app-information/information-bank/[id]/index.tsx b/app/(application)/admin/app-information/information-bank/[id]/index.tsx new file mode 100644 index 0000000..b4033ff --- /dev/null +++ b/app/(application)/admin/app-information/information-bank/[id]/index.tsx @@ -0,0 +1,50 @@ +import { + BoxButtonOnFooter, + ButtonCustom, + StackCustom, + TextInputCustom, + ViewWrapper, +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { router } from "expo-router"; + +export default function AdminAppInformation_BankDetail() { + const buttonSubmit = ( + + router.back()} + > + Update + + + ); + return ( + <> + + + + + + + + + + + + + + + ); +} diff --git a/app/(application)/admin/app-information/information-bank/create.tsx b/app/(application)/admin/app-information/information-bank/create.tsx new file mode 100644 index 0000000..1e6609b --- /dev/null +++ b/app/(application)/admin/app-information/information-bank/create.tsx @@ -0,0 +1,50 @@ +import { + BoxButtonOnFooter, + ButtonCustom, + StackCustom, + TextInputCustom, + ViewWrapper +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { router } from "expo-router"; + +export default function AdminAppInformation_BankCreate() { + const buttonSubmit = ( + + router.back()} + > + Tambah + + + ); + return ( + <> + + + + + + + + + + + + + + + ); +} diff --git a/app/(application)/admin/app-information/sticker/[id]/index.tsx b/app/(application)/admin/app-information/sticker/[id]/index.tsx new file mode 100644 index 0000000..5dd97e5 --- /dev/null +++ b/app/(application)/admin/app-information/sticker/[id]/index.tsx @@ -0,0 +1,80 @@ +import { + BoxButtonOnFooter, + ButtonCenteredOnly, + ButtonCustom, + CheckboxCustom, + CheckboxGroup, + LandscapeFrameUploaded, + SelectCustom, + Spacing, + StackCustom, + TextCustom, + ViewWrapper, +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { dummyMasterEmotions } from "@/lib/dummy-data/_master/emotions"; +import { router } from "expo-router"; +import { useState } from "react"; +import { View } from "react-native"; + +export default function AdminAppInformation_StickerCreate() { + const [value, setValue] = useState(null); + const [selectedEmotions, setSelectedEmotions] = useState([]); + + const buttonSubmit = ( + + router.back()}>Update + + ); + return ( + <> + + + + + + + {}}> + Upload + + + + setValue(value as string)} + /> + + + Pilih Emosi Stiker + * + + + + setSelectedEmotions(value as string[])} + > + + {dummyMasterEmotions.map((e) => ( + {e.label}} + valueKey={e.id} + /> + ))} + + + + + + + + ); +} diff --git a/app/(application)/admin/app-information/sticker/create.tsx b/app/(application)/admin/app-information/sticker/create.tsx new file mode 100644 index 0000000..22294dd --- /dev/null +++ b/app/(application)/admin/app-information/sticker/create.tsx @@ -0,0 +1,84 @@ +import { + BoxButtonOnFooter, + ButtonCenteredOnly, + ButtonCustom, + CheckboxCustom, + CheckboxGroup, + LandscapeFrameUploaded, + SelectCustom, + Spacing, + StackCustom, + TextCustom, + ViewWrapper +} from "@/components"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import { dummyMasterEmotions } from "@/lib/dummy-data/_master/emotions"; +import { router } from "expo-router"; +import { useState } from "react"; +import { View } from "react-native"; + +export default function AdminAppInformation_StickerCreate() { + const [value, setValue] = useState(null); + const [selectedEmotions, setSelectedEmotions] = useState([]); + + const buttonSubmit = ( + + router.back()} + > + Tambah + + + ); + return ( + <> + + + + + + + {}}> + Upload + + + + setValue(value as string)} + /> + + + Pilih Emosi Stiker + * + + + + setSelectedEmotions(value as string[])} + > + + {dummyMasterEmotions.map((e) => ( + {e.label}} + valueKey={e.id} + /> + ))} + + + + + + + + ); +} diff --git a/app/(application)/admin/user-access.tsx b/app/(application)/admin/user-access.tsx new file mode 100644 index 0000000..8176c9d --- /dev/null +++ b/app/(application)/admin/user-access.tsx @@ -0,0 +1,117 @@ +import { + ButtonCustom, + Divider, + Grid, + SearchInput, + StackCustom, + TextCustom, + ViewWrapper +} from "@/components"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_MEDIUM } from "@/constants/constans-value"; +import { Ionicons } from "@expo/vector-icons"; + +export default function AdminUserAccess() { + const rightComponent = () => { + return ( + <> + + + ); + }; + return ( + <> + + } + > + + + Aksi + + + Username + + + Nomor + + + + + + + {Array.from({ length: 10 }).map((_, index) => ( + + + + + } + onPress={() => {}} + backgroundColor={ + index % 2 === 0 ? MainColor.green : MainColor.red + } + > + + {index % 2 === 0 ? "Berikan Akses" : "Hapus Akses"} + + + + + + + Useraname + + + + + 08123456789 + + + + ))} + + + + ); +} diff --git a/components/ActionIcon/ActionIcon.tsx b/components/ActionIcon/ActionIcon.tsx new file mode 100644 index 0000000..2988657 --- /dev/null +++ b/components/ActionIcon/ActionIcon.tsx @@ -0,0 +1,59 @@ +import { MainColor } from "@/constants/color-palet"; +import { Href, router } from "expo-router"; +import { DimensionValue, TouchableOpacity } from "react-native"; + +type SizeType = "xs" | "sm" | "md" | "lg" | "xl" | number | string | undefined; + +export default function ActionIcon({ + href, + onPress, + icon, + size = "md", +}: { + href?: Href; + onPress?: () => void; + icon: React.ReactNode; + size?: SizeType; +}) { + const sizeMap = { + xs: 22, + sm: 26, + md: 30, + lg: 34, + xl: 38, + }; + + const getSize = (size: SizeType): DimensionValue => { + if (!size) return sizeMap.md; // Default to 'md' if size is undefined + if (typeof size === 'string' && size in sizeMap) { + return sizeMap[size as keyof typeof sizeMap]; + } + return size as DimensionValue; + }; + + const iconSize = getSize(size); + + return ( + { + if (href) { + router.push(href); + } else { + onPress?.(); + } + }} + > + {icon} + + ); +} diff --git a/components/Checkbox/CheckboxCustom.tsx b/components/Checkbox/CheckboxCustom.tsx index 1c9a2f4..3f8ebca 100644 --- a/components/Checkbox/CheckboxCustom.tsx +++ b/components/Checkbox/CheckboxCustom.tsx @@ -1,4 +1,4 @@ -import { AccentColor } from "@/constants/color-palet"; +import { AccentColor, MainColor } from "@/constants/color-palet"; import { MaterialIcons } from "@expo/vector-icons"; // Bisa diganti dengan ikon lain import React, { useContext } from "react"; import { Animated, Text, TouchableOpacity, View } from "react-native"; @@ -17,7 +17,7 @@ const CheckboxGroupContext = // Tipe props // Tambahkan prop baru: groupValueKey interface CheckboxProps { - label?: string; + label?: string | React.ReactNode; description?: string; error?: string; value?: boolean; // controlled value (untuk standalone) @@ -39,7 +39,7 @@ const CheckboxCustom: React.FC = ({ onChange, disabled: propDisabled, size = 20, - color = AccentColor.softblue, + color = MainColor.yellow, style, component, valueKey, diff --git a/components/_ShareComponent/Admin/BackButton.tsx b/components/_ShareComponent/Admin/BackButton.tsx new file mode 100644 index 0000000..5baedd5 --- /dev/null +++ b/components/_ShareComponent/Admin/BackButton.tsx @@ -0,0 +1,13 @@ +import ActionIcon from "@/components/ActionIcon/ActionIcon"; +import { MainColor } from "@/constants/color-palet"; +import { Ionicons } from "@expo/vector-icons"; +import { router } from "expo-router"; + +export default function AdminBackButton() { + return ( + } + onPress={() => router.back()} + /> + ); +} \ No newline at end of file diff --git a/components/_ShareComponent/Admin/BackButtonAntTitle.tsx b/components/_ShareComponent/Admin/BackButtonAntTitle.tsx new file mode 100644 index 0000000..c0751de --- /dev/null +++ b/components/_ShareComponent/Admin/BackButtonAntTitle.tsx @@ -0,0 +1,31 @@ +import Grid from "@/components/Grid/GridCustom"; +import TextCustom from "@/components/Text/TextCustom"; +import { View } from "react-native"; +import AdminBackButton from "./BackButton"; + +export default function AdminBackButtonAntTitle({ + title, +}: { + title: string; +}) { + return ( + <> + + + + + + + {title} + + + + + + + + ); +} \ No newline at end of file diff --git a/components/_ShareComponent/Admin/BoxTitlePage.tsx b/components/_ShareComponent/Admin/BoxTitlePage.tsx index 1e97491..fe7160c 100644 --- a/components/_ShareComponent/Admin/BoxTitlePage.tsx +++ b/components/_ShareComponent/Admin/BoxTitlePage.tsx @@ -1,15 +1,51 @@ import BaseBox from "@/components/Box/BaseBox"; +import Grid from "@/components/Grid/GridCustom"; import TextCustom from "@/components/Text/TextCustom"; import { TEXT_SIZE_LARGE } from "@/constants/constans-value"; -export default function AdminComp_BoxTitle({ title , rightComponent}: { title: string , rightComponent?: React.ReactNode}) { +export default function AdminComp_BoxTitle({ + title, + rightComponent, +}: { + title: string; + rightComponent?: React.ReactNode; +}) { return ( <> - - + + {/* {title} - {rightComponent} + {rightComponent} */} + + + + + {title} + + + + {rightComponent} + + ); diff --git a/components/index.ts b/components/index.ts index beec144..845ce36 100644 --- a/components/index.ts +++ b/components/index.ts @@ -1,6 +1,8 @@ // Alert import AlertCustom from "./Alert/AlertCustom"; import AlertDefaultSystem from "./Alert/AlertDefaultSystem"; +// ActionIcon +import ActionIcon from "./ActionIcon/ActionIcon"; // Button import LeftButtonCustom from "./Button/BackButton"; import ButtonCenteredOnly from "./Button/ButtonCenteredOnly"; @@ -60,6 +62,9 @@ import GridComponentView from "./_ShareComponent/GridSectionView"; import ProgressCustom from "./Progress/ProgressCustom"; export { + // ActionIcon + ActionIcon, + // Alert AlertCustom, AlertDefaultSystem, // Image diff --git a/constants/constans-value.ts b/constants/constans-value.ts index f58de34..e90f632 100644 --- a/constants/constans-value.ts +++ b/constants/constans-value.ts @@ -8,11 +8,13 @@ export { TEXT_SIZE_MEDIUM, TEXT_SIZE_LARGE, TEXT_SIZE_XLARGE, - ICON_SIZE_SMALL, - ICON_SIZE_MEDIUM, + ICON_SIZE_XLARGE as ICON_SIZE_XLARGE, + ICON_SIZE_LARGE as ICON_SIZE_MEDIUM, + ICON_SIZE_MEDIUM as ICON_SIZE_SMALL, + ICON_SIZE_XSMALL as ICON_SIZE_XSMALL, + ICON_SIZE_SMALLL as ICON_SIZE_BUTTON, DRAWER_HEIGHT, RADIUS_BUTTON, - ICON_SIZE_BUTTON, PADDING_EXTRA_SMALL, PADDING_SMALL, PADDING_MEDIUM, @@ -31,9 +33,11 @@ const TEXT_SIZE_LARGE = 16; const TEXT_SIZE_XLARGE = 18; // Icon Size -const ICON_SIZE_BUTTON = 18 -const ICON_SIZE_SMALL = 20; -const ICON_SIZE_MEDIUM = 24; +const ICON_SIZE_XSMALL = 10 +const ICON_SIZE_SMALLL = 14 +const ICON_SIZE_MEDIUM = 18; +const ICON_SIZE_LARGE = 22; +const ICON_SIZE_XLARGE = 26; // Drawer Height const DRAWER_HEIGHT = 500; // tinggi drawer5 diff --git a/lib/dummy-data/_master/emotions.ts b/lib/dummy-data/_master/emotions.ts new file mode 100644 index 0000000..23ead44 --- /dev/null +++ b/lib/dummy-data/_master/emotions.ts @@ -0,0 +1,123 @@ +export const dummyMasterEmotions = [ + { + id: 1, + label: "Senang", + value: "senang", + isActive: true, + createdAt: "2025-06-16T09:57:16.726Z", + updatedAt: "2025-06-16T09:57:16.726Z", + }, + { + id: 2, + label: "Sedih", + value: "sedih", + isActive: true, + createdAt: "2025-06-16T09:57:16.730Z", + updatedAt: "2025-06-16T09:57:16.730Z", + }, + { + id: 15, + label: "Takut", + value: "takut", + isActive: true, + createdAt: "2025-06-16T09:57:16.730Z", + updatedAt: "2025-06-16T09:57:16.730Z", + }, + { + id: 6, + label: "Marah", + value: "marah", + isActive: true, + createdAt: "2025-06-16T09:57:16.730Z", + updatedAt: "2025-06-16T09:57:16.730Z", + }, + { + id: 8, + label: "Terkejut", + value: "terkejut", + isActive: true, + createdAt: "2025-06-16T09:57:16.730Z", + updatedAt: "2025-06-16T09:57:16.730Z", + }, + { + id: 14, + label: "Malas", + value: "malas", + isActive: true, + createdAt: "2025-06-16T09:57:16.730Z", + updatedAt: "2025-06-16T09:57:16.730Z", + }, + { + id: 7, + label: "Penasaran", + value: "penasaran", + isActive: true, + createdAt: "2025-06-16T09:57:16.731Z", + updatedAt: "2025-06-16T09:57:16.731Z", + }, + { + id: 3, + label: "Cinta", + value: "cinta", + isActive: true, + createdAt: "2025-06-16T09:57:16.731Z", + updatedAt: "2025-06-16T09:57:16.731Z", + }, + { + id: 4, + label: "Bangga", + value: "bangga", + isActive: true, + createdAt: "2025-06-16T09:57:16.731Z", + updatedAt: "2025-06-16T09:57:16.731Z", + }, + { + id: 5, + label: "Malu", + value: "malu", + isActive: true, + createdAt: "2025-06-16T09:57:16.731Z", + updatedAt: "2025-06-16T09:57:16.731Z", + }, + { + id: 11, + label: "Kesal", + value: "kesal", + isActive: true, + createdAt: "2025-06-16T09:57:16.732Z", + updatedAt: "2025-06-16T09:57:16.732Z", + }, + { + id: 9, + label: "Bingung", + value: "bingung", + isActive: true, + createdAt: "2025-06-16T09:57:16.732Z", + updatedAt: "2025-06-16T09:57:16.732Z", + }, + { + id: 10, + label: "Kaget", + value: "kaget", + isActive: true, + createdAt: "2025-06-16T09:57:16.732Z", + updatedAt: "2025-06-16T09:57:16.732Z", + }, + { + id: 12, + label: "Iri", + value: "iri", + isActive: true, + createdAt: "2025-06-16T09:57:16.732Z", + updatedAt: "2025-06-16T09:57:16.732Z", + }, + { + id: 13, + label: "Lega", + value: "lega", + isActive: true, + createdAt: "2025-06-16T09:57:16.733Z", + updatedAt: "2025-06-16T09:57:16.733Z", + }, +]; + \ No newline at end of file diff --git a/screens/Admin/App-Information/BusinessFieldSection.tsx b/screens/Admin/App-Information/BusinessFieldSection.tsx index 949fec4..52e0e97 100644 --- a/screens/Admin/App-Information/BusinessFieldSection.tsx +++ b/screens/Admin/App-Information/BusinessFieldSection.tsx @@ -1,9 +1,83 @@ -import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import { + ActionIcon, + Grid, + StackCustom, + TextCustom +} from "@/components"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import dummyMasterBidangBisnis from "@/lib/dummy-data/master-bidang-bisnis"; +import { FontAwesome5 } from "@expo/vector-icons"; +import { router } from "expo-router"; +import { useState } from "react"; +import { View } from "react-native"; +import { Divider, Switch } from "react-native-paper"; export default function AdminAppInformation_BusinessFieldSection() { + const [value, setValue] = useState(false); + const [selectedBusinessField, setSelectedBusinessField] = useState(null); return ( <> - + <> + + + Aksi + + + Status + + + Nama Bidang Bisnis + + + + + + + + {dummyMasterBidangBisnis.map((e, i) => ( + + + + + } + onPress={() => { + router.push(`/admin/app-information/business-field/${i}`); + }} + /> + + + { + setValue(!value); + setSelectedBusinessField(i); + }} + theme={{ + colors: { + primary: MainColor.yellow, + }, + }} + /> + + + {e.name} + + + + + ))} + + ); } diff --git a/screens/Admin/App-Information/InformationBankSection.tsx b/screens/Admin/App-Information/InformationBankSection.tsx index eab8ea9..2289c86 100644 --- a/screens/Admin/App-Information/InformationBankSection.tsx +++ b/screens/Admin/App-Information/InformationBankSection.tsx @@ -1,95 +1,77 @@ -import { - BaseBox, - ButtonCustom, - Divider, - Grid, - TextCustom -} from "@/components"; -import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import { ActionIcon, Grid, StackCustom, TextCustom } from "@/components"; import { MainColor } from "@/constants/color-palet"; -import { ICON_SIZE_SMALL } from "@/constants/constans-value"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; import { dummyMasterBank } from "@/lib/dummy-data/_master/bank"; -import { FontAwesome5, Ionicons } from "@expo/vector-icons"; +import { FontAwesome5 } from "@expo/vector-icons"; +import { router } from "expo-router"; import { useState } from "react"; -import { TouchableOpacity, View } from "react-native"; -import { Switch } from "react-native-paper"; +import { View } from "react-native"; +import { Divider, Switch } from "react-native-paper"; export default function AdminAppInformation_Bank() { const [value, setValue] = useState(false); return ( <> - {}} - > - - - } - /> - + <> - + Aksi - + Status - + Nama Bank - {dummyMasterBank.map((e, i) => ( - - - - - } - onPress={() => {}} + + {dummyMasterBank.map((e, i) => ( + + + + + } + onPress={() => { + router.push( + `/admin/app-information/information-bank/${i}` + ); + }} + /> + + - Edit - - - - { - setValue(!value); - }} - theme={{ - colors: { - primary: MainColor.yellow, - }, - }} - /> - - - {e.code} - - - - - ))} - + { + setValue(!value); + }} + theme={{ + colors: { + primary: MainColor.yellow, + }, + }} + /> + + + {e.code} + + + + + ))} + + ); } diff --git a/screens/Admin/App-Information/StickerSection.tsx b/screens/Admin/App-Information/StickerSection.tsx index d0709ce..f3383c7 100644 --- a/screens/Admin/App-Information/StickerSection.tsx +++ b/screens/Admin/App-Information/StickerSection.tsx @@ -1,9 +1,109 @@ -import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import { ActionIcon, Grid, StackCustom, TextCustom } from "@/components"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { FontAwesome5 } from "@expo/vector-icons"; +import { Image } from "expo-image"; +import { router } from "expo-router"; +import { useState } from "react"; +import { View } from "react-native"; +import { Divider, Switch } from "react-native-paper"; export default function AdminAppInformation_StickerSection() { + const [value, setValue] = useState(false); return ( <> - + + + Aksi + + + Status + + + Stiker + + + + + + + {listSticker.map((e, i) => ( + + + + + } + onPress={() => { + router.push(`/admin/app-information/sticker/${i}`); + }} + /> + + + { + setValue(!value); + }} + theme={{ + colors: { + primary: MainColor.yellow, + }, + }} + /> + + + + + + + + ))} + ); } + +const listSticker = [ + { + id: "1", + label: "Stiker 1", + value: "sticker 1", + path: "https://wibu-storage.wibudev.com/api/files/cmb0dkn5700bjbpnnwcfpzxpz", + }, + { + id: "2", + label: "Stiker 2", + value: "sticker 2", + path: "https://wibu-storage.wibudev.com/api/files/cmb0djnya00bhbpnn8b2sfpg3", + }, + { + id: "3", + label: "Stiker 3", + value: "sticker 3", + path: "https://wibu-storage.wibudev.com/api/files/cmb0dj0o400bfbpnn6hrfa71y", + }, + { + id: "4", + label: "Stiker 4", + value: "sticker 4", + path: "https://wibu-storage.wibudev.com/api/files/cmb0d5rdb00abbpnnrbhxrxjz", + }, + { + id: "5", + label: "Stiker 5", + value: "sticker 5", + path: "https://wibu-storage.wibudev.com/api/files/cmb0d4j5q00a9bpnn0qpxa0k4", + }, +]; diff --git a/screens/Authentication/LoginView.tsx b/screens/Authentication/LoginView.tsx index 094027d..92d0b74 100644 --- a/screens/Authentication/LoginView.tsx +++ b/screens/Authentication/LoginView.tsx @@ -32,7 +32,7 @@ export default function LoginView() { // router.navigate("/verification"); // router.navigate(`/(application)/(user)/profile/${id}`); - // router.navigate("/(application)/(user)/home"); + router.navigate("/(application)/(user)/home"); // router.navigate(`/(application)/profile/${id}/edit`); // router.navigate(`/(application)/(user)/portofolio/${id}`) // router.navigate(`/(application)/(image)/preview-image/${id}`); @@ -40,7 +40,7 @@ export default function LoginView() { // router.replace("/(application)/coba"); // router.navigate("/investment/(tabs)")1 // router.navigate("/crowdfunding") - router.navigate("/admin/dashboard") + // router.navigate("/admin/dashboard") } return ( @@ -78,9 +78,15 @@ export default function LoginView() { placeholder="Masukkan nomor" /> - + Login + + + + router.navigate("/admin/user-access")}> + Admin ( Delete Soon ) + ); diff --git a/styles/global-styles.ts b/styles/global-styles.ts index be0af4b..ff6d40d 100644 --- a/styles/global-styles.ts +++ b/styles/global-styles.ts @@ -36,11 +36,11 @@ export const GStyles = StyleSheet.create({ right: 0, zIndex: 10, backgroundColor: "transparent", - paddingBlock: PADDING_SMALL, + // paddingBlock: PADDING_EXTRA_SMALL, paddingInline: PADDING_MEDIUM, // padding: 16, - // paddingTop: 8, - // paddingBottom: 8, + paddingTop: 8, + paddingBottom: 8, }, floatingContainer: { position: "absolute", diff --git a/tsconfig.json b/tsconfig.json index 6d2b67b..9083fef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,5 +13,5 @@ "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts" - ] +, "app/(application)/admin/app-information/business-field/[id]" ] }