diff --git a/app/(application)/(user)/_layout.tsx b/app/(application)/(user)/_layout.tsx index 64e9a5b..0f3dc39 100644 --- a/app/(application)/(user)/_layout.tsx +++ b/app/(application)/(user)/_layout.tsx @@ -102,6 +102,13 @@ export default function UserLayout() { headerLeft: () => , }} /> + , + }} + /> {/* Marketplace */} + { + console.log("Simpan"); + router.replace(`/portofolio/${id}`); + }} + > + Simpan + + + ); + return ( + + + + + Maps Her + + + + + + + + + { + console.log("Upload foto "); + router.navigate(`/take-picture/${id}`); + }} + > + Upload + + + + ); +} diff --git a/app/(application)/(user)/portofolio/[id]/create.tsx b/app/(application)/(user)/portofolio/[id]/create.tsx index 38fc5b4..f616d90 100644 --- a/app/(application)/(user)/portofolio/[id]/create.tsx +++ b/app/(application)/(user)/portofolio/[id]/create.tsx @@ -44,7 +44,8 @@ export default function PortofolioCreate() { } function handleSave() { - console.log("save"); + console.log("Selanjutnya"); + router.replace(`/maps/create`); } const buttonSave = ( @@ -56,16 +57,15 @@ export default function PortofolioCreate() { return ( {/* Portofolio Create {id} */} - + ({ diff --git a/app/(application)/(user)/portofolio/[id]/index.tsx b/app/(application)/(user)/portofolio/[id]/index.tsx index f8a0cbf..731d8cb 100644 --- a/app/(application)/(user)/portofolio/[id]/index.tsx +++ b/app/(application)/(user)/portofolio/[id]/index.tsx @@ -1,32 +1,86 @@ +import { DrawerCustom, TextCustom } from "@/components"; import LeftButtonCustom from "@/components/Button/BackButton"; +import { IMenuDrawerItem } from "@/components/_Interface/types"; import ViewWrapper from "@/components/_ShareComponent/ViewWrapper"; +import { MainColor } from "@/constants/color-palet"; +import { DRAWER_HEIGHT } from "@/constants/constans-value"; +import { drawerItems } from "@/screens/Profile/ListPage"; +import Profile_MenuDrawerSection from "@/screens/Profile/MenuDrawerSection"; import { GStyles } from "@/styles/global-styles"; +import { Ionicons } from "@expo/vector-icons"; import { Stack, useLocalSearchParams } from "expo-router"; -import { Text } from "react-native"; +import { useRef, useState } from "react"; +import { + Animated, + InteractionManager, + Text, + TouchableOpacity, +} from "react-native"; export default function Portofolio() { - const { id } = useLocalSearchParams(); + const { id } = useLocalSearchParams(); + const [isDrawerOpen, setIsDrawerOpen] = useState(false); + const [showLogoutAlert, setShowLogoutAlert] = useState(false); + + const drawerAnim = useRef(new Animated.Value(DRAWER_HEIGHT)).current; + + const openDrawer = () => { + setIsDrawerOpen(true); + Animated.timing(drawerAnim, { + toValue: 0, + duration: 300, + useNativeDriver: true, + }).start(); + }; + const closeDrawer = () => { + Animated.timing(drawerAnim, { + toValue: DRAWER_HEIGHT, // sesuaikan dengan tinggi drawer Anda + duration: 300, + useNativeDriver: true, + }).start(() => { + InteractionManager.runAfterInteractions(() => { + setIsDrawerOpen(false); // baru ganti state setelah animasi selesai + }); + }); + setIsDrawerOpen(false); + }; return ( - - {/* Header */} - , - // headerRight: () => ( - // - // - // - // ), - headerStyle: GStyles.headerStyle, - headerTitleStyle: GStyles.headerTitleStyle, - }} - /> - Portofolio {id} - + <> + + {/* Header */} + , + headerRight: () => ( + + + + ), + headerStyle: GStyles.headerStyle, + headerTitleStyle: GStyles.headerTitleStyle, + }} + /> + Portofolio {id} + + + {/* Drawer Komponen Eksternal */} + + + + ); } diff --git a/app/(application)/(user)/profile/[id]/index.tsx b/app/(application)/(user)/profile/[id]/index.tsx index 3c288d2..7e03309 100644 --- a/app/(application)/(user)/profile/[id]/index.tsx +++ b/app/(application)/(user)/profile/[id]/index.tsx @@ -1,10 +1,10 @@ -import { IMenuDrawerItem } from "@/components/_Interface/types"; import ViewWrapper from "@/components/_ShareComponent/ViewWrapper"; import AlertCustom from "@/components/Alert/AlertCustom"; import LeftButtonCustom from "@/components/Button/BackButton"; import DrawerCustom from "@/components/Drawer/DrawerCustom"; import { MainColor } from "@/constants/color-palet"; import { DRAWER_HEIGHT } from "@/constants/constans-value"; +import { drawerItems } from "@/screens/Profile/ListPage"; import Profile_MenuDrawerSection from "@/screens/Profile/MenuDrawerSection"; import ProfilSection from "@/screens/Profile/ProfilSection"; import { GStyles } from "@/styles/global-styles"; @@ -18,40 +18,6 @@ export default function Profile() { const [isDrawerOpen, setIsDrawerOpen] = useState(false); const [showLogoutAlert, setShowLogoutAlert] = useState(false); - const drawerItems: IMenuDrawerItem[] = [ - { - icon: "create", - label: "Edit profile", - path: `/(application)/profile/${id}/edit`, - }, - { - icon: "camera", - label: "Ubah foto profile", - path: `/(application)/profile/${id}/update-photo`, - }, - { - icon: "image", - label: "Ubah latar belakang", - path: `/(application)/profile/${id}/update-background`, - }, - { - icon: "add-circle", - label: "Tambah portofolio", - path: `/(application)/portofolio/${id}/create`, - }, - // { - // icon: "settings", - // label: "Dashboard Admin", - // path: `/(application)/profile/dashboard-admin`, - // }, - { icon: "log-out", label: "Keluar", color: "red", path: "" }, - { - icon: "create-outline", - label: "Create profile", - path: `/(application)/profile/${id}/create`, - }, - ]; - // Animasi menggunakan translateY (lebih kompatibel) const drawerAnim = useRef(new Animated.Value(DRAWER_HEIGHT)).current; // mulai di luar bawah layar @@ -104,7 +70,6 @@ export default function Profile() { }} /> - {/* Drawer Komponen Eksternal */} @@ -115,7 +80,7 @@ export default function Profile() { closeDrawer={closeDrawer} > diff --git a/app/(application)/take-picture/[id]/index.tsx b/app/(application)/take-picture/[id]/index.tsx index 860343b..fd56052 100644 --- a/app/(application)/take-picture/[id]/index.tsx +++ b/app/(application)/take-picture/[id]/index.tsx @@ -67,7 +67,7 @@ export default function TakePicture() { /> - + setUri(null)} title="Foto ulang" /> { diff --git a/components/Drawer/DrawerCustom.tsx b/components/Drawer/DrawerCustom.tsx index 6976f4f..da387f0 100644 --- a/components/Drawer/DrawerCustom.tsx +++ b/components/Drawer/DrawerCustom.tsx @@ -1,10 +1,10 @@ import React, { useRef } from "react"; import { - Animated, - InteractionManager, - PanResponder, - StyleSheet, - View, + Animated, + PanResponder, + StyleSheet, + View, + InteractionManager, } from "react-native"; import { AccentColor, MainColor } from "@/constants/color-palet"; @@ -86,7 +86,7 @@ DrawerCustomProps) { {...panResponder.panHandlers} > {children} @@ -152,7 +152,7 @@ const styles = StyleSheet.create({ headerBar: { width: 40, height: 5, - backgroundColor: MainColor.white_gray, + backgroundColor: MainColor.white, borderRadius: 5, alignSelf: "center", marginVertical: 10, diff --git a/components/Stack/StackCustom.tsx b/components/Stack/StackCustom.tsx index 6b0ab21..8572cc2 100644 --- a/components/Stack/StackCustom.tsx +++ b/components/Stack/StackCustom.tsx @@ -19,7 +19,7 @@ const StackCustom: React.FC = ({ children, align = "stretch", justify = "flex-start", - gap = "xs", + gap = "md", direction = "column", style, }) => { diff --git a/components/TextInput/TextInputCustom.tsx b/components/TextInput/TextInputCustom.tsx index b598fab..fe7a7fb 100644 --- a/components/TextInput/TextInputCustom.tsx +++ b/components/TextInput/TextInputCustom.tsx @@ -89,19 +89,14 @@ const TextInputCustom = ({ disabled && GStyles.disabledBox, ]} > - {iconLeft && ( + {/* {iconLeft && ( {renderIcon(iconLeft)} - )} + )} */} [ + { + icon: "create", + label: "Edit profile", + path: `/(application)/profile/${id}/edit`, + }, + { + icon: "camera", + label: "Ubah foto profile", + path: `/(application)/profile/${id}/update-photo`, + }, + { + icon: "image", + label: "Ubah latar belakang", + path: `/(application)/profile/${id}/update-background`, + }, + { + icon: "add-circle", + label: "Tambah portofolio", + path: `/(application)/portofolio/${id}/create`, + }, + // { + // icon: "settings", + // label: "Dashboard Admin", + // path: `/(application)/profile/dashboard-admin`, + // }, + { icon: "log-out", label: "Keluar", color: "red", path: "" }, + { + icon: "create-outline", + label: "Create profile", + path: `/(application)/profile/${id}/create`, + }, +]; \ No newline at end of file diff --git a/styles/global-styles.ts b/styles/global-styles.ts index 4fb5663..13a0648 100644 --- a/styles/global-styles.ts +++ b/styles/global-styles.ts @@ -79,6 +79,7 @@ export const GStyles = StyleSheet.create({ headerTitleStyle: { color: MainColor.yellow, fontWeight: "bold", + fontSize: TEXT_SIZE_LARGE, }, // =============== STACK HEADER =============== //