From c230e0b18b2ccd614e6a791d2845f4a95cd23a79 Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Tue, 27 Jan 2026 17:39:54 +0800 Subject: [PATCH] upd: custom header Deskripsi: - update custom button header - yg blm : fitur divisi dan yg ada di divisi No Issues --- app/(application)/_layout.tsx | 78 +++++++++++++++---- app/(application)/announcement/[id].tsx | 12 ++- app/(application)/announcement/create.tsx | 56 ++++++++----- app/(application)/announcement/edit/[id].tsx | 54 ++++++++----- app/(application)/banner/[id].tsx | 37 ++++++--- app/(application)/banner/create.tsx | 48 ++++++++---- app/(application)/banner/index.tsx | 16 +++- app/(application)/discussion/[id].tsx | 16 +++- .../discussion/add-member/[id].tsx | 34 +++++--- app/(application)/discussion/create.tsx | 50 ++++++++---- app/(application)/discussion/edit/[id].tsx | 42 ++++++---- app/(application)/discussion/member/[id].tsx | 11 ++- app/(application)/feature.tsx | 8 +- app/(application)/member/[id].tsx | 18 +++-- app/(application)/member/create.tsx | 41 ++++++---- app/(application)/member/edit/[id].tsx | 48 ++++++++---- app/(application)/profile.tsx | 43 ++++++---- app/(application)/project/[id]/add-file.tsx | 26 +++++-- app/(application)/project/[id]/add-member.tsx | 34 +++++--- app/(application)/project/[id]/add-task.tsx | 42 ++++++---- app/(application)/project/[id]/cancel.tsx | 50 ++++++++---- app/(application)/project/[id]/edit.tsx | 44 +++++++---- app/(application)/project/[id]/index.tsx | 18 ++++- app/(application)/project/[id]/report.tsx | 42 ++++++---- app/(application)/project/create.tsx | 47 +++++++---- app/(application)/project/create/member.tsx | 37 ++++++--- app/(application)/project/create/task.tsx | 44 +++++++---- app/(application)/project/update/[detail].tsx | 30 +++++-- app/(application)/search.tsx | 8 +- components/AppHeader.tsx | 33 ++++++++ constants/Styles.ts | 22 +++++- 31 files changed, 774 insertions(+), 315 deletions(-) create mode 100644 components/AppHeader.tsx diff --git a/app/(application)/_layout.tsx b/app/(application)/_layout.tsx index a3bfce9..b60b98b 100644 --- a/app/(application)/_layout.tsx +++ b/app/(application)/_layout.tsx @@ -1,5 +1,5 @@ import HeaderRightAnnouncementList from "@/components/announcement/headerAnnouncementList"; -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import HeaderDiscussionGeneral from "@/components/discussion_general/headerDiscussionGeneral"; import HeaderRightDivisionList from "@/components/division/headerDivisionList"; import HeaderRightGroupList from "@/components/group/headerGroupList"; @@ -97,54 +97,100 @@ export default function RootLayout() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Notifikasi', - headerTitleAlign: 'center' + headerTitleAlign: 'center', + header: () => ( + router.back()} /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, title: 'Anggota', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, title: 'Diskusi Umum', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, title: 'Kegiatan', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, title: 'Divisi', headerTitleAlign: 'center', headerRight: () => }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Lembaga Desa', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Jabatan', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Pengumuman', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={} + /> + ) }} /> diff --git a/app/(application)/announcement/[id].tsx b/app/(application)/announcement/[id].tsx index 6364093..49ec413 100644 --- a/app/(application)/announcement/[id].tsx +++ b/app/(application)/announcement/[id].tsx @@ -1,4 +1,5 @@ import HeaderRightAnnouncementDetail from "@/components/announcement/headerAnnouncementDetail"; +import AppHeader from "@/components/AppHeader"; import BorderBottomItem from "@/components/borderBottomItem"; import ButtonBackHeader from "@/components/buttonBackHeader"; import Skeleton from "@/components/skeleton"; @@ -115,10 +116,17 @@ export default function DetailAnnouncement() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Pengumuman', headerTitleAlign: 'center', - headerRight: () => entityUser.role != 'user' && entityUser.role != 'coadmin' ? : <>, + // headerRight: () => entityUser.role != 'user' && entityUser.role != 'coadmin' ? : <>, + header: () => ( + router.back()} + right={entityUser.role != 'user' && entityUser.role != 'coadmin' ? : <>} + /> + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Tambah Pengumuman", headerTitleAlign: "center", - headerRight: () => ( - { - divisionMember.length == 0 - ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) - : handleCreate(); - }} + // headerRight: () => ( + // { + // divisionMember.length == 0 + // ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) + // : handleCreate(); + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + divisionMember.length == 0 + ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) + : handleCreate(); + }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/announcement/edit/[id].tsx b/app/(application)/announcement/edit/[id].tsx index c947e44..c96984b 100644 --- a/app/(application)/announcement/edit/[id].tsx +++ b/app/(application)/announcement/edit/[id].tsx @@ -1,5 +1,5 @@ +import AppHeader from "@/components/AppHeader"; import BorderBottomItem from "@/components/borderBottomItem"; -import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; @@ -183,26 +183,44 @@ export default function EditAnnouncement() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Edit Pengumuman", headerTitleAlign: "center", - headerRight: () => ( - { - dataMember.length == 0 - ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) - : handleEdit(); - }} + // headerRight: () => ( + // { + // dataMember.length == 0 + // ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) + // : handleEdit(); + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + dataMember.length == 0 + ? Toast.show({ type: 'small', text1: "Anda belum memilih divisi", }) + : handleEdit(); + }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/banner/[id].tsx b/app/(application)/banner/[id].tsx index e204aca..7e59eda 100644 --- a/app/(application)/banner/[id].tsx +++ b/app/(application)/banner/[id].tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import Text from "@/components/Text"; @@ -115,19 +115,32 @@ export default function EditBanner() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Edit Banner", headerTitleAlign: "center", - headerRight: () => { handleUpdateEntity() }} - category="update" />, + // headerRight: () => { handleUpdateEntity() }} + // category="update" />, + header: () => ( + router.back()} + right={ + { handleUpdateEntity() }} + category="update" /> + } + /> + ) }} /> diff --git a/app/(application)/banner/create.tsx b/app/(application)/banner/create.tsx index c701e66..76e382a 100644 --- a/app/(application)/banner/create.tsx +++ b/app/(application)/banner/create.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import Text from "@/components/Text"; @@ -97,24 +97,40 @@ export default function CreateBanner() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Tambah Banner", headerTitleAlign: "center", - headerRight: () => ( - { - handleCreateEntity(); - }} + // headerRight: () => ( + // { + // handleCreateEntity(); + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + handleCreateEntity(); + }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/banner/index.tsx b/app/(application)/banner/index.tsx index 333d91f..3de81f9 100644 --- a/app/(application)/banner/index.tsx +++ b/app/(application)/banner/index.tsx @@ -1,7 +1,7 @@ import AlertKonfirmasi from "@/components/alertKonfirmasi" +import AppHeader from "@/components/AppHeader" import HeaderRightBannerList from "@/components/banner/headerBannerList" import BorderBottomItem from "@/components/borderBottomItem" -import ButtonBackHeader from "@/components/buttonBackHeader" import DrawerBottom from "@/components/drawerBottom" import MenuItemRow from "@/components/menuItemRow" import ModalLoading from "@/components/modalLoading" @@ -108,10 +108,20 @@ export default function BannerList() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Banner', headerTitleAlign: 'center', - headerRight: () => + // headerRight: () => + header: () => ( + router.back()} + right={ + + } + /> + ) }} /> diff --git a/app/(application)/discussion/[id].tsx b/app/(application)/discussion/[id].tsx index d478b73..8100d9e 100644 --- a/app/(application)/discussion/[id].tsx +++ b/app/(application)/discussion/[id].tsx @@ -1,7 +1,7 @@ import AlertKonfirmasi from "@/components/alertKonfirmasi"; +import AppHeader from "@/components/AppHeader"; import BorderBottomItem from "@/components/borderBottomItem"; import BorderBottomItem2 from "@/components/borderBottomItem2"; -import ButtonBackHeader from "@/components/buttonBackHeader"; import HeaderRightDiscussionGeneralDetail from "@/components/discussion_general/headerDiscussionDetail"; import DrawerBottom from "@/components/drawerBottom"; import ImageUser from "@/components/imageNew"; @@ -22,7 +22,7 @@ import { Feather, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/ import { ref } from '@react-native-firebase/database'; import { useHeaderHeight } from '@react-navigation/elements'; import { router, Stack, useLocalSearchParams } from "expo-router"; -import { useEffect, useState } from "react"; +import React, { useEffect, useState } from "react"; import { KeyboardAvoidingView, Platform, Pressable, RefreshControl, ScrollView, View } from "react-native"; import Toast from "react-native-toast-message"; import { useSelector } from "react-redux"; @@ -225,10 +225,18 @@ export default function DetailDiscussionGeneral() { <> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Diskusi', headerTitleAlign: 'center', - headerRight: () => , + // headerRight: () => , + header: () => ( + router.back()} + right={} + /> + ) }} /> diff --git a/app/(application)/discussion/add-member/[id].tsx b/app/(application)/discussion/add-member/[id].tsx index d7b3d57..fe3af20 100644 --- a/app/(application)/discussion/add-member/[id].tsx +++ b/app/(application)/discussion/add-member/[id].tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; @@ -95,16 +95,32 @@ export default function AddMemberDiscussionDetail() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Tambah Anggota Diskusi', headerTitleAlign: 'center', - headerRight: () => ( - { - handleAddMember() - }} + // headerRight: () => ( + // { + // handleAddMember() + // }} + // /> + // ) + header: () => ( + router.back()} + right={ + { + handleAddMember() + }} + /> + } /> ) }} diff --git a/app/(application)/discussion/create.tsx b/app/(application)/discussion/create.tsx index a5a4504..22e660d 100644 --- a/app/(application)/discussion/create.tsx +++ b/app/(application)/discussion/create.tsx @@ -1,5 +1,5 @@ +import AppHeader from "@/components/AppHeader"; import BorderBottomItem from "@/components/borderBottomItem"; -import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; @@ -166,24 +166,42 @@ export default function CreateDiscussionGeneral() { ( - { handleBack() }} - /> - ), + // headerLeft: () => ( + // { handleBack() }} + // /> + // ), headerTitle: "Tambah Diskusi", headerTitleAlign: "center", - headerRight: () => ( - { - entitiesMember.length == 0 - ? Toast.show({ type: 'small', text1: 'Anda belum memilih anggota', }) - : handleCreate() - }} + // headerRight: () => ( + // { + // entitiesMember.length == 0 + // ? Toast.show({ type: 'small', text1: 'Anda belum memilih anggota', }) + // : handleCreate() + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + entitiesMember.length == 0 + ? Toast.show({ type: 'small', text1: 'Anda belum memilih anggota', }) + : handleCreate() + }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/discussion/edit/[id].tsx b/app/(application)/discussion/edit/[id].tsx index 23ff533..4a01537 100644 --- a/app/(application)/discussion/edit/[id].tsx +++ b/app/(application)/discussion/edit/[id].tsx @@ -1,6 +1,6 @@ +import AppHeader from "@/components/AppHeader"; import Text from "@/components/Text"; import BorderBottomItem from "@/components/borderBottomItem"; -import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; @@ -165,22 +165,36 @@ export default function EditDiscussionGeneral() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Edit Diskusi", headerTitleAlign: "center", - headerRight: () => ( - { handleEdit() }} + // headerRight: () => ( + // { handleEdit() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleEdit() }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/discussion/member/[id].tsx b/app/(application)/discussion/member/[id].tsx index 0f16c49..cb836bf 100644 --- a/app/(application)/discussion/member/[id].tsx +++ b/app/(application)/discussion/member/[id].tsx @@ -1,6 +1,6 @@ import AlertKonfirmasi from "@/components/alertKonfirmasi"; +import AppHeader from "@/components/AppHeader"; import BorderBottomItem from "@/components/borderBottomItem"; -import ButtonBackHeader from "@/components/buttonBackHeader"; import DrawerBottom from "@/components/drawerBottom"; import ImageUser from "@/components/imageNew"; import MenuItemRow from "@/components/menuItemRow"; @@ -74,9 +74,16 @@ export default function MemberDiscussionDetail() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Anggota Diskusi', headerTitleAlign: 'center', + header: () => ( + router.back()} + /> + ) }} /> diff --git a/app/(application)/feature.tsx b/app/(application)/feature.tsx index d72dcb4..9813bdb 100644 --- a/app/(application)/feature.tsx +++ b/app/(application)/feature.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import { ButtonFiturMenu } from "@/components/buttonFiturMenu"; import Styles from "@/constants/Styles"; import { AntDesign, Entypo, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons"; @@ -13,9 +13,11 @@ export default function Feature() { { router.back() }} />, headerTitle: 'Fitur', - headerTitleAlign: 'center' + headerTitleAlign: 'center', + header: () => ( + router.back()} /> + ) }} /> diff --git a/app/(application)/member/[id].tsx b/app/(application)/member/[id].tsx index 0bc6770..50dc13f 100644 --- a/app/(application)/member/[id].tsx +++ b/app/(application)/member/[id].tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ImageUser from "@/components/imageNew"; import ItemDetailMember from "@/components/itemDetailMember"; import LabelStatus from "@/components/labelStatus"; @@ -11,7 +11,7 @@ import { valueRoleUser } from "@/constants/RoleUser"; import Styles from "@/constants/Styles"; import { apiGetProfile } from "@/lib/api"; import { router, Stack, useLocalSearchParams } from "expo-router"; -import { useEffect, useState } from "react"; +import React, { useEffect, useState } from "react"; import { Pressable, RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; import ImageViewing from 'react-native-image-viewing'; import Toast from "react-native-toast-message"; @@ -77,11 +77,19 @@ export default function MemberDetail() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Anggota', headerTitleAlign: 'center', - headerRight: () => (entityUser.role != "user") && isEdit ? : <>, - headerShadowVisible: false + // headerRight: () => (entityUser.role != "user") && isEdit ? : <>, + header: () => ( + router.back()} + right={ + (entityUser.role != "user") && isEdit ? : <> + } + /> + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Tambah Anggota", headerTitleAlign: "center", - headerRight: () => ( - { handleCreate() }} + // headerRight: () => ( + // { handleCreate() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleCreate() }} + /> + } /> - ), + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Edit Anggota", headerTitleAlign: "center", - headerRight: () => ( - { - handleEdit() - }} + // headerRight: () => ( + // { + // handleEdit() + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + handleEdit() + }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/profile.tsx b/app/(application)/profile.tsx index 1c9c989..ba70df2 100644 --- a/app/(application)/profile.tsx +++ b/app/(application)/profile.tsx @@ -1,5 +1,5 @@ import AlertKonfirmasi from "@/components/alertKonfirmasi"; -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import { ButtonHeader } from "@/components/buttonHeader"; import ItemDetailMember from "@/components/itemDetailMember"; import Text from "@/components/Text"; @@ -25,20 +25,37 @@ export default function Profile() { { router.back() }} />, headerTitle: 'Profile', headerTitleAlign: 'center', - headerShadowVisible: false, - headerRight: () => } - onPress={() => { - AlertKonfirmasi({ - title: 'Keluar', - desc: 'Apakah anda yakin ingin keluar?', - onPress: () => { signOut() } - }) - }} - /> + header: () => ( + router.back()} + right={ + } + onPress={() => { + AlertKonfirmasi({ + title: 'Keluar', + desc: 'Apakah anda yakin ingin keluar?', + onPress: () => { signOut() } + }) + }} + /> + } + /> + ) + // headerRight: () => } + // onPress={() => { + // AlertKonfirmasi({ + // title: 'Keluar', + // desc: 'Apakah anda yakin ingin keluar?', + // onPress: () => { signOut() } + // }) + // }} + // /> }} /> diff --git a/app/(application)/project/[id]/add-file.tsx b/app/(application)/project/[id]/add-file.tsx index e1863ed..7c952a6 100644 --- a/app/(application)/project/[id]/add-file.tsx +++ b/app/(application)/project/[id]/add-file.tsx @@ -1,5 +1,5 @@ +import AppHeader from "@/components/AppHeader" import BorderBottomItem from "@/components/borderBottomItem" -import ButtonBackHeader from "@/components/buttonBackHeader" import ButtonSaveHeader from "@/components/buttonSaveHeader" import ButtonSelect from "@/components/buttonSelect" import DrawerBottom from "@/components/drawerBottom" @@ -130,13 +130,27 @@ export default function ProjectAddFile() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Tambah File', headerTitleAlign: 'center', - headerRight: () => { handleAddFile() }} /> + // headerRight: () => { handleAddFile() }} /> + header: () => ( + router.back()} + right={ + { handleAddFile() }} + /> + } + /> + ) }} /> diff --git a/app/(application)/project/[id]/add-member.tsx b/app/(application)/project/[id]/add-member.tsx index 6bc4e39..bc5fd29 100644 --- a/app/(application)/project/[id]/add-member.tsx +++ b/app/(application)/project/[id]/add-member.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; @@ -97,16 +97,32 @@ export default function AddMemberProject() { <> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Tambah Anggota Kegiatan', headerTitleAlign: 'center', - headerRight: () => ( - { - handleAddMember() - }} + // headerRight: () => ( + // { + // handleAddMember() + // }} + // /> + // ) + header: () => ( + router.back()} + right={ + { + handleAddMember() + }} + /> + } /> ) }} diff --git a/app/(application)/project/[id]/add-task.tsx b/app/(application)/project/[id]/add-task.tsx index 4f2fc56..1ae7937 100644 --- a/app/(application)/project/[id]/add-task.tsx +++ b/app/(application)/project/[id]/add-task.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import ModalAddDetailTugasProject from "@/components/project/modalAddDetailTugasProject"; @@ -136,22 +136,36 @@ export default function ProjectAddTask() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Tambah Tugas", headerTitleAlign: "center", - headerRight: () => ( - { handleCreate() }} + // headerRight: () => ( + // { handleCreate() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleCreate() }} + /> + } /> - ), + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Pembatalan Kegiatan", headerTitleAlign: "center", - headerRight: () => ( - { - handleCancel(); - }} + // headerRight: () => ( + // { + // handleCancel(); + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + handleCancel(); + }} + /> + } /> - ), + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Edit Judul Kegiatan", headerTitleAlign: "center", - headerRight: () => ( - { handleUpdate() }} + // headerRight: () => ( + // { handleUpdate() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleUpdate() }} + /> + } /> - ), + ) }} /> diff --git a/app/(application)/project/[id]/index.tsx b/app/(application)/project/[id]/index.tsx index 84c1db2..0a28781 100644 --- a/app/(application)/project/[id]/index.tsx +++ b/app/(application)/project/[id]/index.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import HeaderRightProjectDetail from "@/components/project/headerProjectDetail"; import SectionFile from "@/components/project/sectionFile"; import SectionLink from "@/components/project/sectionLink"; @@ -11,7 +11,7 @@ import Styles from "@/constants/Styles"; import { apiGetProjectOne } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; -import { useEffect, useState } from "react"; +import React, { useEffect, useState } from "react"; import { RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; import { useSelector } from "react-redux"; @@ -94,10 +94,20 @@ export default function DetailProject() { { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: loading ? 'Loading... ' : data?.title, headerTitleAlign: 'center', - headerRight: () => (entityUser.role == "user" || entityUser.role == "coadmin") && !isMember ? null : , + // headerRight: () => (entityUser.role == "user" || entityUser.role == "coadmin") && !isMember ? null : , + header: () => ( + router.back()} + right={ + (entityUser.role == "user" || entityUser.role == "coadmin") && !isMember ? null : + } + /> + ) }} /> ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Laporan Kegiatan", headerTitleAlign: "center", - headerRight: () => ( - { handleUpdate() }} + // headerRight: () => ( + // { handleUpdate() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleUpdate() }} + /> + } /> - ), + ) }} /> ( - { - handleBack(); - }} - /> - ), + // headerLeft: () => ( + // { + // handleBack(); + // }} + // /> + // ), headerTitle: "Tambah Kegiatan", headerTitleAlign: "center", - headerRight: () => ( - { - handleCreate() - }} + // headerRight: () => ( + // { + // handleCreate() + // }} + // /> + // ), + header: () => ( + router.back()} + right={ + { + handleCreate() + }} + /> + } /> - ), + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Pilih Anggota', headerTitleAlign: 'center', - headerRight: () => ( - 0 ? false : true} - onPress={() => { - handleAddMember() - }} + // headerRight: () => ( + // 0 ? false : true} + // onPress={() => { + // handleAddMember() + // }} + // /> + // ) + header: () => ( + router.back()} + right={ + 0 ? false : true} + onPress={() => { + handleAddMember() + }} + /> + } /> ) }} diff --git a/app/(application)/project/create/task.tsx b/app/(application)/project/create/task.tsx index 7ebd902..6fbfad5 100644 --- a/app/(application)/project/create/task.tsx +++ b/app/(application)/project/create/task.tsx @@ -1,4 +1,4 @@ -import ButtonBackHeader from "@/components/buttonBackHeader"; +import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import ModalAddDetailTugasProject from "@/components/project/modalAddDetailTugasProject"; @@ -12,7 +12,7 @@ import { router, Stack } from "expo-router"; import 'intl'; import 'intl/locale-data/jsonp/id'; import moment from "moment"; -import { useEffect, useState } from "react"; +import React, { useEffect, useState } from "react"; import { KeyboardAvoidingView, Platform, @@ -122,22 +122,36 @@ export default function CreateProjectAddTask() { ( - { - router.back(); - }} - /> - ), + // headerLeft: () => ( + // { + // router.back(); + // }} + // /> + // ), headerTitle: "Tambah Tugas", headerTitleAlign: "center", - headerRight: () => ( - { handleCreate() }} + // headerRight: () => ( + // { handleCreate() }} + // /> + // ), + header: () => ( + router.back()} + right={ + { handleCreate() }} + /> + } /> - ), + ) }} /> { router.back() }} />, + // headerLeft: () => { router.back() }} />, headerTitle: 'Edit Tanggal dan Tugas', headerTitleAlign: 'center', - headerRight: () => { handleEdit() }} - /> + // headerRight: () => { handleEdit() }} + // /> + header: () => ( + router.back()} + right={ + { handleEdit() }} + /> + } + /> + ) }} /> { router.back() }} />, headerTitle: 'Pencarian', - headerTitleAlign: 'center' + headerTitleAlign: 'center', + header: () => ( + router.back()} /> + ) }} /> diff --git a/components/AppHeader.tsx b/components/AppHeader.tsx new file mode 100644 index 0000000..43d5b16 --- /dev/null +++ b/components/AppHeader.tsx @@ -0,0 +1,33 @@ +import { useRouter } from 'expo-router'; +import { StyleSheet, Text, View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import ButtonBackHeader from './buttonBackHeader'; +import Styles from '@/constants/Styles'; + +type Props = { + title: string; + right?: React.ReactNode; + showBack?: boolean; + onPressLeft?: () => void +}; + +export default function AppHeader({ title, right, showBack = true, onPressLeft }: Props) { + const insets = useSafeAreaInsets(); + const router = useRouter(); + + return ( + + + {showBack ? ( + + ) : ( + + )} + + {title} + + {right} + + + ); +} diff --git a/constants/Styles.ts b/constants/Styles.ts index f090465..3fe28d7 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -631,7 +631,27 @@ const Styles = StyleSheet.create({ position: 'absolute', opacity: 0, zIndex: -1, - } + }, + headerContainer: { + backgroundColor: '#19345E', + }, + headerApp: { + // height: 40, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + paddingHorizontal: 16, + paddingVertical: 3 + }, + headerTitle: { + color: '#fff', + fontSize: 16, + fontWeight: '600', + }, + headerSide: { + width: 40, + alignItems: 'center', + }, }) export default Styles; \ No newline at end of file -- 2.49.1