From bfb029058c466cf4bac922ea0fcdfc756441113f Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Wed, 9 Jul 2025 15:29:04 +0800 Subject: [PATCH] feature deskripsi: - new page daftar portofolio --- .../(user)/portofolio/[id]/list.tsx | 47 +++++++++++++++++++ .../(user)/portofolio/_layout.tsx | 13 +++-- components/Text/TextCustom.tsx | 36 ++++++++++---- screens/Profile/profilSection.tsx | 10 +++- 4 files changed, 87 insertions(+), 19 deletions(-) create mode 100644 app/(application)/(user)/portofolio/[id]/list.tsx diff --git a/app/(application)/(user)/portofolio/[id]/list.tsx b/app/(application)/(user)/portofolio/[id]/list.tsx new file mode 100644 index 0000000..5c57d12 --- /dev/null +++ b/app/(application)/(user)/portofolio/[id]/list.tsx @@ -0,0 +1,47 @@ +import { BaseBox, Grid, TextCustom, ViewWrapper } from "@/components"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_SMALL } from "@/constants/constans-value"; +import { Ionicons } from "@expo/vector-icons"; +import { router, useLocalSearchParams } from "expo-router"; + +export default function ListPortofolio() { + const { id } = useLocalSearchParams(); + return ( + + {Array.from({ length: 10 }).map((_, index) => ( + { + console.log("press to Portofolio"); + router.push(`/portofolio/${id}`); + }} + > + + + + Nama usaha portofolio + + + #id-porofolio12345 + + + + + + + + ))} + + ); +} diff --git a/app/(application)/(user)/portofolio/_layout.tsx b/app/(application)/(user)/portofolio/_layout.tsx index a7b48d0..2d81b1b 100644 --- a/app/(application)/(user)/portofolio/_layout.tsx +++ b/app/(application)/(user)/portofolio/_layout.tsx @@ -1,6 +1,5 @@ - import LeftButtonCustom from "@/components/Button/BackButton"; -import { GStyles } from "@/styles/global-styles"; +import { HeaderStyles } from "@/styles/header-styles"; import { Stack } from "expo-router"; export default function PortofolioLayout() { @@ -8,10 +7,7 @@ export default function PortofolioLayout() { <> , }} > @@ -20,7 +16,10 @@ export default function PortofolioLayout() { name="[id]/create" options={{ title: "Tambah Portofolio" }} /> - + ); diff --git a/components/Text/TextCustom.tsx b/components/Text/TextCustom.tsx index 47ac145..0f1f019 100644 --- a/components/Text/TextCustom.tsx +++ b/components/Text/TextCustom.tsx @@ -5,7 +5,7 @@ import { TEXT_SIZE_SMALL, } from "@/constants/constans-value"; import React from "react"; -import { Text as RNText, StyleProp, StyleSheet, TextStyle } from "react-native"; +import { Text as RNText, StyleProp, StyleSheet, TextStyle, TouchableOpacity } from "react-native"; // Tambahkan type TextAlignProps agar lebih type-safe type TextAlign = "left" | "center" | "right"; @@ -19,6 +19,7 @@ interface TextCustomProps { color?: "default" | "yellow" | "red"; align?: TextAlign; // Prop untuk alignment truncate?: boolean | number; + onPress?: () => void; } const TextCustom: React.FC = ({ @@ -30,6 +31,7 @@ const TextCustom: React.FC = ({ color = "default", align = "left", // Default alignment truncate = false, + onPress, }) => { const getStyle = () => { let selectedStyles = []; @@ -61,15 +63,29 @@ const TextCustom: React.FC = ({ }; return ( - - {children} - + onPress ? ( + + + {children} + + + ) : ( + + {children} + + ) ); }; diff --git a/screens/Profile/profilSection.tsx b/screens/Profile/profilSection.tsx index 1bca730..449cfc9 100644 --- a/screens/Profile/profilSection.tsx +++ b/screens/Profile/profilSection.tsx @@ -115,9 +115,15 @@ export default function ProfilSection() { ))} + + router.push(`/portofolio/${id}/list`)} + > + Lihat semua + ); } - -