diff --git a/app/(application)/announcement/[id].tsx b/app/(application)/announcement/[id].tsx index f07dca5..88c3158 100644 --- a/app/(application)/announcement/[id].tsx +++ b/app/(application)/announcement/[id].tsx @@ -200,7 +200,7 @@ export default function DetailAnnouncement() { handleRefresh()} - tintColor={colors.primary} + tintColor={colors.icon} /> } > diff --git a/app/(application)/announcement/index.tsx b/app/(application)/announcement/index.tsx index 4319656..b24646c 100644 --- a/app/(application)/announcement/index.tsx +++ b/app/(application)/announcement/index.tsx @@ -130,7 +130,7 @@ export default function Announcement() { } /> diff --git a/app/(application)/banner/index.tsx b/app/(application)/banner/index.tsx index f388242..dc2507f 100644 --- a/app/(application)/banner/index.tsx +++ b/app/(application)/banner/index.tsx @@ -133,7 +133,7 @@ export default function BannerList() { } style={[Styles.h100, { backgroundColor: colors.background }]} diff --git a/app/(application)/discussion/[id].tsx b/app/(application)/discussion/[id].tsx index 09d3351..82d064b 100644 --- a/app/(application)/discussion/[id].tsx +++ b/app/(application)/discussion/[id].tsx @@ -247,7 +247,7 @@ export default function DetailDiscussionGeneral() { handleRefresh()} - tintColor={colors.primary} + tintColor={colors.icon} /> } > diff --git a/app/(application)/discussion/index.tsx b/app/(application)/discussion/index.tsx index 3f01cb6..a8d0f44 100644 --- a/app/(application)/discussion/index.tsx +++ b/app/(application)/discussion/index.tsx @@ -166,7 +166,7 @@ export default function Discussion() { leftBottomInfo={ - Diskusikan + Diskusikan } rightBottomInfo={`${item.total_komentar} Komentar`} @@ -182,7 +182,7 @@ export default function Discussion() { } /> diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx index d5ada9e..5bdf203 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx @@ -180,6 +180,7 @@ export default function DetailEventCalendar() { } > diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx index 4e4b654..7664f62 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx @@ -155,6 +155,7 @@ export default function CalendarDivision() { } style={[Styles.h100]} diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx index 611a2c1..805d8a6 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx @@ -315,6 +315,7 @@ export default function DiscussionDetail() { } > diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx index 43e9f9c..742bc1c 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx @@ -204,6 +204,7 @@ export default function DiscussionDivision() { } /> diff --git a/app/(application)/division/[id]/(fitur-division)/document/index.tsx b/app/(application)/division/[id]/(fitur-division)/document/index.tsx index 1a2b057..5db917c 100644 --- a/app/(application)/division/[id]/(fitur-division)/document/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/document/index.tsx @@ -415,6 +415,7 @@ export default function DocumentDivision() { }> diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/index.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/index.tsx index 8eecb3c..9a27a0b 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/index.tsx @@ -127,6 +127,7 @@ export default function DetailTaskDivision() { } > diff --git a/app/(application)/division/[id]/(fitur-division)/task/index.tsx b/app/(application)/division/[id]/(fitur-division)/task/index.tsx index c708325..24a8d53 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/index.tsx @@ -235,6 +235,7 @@ export default function ListTask() { } /> @@ -301,6 +302,7 @@ export default function ListTask() { } /> diff --git a/app/(application)/division/[id]/index.tsx b/app/(application)/division/[id]/index.tsx index 57d2bc2..3736681 100644 --- a/app/(application)/division/[id]/index.tsx +++ b/app/(application)/division/[id]/index.tsx @@ -78,6 +78,7 @@ export default function DetailDivisionFitur() { } showsVerticalScrollIndicator={false} diff --git a/app/(application)/division/[id]/info.tsx b/app/(application)/division/[id]/info.tsx index 16e6f47..0132cb9 100644 --- a/app/(application)/division/[id]/info.tsx +++ b/app/(application)/division/[id]/info.tsx @@ -186,6 +186,7 @@ export default function InformationDivision() { } style={[Styles.h100, { backgroundColor: colors.background }]} diff --git a/app/(application)/division/index.tsx b/app/(application)/division/index.tsx index d48fabd..f305370 100644 --- a/app/(application)/division/index.tsx +++ b/app/(application)/division/index.tsx @@ -253,6 +253,7 @@ export default function ListDivision() { } /> @@ -288,6 +289,7 @@ export default function ListDivision() { } /> diff --git a/app/(application)/group/index.tsx b/app/(application)/group/index.tsx index 88def9e..27306cf 100644 --- a/app/(application)/group/index.tsx +++ b/app/(application)/group/index.tsx @@ -190,7 +190,7 @@ export default function Index() { } /> diff --git a/app/(application)/home.tsx b/app/(application)/home.tsx index e8f0dc5..6e0a310 100644 --- a/app/(application)/home.tsx +++ b/app/(application)/home.tsx @@ -67,7 +67,7 @@ export default function Home() { } showsVerticalScrollIndicator={false} diff --git a/app/(application)/member/[id].tsx b/app/(application)/member/[id].tsx index ae575cf..bd12512 100644 --- a/app/(application)/member/[id].tsx +++ b/app/(application)/member/[id].tsx @@ -99,7 +99,7 @@ export default function MemberDetail() { } > diff --git a/app/(application)/member/index.tsx b/app/(application)/member/index.tsx index b789b78..35ede2d 100644 --- a/app/(application)/member/index.tsx +++ b/app/(application)/member/index.tsx @@ -171,7 +171,7 @@ export default function Index() { } /> diff --git a/app/(application)/notification.tsx b/app/(application)/notification.tsx index 7c56cd8..12c5f96 100644 --- a/app/(application)/notification.tsx +++ b/app/(application)/notification.tsx @@ -1,4 +1,5 @@ import BorderBottomItem from "@/components/borderBottomItem"; +import BorderBottomItemVertical from "@/components/borderBottomItemVertical"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; @@ -116,11 +117,11 @@ export default function Notification() { getItem={getItem} renderItem={({ item, index }: { item: Props, index: number }) => { return ( - - + + } title={item.title} @@ -129,8 +130,8 @@ export default function Notification() { textColor={item.isRead ? 'gray' : colors.text} onPress={() => { handleReadNotification(item.id, item.category, item.idContent) - }} + bgColor={'transparent'} /> ) }} @@ -142,7 +143,7 @@ export default function Notification() { } /> diff --git a/app/(application)/position/index.tsx b/app/(application)/position/index.tsx index f1a5c51..5b775d9 100644 --- a/app/(application)/position/index.tsx +++ b/app/(application)/position/index.tsx @@ -216,7 +216,7 @@ export default function Index() { } /> diff --git a/app/(application)/profile.tsx b/app/(application)/profile.tsx index 501ffb9..d25cd22 100644 --- a/app/(application)/profile.tsx +++ b/app/(application)/profile.tsx @@ -5,20 +5,42 @@ import Text from "@/components/Text"; import { assetUserImage } from "@/constants/AssetsError"; import { ConstEnv } from "@/constants/ConstEnv"; import Styles from "@/constants/Styles"; +import { apiGetProfile } from "@/lib/api"; +import { setEntities } from "@/lib/entitiesSlice"; +import { useAuthSession } from "@/providers/AuthProvider"; import { useTheme } from "@/providers/ThemeProvider"; -import { Feather, Ionicons } from "@expo/vector-icons"; +import { Feather } from "@expo/vector-icons"; import { LinearGradient } from "expo-linear-gradient"; import { router, Stack } from "expo-router"; import { useState } from "react"; -import { Image, Modal, Pressable, SafeAreaView, ScrollView, TouchableOpacity, View } from "react-native"; +import { Image, Pressable, RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; import ImageViewing from 'react-native-image-viewing'; -import { useSelector } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; export default function Profile() { const { colors } = useTheme(); const entities = useSelector((state: any) => state.entities) const [error, setError] = useState(false) const [preview, setPreview] = useState(false) + const [refreshing, setRefreshing] = useState(false) + const dispatch = useDispatch() + const { token, decryptToken } = useAuthSession() + + async function handleUserLogin() { + const hasil = await decryptToken(String(token?.current)) + apiGetProfile({ id: hasil }) + .then((data) => dispatch(setEntities(data.data))) + .catch((error) => { + console.error(error) + }); + } + + const handleRefresh = async () => { + setRefreshing(true) + handleUserLogin() + await new Promise(resolve => setTimeout(resolve, 2000)); + setRefreshing(false) + }; return ( @@ -43,7 +65,16 @@ export default function Profile() { ) }} /> - + + } + style={[Styles.h100, { backgroundColor: colors.background }]} + > } > diff --git a/app/(application)/project/index.tsx b/app/(application)/project/index.tsx index c08b44a..adcd1d7 100644 --- a/app/(application)/project/index.tsx +++ b/app/(application)/project/index.tsx @@ -275,6 +275,7 @@ export default function ListProject() { } /> @@ -353,6 +354,7 @@ export default function ListProject() { } /> diff --git a/app/(application)/search.tsx b/app/(application)/search.tsx index 7bc0e47..4412abe 100644 --- a/app/(application)/search.tsx +++ b/app/(application)/search.tsx @@ -103,7 +103,7 @@ export default function Search() { } > diff --git a/components/borderBottomItemVertical.tsx b/components/borderBottomItemVertical.tsx new file mode 100644 index 0000000..56e3403 --- /dev/null +++ b/components/borderBottomItemVertical.tsx @@ -0,0 +1,53 @@ +import Styles from "@/constants/Styles"; +import { useTheme } from "@/providers/ThemeProvider"; +import React, { useState } from "react"; +import { Dimensions, Pressable, View } from "react-native"; +import Text from "./Text"; + +type Props = { + title?: string + icon: React.ReactNode + desc?: string + rightTopInfo?: string + onPress?: () => void + onLongPress?: () => void + borderType: 'all' | 'bottom' | 'none' + titleWeight?: 'normal' | 'bold' + bgColor?: string + descEllipsize?: boolean + textColor?: string, + titleShowAll?: boolean +} + +export default function BorderBottomItemVertical({ title, icon, desc, onPress, onLongPress, rightTopInfo, borderType, titleWeight, bgColor, descEllipsize, textColor, titleShowAll }: Props) { + const { colors } = useTheme(); + const textColorFix = textColor ? textColor : colors.text; + + return ( + [ + borderType == 'bottom' + ? [Styles.wrapItemBorderBottom, { borderBottomColor: colors.icon + '20' }] + : borderType == 'all' + ? [Styles.wrapItemBorderAll, { borderColor: colors.icon + '20' }] + : Styles.wrapItemBorderNone, + bgColor == "transparent" ? { backgroundColor: 'transparent' } : { backgroundColor: colors.card }, + ]} + > + + {icon} + + + + {title} + + { + rightTopInfo && {rightTopInfo} + } + + {desc && {desc}} + + + + ) +} \ No newline at end of file diff --git a/components/modalSelect.tsx b/components/modalSelect.tsx index ea0f500..2b68035 100644 --- a/components/modalSelect.tsx +++ b/components/modalSelect.tsx @@ -162,7 +162,7 @@ export default function ModalSelect({ open, close, title, category, idParent, on category != 'status-task' ? data.length > 0 ? data.map((item: any, index: any) => ( - { onChoose(item.id, item.name, item.img) }}> + { onChoose(item.id, item.name, item.img) }}> { category == 'member' ? @@ -188,7 +188,7 @@ export default function ModalSelect({ open, close, title, category, idParent, on <> { dataStatus.map((item: any, index: any) => ( - { + { onSelect(item) close(false) }}> diff --git a/constants/Styles.ts b/constants/Styles.ts index c6bc640..6abc6d6 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -479,7 +479,7 @@ const Styles = StyleSheet.create({ borderColor: '#d6d8f6', borderWidth: 1, borderRadius: 5, - marginBottom: 10 + marginBottom: 5 }, wrapItemBorderNone: { padding: 10, @@ -584,7 +584,6 @@ const Styles = StyleSheet.create({ padding: 10, flexDirection: 'row', justifyContent: 'space-between', - borderColor: '#d6d8f6', borderBottomWidth: 1, alignItems: 'center' },