From 42bf1589b42565b31b89b79348313ff3cfe8a71e Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Tue, 29 Jul 2025 11:41:03 +0800 Subject: [PATCH 1/3] upd: tampilan Deskripsi: - masang toast - ganti tag Text No Issues --- app/(application)/_layout.tsx | 3 --- app/(application)/announcement/create.tsx | 8 ++++--- app/(application)/announcement/edit/[id].tsx | 7 +++--- app/(application)/banner/[id].tsx | 12 +++++----- app/(application)/banner/create.tsx | 10 ++++----- app/(application)/banner/index.tsx | 9 ++++---- .../discussion/add-member/[id].tsx | 5 +++-- app/(application)/discussion/create.tsx | 17 +++++--------- app/(application)/discussion/edit/[id].tsx | 5 +++-- app/(application)/discussion/index.tsx | 3 ++- app/(application)/discussion/member/[id].tsx | 5 +++-- .../calendar/[detail]/add-member.tsx | 10 +++++---- .../calendar/[detail]/edit.tsx | 11 +++++----- .../calendar/[detail]/index.tsx | 9 ++++---- .../calendar/create-member.tsx | 12 +++++----- .../(fitur-division)/calendar/history.tsx | 3 ++- .../[id]/(fitur-division)/calendar/index.tsx | 7 +++--- .../discussion/[detail]/edit.tsx | 5 +++-- .../discussion/[detail]/index.tsx | 7 +++--- .../(fitur-division)/discussion/create.tsx | 9 ++++---- .../(fitur-division)/discussion/index.tsx | 3 ++- .../[id]/(fitur-division)/document/index.tsx | 22 +++++++++---------- .../task/[detail]/add-file.tsx | 14 ++++++------ .../task/[detail]/add-member.tsx | 10 +++++---- .../task/[detail]/add-task.tsx | 12 +++++----- .../(fitur-division)/task/[detail]/cancel.tsx | 9 ++++---- .../(fitur-division)/task/[detail]/edit.tsx | 11 +++++----- .../[id]/(fitur-division)/task/create.tsx | 8 ++++--- .../(fitur-division)/task/create/member.tsx | 6 +++-- .../(fitur-division)/task/create/task.tsx | 2 +- .../[id]/(fitur-division)/task/index.tsx | 5 +++-- .../(fitur-division)/task/update/[detail].tsx | 16 ++++++-------- .../division/[id]/add-member.tsx | 10 +++++---- app/(application)/division/[id]/edit.tsx | 9 ++++---- app/(application)/division/[id]/info.tsx | 15 +++++++------ app/(application)/division/[id]/report.tsx | 7 +++--- .../division/create/add-admin-division.tsx | 10 +++++---- .../division/create/add-member.tsx | 4 ++-- app/(application)/division/report.tsx | 5 +++-- app/(application)/edit-profile.tsx | 12 +++++----- app/(application)/group/index.tsx | 8 ++++--- app/(application)/member/[id].tsx | 3 ++- app/(application)/member/create.tsx | 10 ++++----- app/(application)/member/edit/[id].tsx | 12 +++++----- app/(application)/member/index.tsx | 3 ++- app/(application)/notification.tsx | 3 ++- app/(application)/position/index.tsx | 8 ++++--- app/(application)/profile.tsx | 3 ++- app/(application)/project/[id]/add-file.tsx | 11 +++++----- app/(application)/project/[id]/add-member.tsx | 6 +++-- app/(application)/project/[id]/add-task.tsx | 8 +++---- app/(application)/project/[id]/cancel.tsx | 7 +++--- app/(application)/project/[id]/edit.tsx | 5 +++-- app/(application)/project/create.tsx | 15 +++++-------- app/(application)/project/create/task.tsx | 2 +- app/(application)/project/index.tsx | 3 ++- app/(application)/project/update/[detail].tsx | 8 ++++--- app/(application)/search.tsx | 9 ++++---- .../announcement/headerAnnouncementDetail.tsx | 5 +++-- components/calendar/headerCalendarDetail.tsx | 9 ++++---- components/calendar/itemDateCalendar.tsx | 3 ++- components/calendar/itemHistoryEvent.tsx | 3 ++- .../discussion/headerDiscussionDetail.tsx | 15 +++++++------ .../headerDiscussionDetail.tsx | 7 +++--- components/division/headerDivisionInfo.tsx | 9 ++++---- components/division/reportChartDocument.tsx | 3 ++- components/division/reportChartEvent.tsx | 3 ++- components/division/reportChartProgress.tsx | 3 ++- components/document/headerDocument.tsx | 15 +++++++------ .../document/menuBottomSelectDocument.tsx | 10 +++++---- components/document/modalInformasi.tsx | 3 ++- components/document/modalMore.tsx | 15 +++++++------ components/group/headerGroupList.tsx | 5 +++-- components/inputDate.tsx | 3 ++- components/member/headerMemberDetail.tsx | 11 +++++----- components/modalSelectMultiple.tsx | 7 +++--- .../position/headerRightPositionList.tsx | 5 +++-- components/project/headerProjectDetail.tsx | 7 +++--- components/project/sectionFile.tsx | 10 +++++---- components/project/sectionListAddTask.tsx | 3 ++- components/project/sectionMember.tsx | 6 +++-- components/project/sectionTanggalTugas.tsx | 8 ++++--- components/task/headerTaskDetail.tsx | 11 +++++----- components/task/sectionFileTask.tsx | 10 +++++---- components/task/sectionMemberTask.tsx | 10 +++++---- components/task/sectionTanggalTugasTask.tsx | 16 ++++++++------ 86 files changed, 379 insertions(+), 307 deletions(-) diff --git a/app/(application)/_layout.tsx b/app/(application)/_layout.tsx index a1664d0..eaf62fb 100644 --- a/app/(application)/_layout.tsx +++ b/app/(application)/_layout.tsx @@ -9,7 +9,6 @@ import HeaderRightProjectList from "@/components/project/headerProjectList"; import Text from "@/components/Text"; import ToastCustom from "@/components/toastCustom"; import { Headers } from "@/constants/Headers"; -import Styles from "@/constants/Styles"; import { apiReadOneNotification } from "@/lib/api"; import { pushToPage } from "@/lib/pushToPage"; import store from "@/lib/store"; @@ -18,9 +17,7 @@ import firebase from '@react-native-firebase/app'; import { Redirect, router, Stack } from "expo-router"; import { StatusBar } from 'expo-status-bar'; import { useEffect } from "react"; -import { View } from "react-native"; import { Easing, Notifier } from 'react-native-notifier'; -import Toast from "react-native-toast-message"; import { Provider } from "react-redux"; export default function RootLayout() { diff --git a/app/(application)/announcement/create.tsx b/app/(application)/announcement/create.tsx index fb15d8f..76bc6b4 100644 --- a/app/(application)/announcement/create.tsx +++ b/app/(application)/announcement/create.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import { InputForm } from "@/components/inputForm"; import ModalSelectMultiple from "@/components/modalSelectMultiple"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { setUpdateAnnouncement } from "@/lib/announcementUpdate"; import { apiCreateAnnouncement } from "@/lib/api"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { Entypo } from "@expo/vector-icons"; import { router, Stack } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, StyleSheet, Text, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, StyleSheet, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function CreateAnnouncement() { @@ -70,7 +72,7 @@ export default function CreateAnnouncement() { }); if (response.success) { dispatch(setUpdateAnnouncement(!update)) - ToastAndroid.show("Berhasil menambahkan data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) router.back(); } } catch (error) { @@ -97,7 +99,7 @@ export default function CreateAnnouncement() { category="create" onPress={() => { divisionMember.length == 0 - ? ToastAndroid.show("Anda belum memilih divisi", ToastAndroid.SHORT) + ? 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 b1ac9e7..803a14e 100644 --- a/app/(application)/announcement/edit/[id].tsx +++ b/app/(application)/announcement/edit/[id].tsx @@ -11,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { Entypo } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; @@ -114,7 +115,7 @@ export default function EditAnnouncement() { }, id); if (response.success) { dispatch(setUpdateAnnouncement(!update)) - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back(); } } catch (error) { @@ -141,7 +142,7 @@ export default function EditAnnouncement() { category="update" onPress={() => { dataMember.length == 0 - ? ToastAndroid.show("Anda belum memilih divisi", ToastAndroid.SHORT) + ? 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 446fdd5..e38ea96 100644 --- a/app/(application)/banner/[id].tsx +++ b/app/(application)/banner/[id].tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiEditBanner, apiGetBanner, apiGetBannerOne } from "@/lib/api"; import { setEntities } from "@/lib/bannerSlice"; @@ -14,10 +15,9 @@ import { Pressable, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch } from "react-redux"; export default function EditBanner() { @@ -94,17 +94,17 @@ export default function EditBanner() { const updatedEntity = await apiEditBanner(fd, id) if (updatedEntity.success) { - ToastAndroid.show("Berhasil mengupdate data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) apiGetBanner({ user: hasil }).then((data) => dispatch(setEntities(data.data)) ); router.back(); } else { - ToastAndroid.show('Gagal mengupdate data', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal mengupdate data', }) } } catch (error) { console.error(error); - ToastAndroid.show('Gagal mengupdate data', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal mengupdate data', }) } }; diff --git a/app/(application)/banner/create.tsx b/app/(application)/banner/create.tsx index a8a5033..31eb152 100644 --- a/app/(application)/banner/create.tsx +++ b/app/(application)/banner/create.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateBanner, apiGetBanner } from "@/lib/api"; import { setEntities } from "@/lib/bannerSlice"; @@ -14,10 +15,9 @@ import { Pressable, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch } from "react-redux"; export default function CreateBanner() { @@ -76,13 +76,13 @@ export default function CreateBanner() { const createdEntity = await apiCreateBanner(fd); if (createdEntity.success) { - ToastAndroid.show("Berhasil menambahkan data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) apiGetBanner({ user: hasil }).then((data) => dispatch(setEntities(data.data)) ); router.back(); } else { - ToastAndroid.show('Gagal menambahkan data', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal menambahkan data', }) } }; diff --git a/app/(application)/banner/index.tsx b/app/(application)/banner/index.tsx index 643ef97..52148a3 100644 --- a/app/(application)/banner/index.tsx +++ b/app/(application)/banner/index.tsx @@ -15,8 +15,9 @@ import { startActivityAsync } from 'expo-intent-launcher' import { router, Stack } from "expo-router" import * as Sharing from 'expo-sharing' import { useState } from "react" -import { Alert, Image, Platform, RefreshControl, SafeAreaView, ScrollView, ToastAndroid, View } from "react-native" +import { Alert, Image, Platform, RefreshControl, SafeAreaView, ScrollView, View } from "react-native" import * as mime from 'react-native-mime-types' +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" @@ -42,16 +43,16 @@ export default function BannerList() { const hasil = await decryptToken(String(token?.current)); const deletedEntity = await apiDeleteBanner({ user: hasil }, dataId); if (deletedEntity.success) { - ToastAndroid.show("Berhasil menghapus data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) apiGetBanner({ user: hasil }).then((data) => dispatch(setEntities(data.data)) ); } else { - ToastAndroid.show('Gagal menghapus data', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal menghapus data', }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setModal(false) } diff --git a/app/(application)/discussion/add-member/[id].tsx b/app/(application)/discussion/add-member/[id].tsx index d53bf68..d2657ac 100644 --- a/app/(application)/discussion/add-member/[id].tsx +++ b/app/(application)/discussion/add-member/[id].tsx @@ -11,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -72,7 +73,7 @@ export default function AddMemberDiscussionDetail() { const hasil = await decryptToken(String(token?.current)) const response = await apiAddMemberDiscussionGeneral({ id: id, data: { user: hasil, member: selectMember } }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan anggota', }) dispatch(setUpdateDiscussionGeneralDetail(!update)) router.back() } diff --git a/app/(application)/discussion/create.tsx b/app/(application)/discussion/create.tsx index f39ca3b..c78da75 100644 --- a/app/(application)/discussion/create.tsx +++ b/app/(application)/discussion/create.tsx @@ -14,7 +14,8 @@ import { setMemberChoose } from "@/lib/memberChoose"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; @@ -98,7 +99,7 @@ export default function CreateDiscussionGeneral() { if (response.success) { dispatch(setMemberChoose([])) dispatch(setUpdateDiscussionGeneralDetail(!update)) - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) router.back() } } catch (error) { @@ -123,10 +124,7 @@ export default function CreateDiscussionGeneral() { disable={disableBtn} onPress={() => { entitiesMember.length == 0 - ? ToastAndroid.show( - "Anda belum memilih anggota", - ToastAndroid.SHORT - ) + ? Toast.show({ type: 'small', text1: 'Anda belum memilih anggota', }) : handleCreate() }} /> @@ -179,12 +177,9 @@ export default function CreateDiscussionGeneral() { setSelect(true); setValSelect("member"); } else { - ToastAndroid.show( - "Pilih Lembaga Desa terlebih dahulu", - ToastAndroid.SHORT - ); + Toast.show({ type: 'small', text1: 'Pilih Lembaga Desa terlebih dahulu', }) } - }else{ + } else { validationForm('group', userLogin.idGroup, userLogin.group); setValChoose(userLogin.idGroup) setSelect(true); diff --git a/app/(application)/discussion/edit/[id].tsx b/app/(application)/discussion/edit/[id].tsx index 1a2d171..6503f9d 100644 --- a/app/(application)/discussion/edit/[id].tsx +++ b/app/(application)/discussion/edit/[id].tsx @@ -7,7 +7,8 @@ import { setUpdateDiscussionGeneralDetail } from "@/lib/discussionGeneralDetail" import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function EditDiscussionGeneral() { @@ -83,7 +84,7 @@ export default function EditDiscussionGeneral() { const response = await apiEditDiscussionGeneral({ user: hasil, title: dataForm.title, desc: dataForm.desc }, id); if (response.success) { dispatch(setUpdateDiscussionGeneralDetail(!update)) - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back(); } } catch (error) { diff --git a/app/(application)/discussion/index.tsx b/app/(application)/discussion/index.tsx index 1c16c94..7a8a09a 100644 --- a/app/(application)/discussion/index.tsx +++ b/app/(application)/discussion/index.tsx @@ -3,6 +3,7 @@ import ButtonTab from "@/components/buttonTab"; import InputSearch from "@/components/inputSearch"; import LabelStatus from "@/components/labelStatus"; import SkeletonContent from "@/components/skeletonContent"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetDiscussionGeneral } from "@/lib/api"; @@ -10,7 +11,7 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Feather, Ionicons, MaterialIcons } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { RefreshControl, Text, View, VirtualizedList } from "react-native"; +import { RefreshControl, View, VirtualizedList } from "react-native"; import { useSelector } from "react-redux"; diff --git a/app/(application)/discussion/member/[id].tsx b/app/(application)/discussion/member/[id].tsx index e1fc3a5..b62173f 100644 --- a/app/(application)/discussion/member/[id].tsx +++ b/app/(application)/discussion/member/[id].tsx @@ -13,7 +13,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { Feather, MaterialCommunityIcons } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useSelector } from "react-redux"; type Props = { @@ -59,7 +60,7 @@ export default function MemberDiscussionDetail() { try { const hasil = await decryptToken(String(token?.current)) await apiDeleteMemberDiscussionGeneral({ user: hasil, idUser: chooseUser.idUser }, id) - ToastAndroid.show("Berhasil mengeluarkan anggota dari diskusi", ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengeluarkan anggota dari diskusi', }) handleLoad(false) } catch (error) { console.error(error) diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/add-member.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/add-member.tsx index 1b3d528..d6b43c9 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/add-member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/add-member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiAddMemberCalendar, apiGetCalendarOne, apiGetDivisionMember } from "@/lib/api"; import { setUpdateCalendar } from "@/lib/calendarUpdate"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -79,15 +81,15 @@ export default function AddMemberCalendarEvent() { const hasil = await decryptToken(String(token?.current)) const response = await apiAddMemberCalendar({ id: idCalendar, data: { user: hasil, member: selectMember } }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan anggota', }) dispatch(setUpdateCalendar({ ...update, member: !update.member })) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/edit.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/edit.tsx index 5145439..a571d3c 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/edit.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/edit.tsx @@ -12,7 +12,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { Stack, router, useLocalSearchParams } from "expo-router" import moment from "moment" import { useEffect, useState } from "react" -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native" +import { SafeAreaView, ScrollView, View } from "react-native" +import Toast from "react-native-toast-message" export default function EditEventCalendar() { const { token, decryptToken } = useAuthSession(); @@ -53,7 +54,7 @@ export default function EditEventCalendar() { setChoose({ val: response.data.repeatEventTyper, label: valueTypeEventRepeat.find((item) => item.id == response.data.repeatEventTyper)?.name || "" }) } catch (error) { console.error(error); - ToastAndroid.show('Gagal mendapatkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal mendapatkan data', }) } } @@ -143,13 +144,13 @@ export default function EditEventCalendar() { const response = await apiUpdateCalendar({ data: { ...data, user: hasil }, id: idCalendar }) if (response.success) { router.replace(`/division/${id}/calendar/`) - ToastAndroid.show('Berhasil mengubah acara', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengubah acara', }) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal mengubah acara', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal mengubah acara', }) } } 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 a9b56a8..a88ba2d 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/[detail]/index.tsx @@ -13,7 +13,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { MaterialCommunityIcons } from "@expo/vector-icons" import { router, Stack, useLocalSearchParams } from "expo-router" import { useEffect, useState } from "react" -import { SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native" +import { SafeAreaView, ScrollView, Text, View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" type Props = { @@ -122,13 +123,11 @@ export default function DetailEventCalendar() { if (response.success) { dispatch(setUpdateCalendar({ ...update, member: !update.member })); - ToastAndroid.show(response.message, ToastAndroid.SHORT); - } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); } + Toast.show({ type: 'small', text1: response.message, }) } catch (error) { console.error(error); - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setModalMember(false) } diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/create-member.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/create-member.tsx index fe494f6..6d77920 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/create-member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/create-member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateCalendar, apiGetDivisionMember } from "@/lib/api"; import { setFormCreateCalendar } from "@/lib/calendarCreate"; @@ -11,7 +12,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -59,7 +61,7 @@ export default function CreateCalendarAddMember() { const hasil = await decryptToken(String(token?.current)) const response = await apiCreateCalendar({ data: { ...update, user: hasil, idDivision: id, member: selectMember } }) if (response.success) { - ToastAndroid.show('Berhasil membuat acara', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil membuat acara', }) dispatch(setFormCreateCalendar({ title: "", desc: "", @@ -74,11 +76,11 @@ export default function CreateCalendarAddMember() { dispatch(setUpdateCalendar({ ...updateRefresh, data: !updateRefresh.data })); router.replace(`/division/${id}/calendar`) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal membuat acara', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal membuat acara', }) } } @@ -131,7 +133,7 @@ export default function CreateCalendarAddMember() { {onChoose(item.idUser, item.name, item.img) }} + onPress={() => { onChoose(item.idUser, item.name, item.img) }} > diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx index 92ffcd1..9215379 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx @@ -1,12 +1,13 @@ import InputSearch from "@/components/inputSearch"; import Skeleton from "@/components/skeleton"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetCalendarHistory } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { FlatList, Text, View, VirtualizedList } from "react-native"; +import { FlatList, View, VirtualizedList } from "react-native"; type Props = { dateStart: Date diff --git a/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx b/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx index 35d4d8a..be93162 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/index.tsx @@ -1,19 +1,20 @@ -import 'intl'; -import 'intl/locale-data/jsonp/id'; import ButtonBackHeader from "@/components/buttonBackHeader"; import HeaderRightCalendarList from "@/components/calendar/headerCalendarList"; import ItemDateCalendar from "@/components/calendar/itemDateCalendar"; import EventItem from "@/components/eventItem"; import Skeleton from "@/components/skeleton"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetCalendarByDateDivision, apiGetIndicatorCalendar } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { Feather } from "@expo/vector-icons"; import dayjs from "dayjs"; import { router, Stack, useLocalSearchParams } from "expo-router"; +import 'intl'; +import 'intl/locale-data/jsonp/id'; import moment from "moment"; import { useEffect, useState } from "react"; -import { Pressable, RefreshControl, SafeAreaView, ScrollView, Text, View } from "react-native"; +import { Pressable, RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; import Datepicker, { CalendarComponents, CalendarDay diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx index 139fa83..fcf8b9a 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx @@ -7,7 +7,8 @@ import { setUpdateDiscussion } from "@/lib/discussionUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function DiscussionDivisionEdit() { @@ -43,7 +44,7 @@ export default function DiscussionDivisionEdit() { id: detail, }); if (response.success) { - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) dispatch(setUpdateDiscussion({ ...update, data: !update.data })); router.back(); } 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 e09a5d2..90a6c5b 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/index.tsx @@ -6,6 +6,7 @@ import { InputForm } from "@/components/inputForm"; import LabelStatus from "@/components/labelStatus"; import Skeleton from "@/components/skeleton"; import SkeletonContent from "@/components/skeletonContent"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetDiscussionOne, @@ -17,7 +18,7 @@ import { Ionicons, MaterialIcons } from "@expo/vector-icons"; import { firebase } from "@react-native-firebase/database"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, ScrollView, Text, View } from "react-native"; +import { Pressable, ScrollView, View } from "react-native"; import { useSelector } from "react-redux"; type Props = { @@ -226,9 +227,7 @@ export default function DiscussionDetail() { color="grey" style={Styles.mr05} /> - + {dataComment.length} Komentar diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/create.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/create.tsx index 374c1d9..152cba0 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/create.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/create.tsx @@ -7,7 +7,8 @@ import { setUpdateDiscussion } from "@/lib/discussionUpdate" import { useAuthSession } from "@/providers/AuthProvider" import { router, Stack, useLocalSearchParams } from "expo-router" import { useState } from "react" -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native" +import { SafeAreaView, ScrollView, View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" export default function CreateDiscussionDivision() { @@ -22,15 +23,15 @@ export default function CreateDiscussionDivision() { const hasil = await decryptToken(String(token?.current)) const response = await apiCreateDiscussion({ data: { user: hasil, desc, idDivision: id } }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) dispatch(setUpdateDiscussion({ ...update, data: !update.data })); router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx index 29c2d9c..6dec493 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx @@ -4,13 +4,14 @@ import ImageUser from "@/components/imageNew"; import InputSearch from "@/components/inputSearch"; import LabelStatus from "@/components/labelStatus"; import SkeletonContent from "@/components/skeletonContent"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetDiscussion } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Feather, Ionicons } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { RefreshControl, Text, View, VirtualizedList } from "react-native"; +import { RefreshControl, View, VirtualizedList } from "react-native"; import { useSelector } from "react-redux"; diff --git a/app/(application)/division/[id]/(fitur-division)/document/index.tsx b/app/(application)/division/[id]/(fitur-division)/document/index.tsx index 1b1bf61..9eb1ec3 100644 --- a/app/(application)/division/[id]/(fitur-division)/document/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/document/index.tsx @@ -39,10 +39,10 @@ import { RefreshControl, SafeAreaView, ScrollView, - ToastAndroid, - View, + View } from "react-native"; import * as mime from 'react-native-mime-types'; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -207,15 +207,15 @@ export default function DocumentDivision() { const hasil = await decryptToken(String(token?.current)); const response = await apiDocumentRename({ user: hasil, ...bodyRename }); if (response.success) { - ToastAndroid.show("Berhasil mengubah nama", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah nama', }) dispatch(setUpdateDokumen(!update)); handleBatal(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setRename(false); } @@ -229,15 +229,15 @@ export default function DocumentDivision() { data: selectedFiles, }); if (response.success) { - ToastAndroid.show("Berhasil menghapus", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menghapus', }) dispatch(setUpdateDokumen(!update)); handleBatal(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } @@ -254,15 +254,15 @@ export default function DocumentDivision() { dataItem: selectedFiles, }); if (response.success) { - ToastAndroid.show("Berhasil membagikan item", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil membagikan item', }) dispatch(setUpdateDokumen(!update)); handleBatal(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setShare(false); } diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-file.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-file.tsx index 7bc7edd..9da4b3d 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-file.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-file.tsx @@ -4,6 +4,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import MenuItemRow from "@/components/menuItemRow"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiAddFileTask, apiCheckFileTask } from "@/lib/api"; import { setUpdateTask } from "@/lib/taskUpdate"; @@ -16,10 +17,9 @@ import { ActivityIndicator, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function TaskDivisionAddFile() { @@ -45,7 +45,7 @@ export default function TaskDivisionAddFile() { setFileForm([...fileForm, result.assets?.[0]]); setListFile([...listFile, result.assets?.[0].name]); } else { - ToastAndroid.show("File sudah ada", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'File sudah ada', }) } } } @@ -108,15 +108,15 @@ export default function TaskDivisionAddFile() { const response = await apiAddFileTask({ data: fd, id: detail }); if (response.success) { - ToastAndroid.show("Berhasil menambahkan file", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menambahkan file', }) dispatch(setUpdateTask({ ...update, file: !update.file })); router.back(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx index b84fae5..55fd0a4 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiAddMemberTask, apiGetDivisionMember, apiGetTaskOne } from "@/lib/api"; import { setUpdateTask } from "@/lib/taskUpdate"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -73,15 +75,15 @@ export default function AddMemberTask() { const hasil = await decryptToken(String(token?.current)) const response = await apiAddMemberTask({ id: detail, data: { user: hasil, member: selectMember, idDivision: id } }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan anggota', }) dispatch(setUpdateTask({ ...update, member: !update.member })) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal menambahkan anggota', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-task.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-task.tsx index 27d9956..a98fce6 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-task.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-task.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateTaskTugas } from "@/lib/api"; import { setUpdateTask } from "@/lib/taskUpdate"; @@ -11,10 +12,9 @@ import { useEffect, useState } from "react"; import { SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import DateTimePicker, { DateType } from "react-native-ui-datepicker"; import { useDispatch, useSelector } from "react-redux"; @@ -86,14 +86,14 @@ export default function TaskDivisionAddTask() { }); if (response.success) { dispatch(setUpdateTask({ ...update, task: !update.task, progress: !update.progress })); - ToastAndroid.show("Berhasil menambah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menambah data', }) router.back(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Gagal menambah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal menambah data', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/cancel.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/cancel.tsx index 181bfc1..af5aca7 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/cancel.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/cancel.tsx @@ -7,7 +7,8 @@ import { setUpdateTask } from "@/lib/taskUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function TaskDivisionCancel() { @@ -52,14 +53,14 @@ export default function TaskDivisionCancel() { ); if (response.success) { dispatch(setUpdateTask({ ...update, data: !update.data })); - ToastAndroid.show("Berhasil membatalkan kegiatan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil membatalkan kegiatan', }) router.back(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Gagal membatalkan kegiatan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Gagal membatalkan kegiatan', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/edit.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/edit.tsx index 9564c9b..9bd6f97 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/edit.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/edit.tsx @@ -7,7 +7,8 @@ import { setUpdateTask } from "@/lib/taskUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function TaskDivisionEdit() { @@ -41,7 +42,7 @@ export default function TaskDivisionEdit() { setJudul(val); if (val == "" || val == "null") { setError(true); - }else{ + } else { setError(false); } } @@ -70,14 +71,14 @@ export default function TaskDivisionEdit() { ); if (response.success) { dispatch(setUpdateTask({ ...update, data: !update.data })); - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back(); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/create.tsx b/app/(application)/division/[id]/(fitur-division)/task/create.tsx index cc96bbb..db44ec5 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/create.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/create.tsx @@ -8,6 +8,7 @@ import { InputForm } from "@/components/inputForm"; import MenuItemRow from "@/components/menuItemRow"; import ModalSelect from "@/components/modalSelect"; import SectionListAddTask from "@/components/project/sectionListAddTask"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateTask } from "@/lib/api"; import { setMemberChoose } from "@/lib/memberChoose"; @@ -18,7 +19,8 @@ import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import * as DocumentPicker from "expo-document-picker"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; @@ -91,10 +93,10 @@ export default function CreateTaskDivision() { const response = await apiCreateTask(fd) if (response.success) { dispatch(setUpdateTask({ ...update, data: !update.data })) - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) handleBack() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) diff --git a/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx b/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx index b81db06..e36c915 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetDivisionMember } from "@/lib/api"; import { setMemberChoose } from "@/lib/memberChoose"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -56,7 +58,7 @@ export default function AddMemberCreateTask() { router.back() } catch (error) { console.error(error) - ToastAndroid.show('Gagal menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal menambahkan anggota', }) } } diff --git a/app/(application)/division/[id]/(fitur-division)/task/create/task.tsx b/app/(application)/division/[id]/(fitur-division)/task/create/task.tsx index 69c1c2c..ddff5ae 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/create/task.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/create/task.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { setTaskCreate } from "@/lib/taskCreate"; import dayjs from "dayjs"; @@ -9,7 +10,6 @@ import { useEffect, useState } from "react"; import { SafeAreaView, ScrollView, - Text, View } from "react-native"; import DateTimePicker, { diff --git a/app/(application)/division/[id]/(fitur-division)/task/index.tsx b/app/(application)/division/[id]/(fitur-division)/task/index.tsx index 208ac17..8b434d3 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/index.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/index.tsx @@ -6,6 +6,7 @@ import PaperGridContent from "@/components/paperGridContent"; import ProgressBar from "@/components/progressBar"; import Skeleton from "@/components/skeleton"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetTask } from "@/lib/api"; @@ -17,7 +18,7 @@ import { } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, RefreshControl, ScrollView, Text, View, VirtualizedList } from "react-native"; +import { Pressable, RefreshControl, ScrollView, View, VirtualizedList } from "react-native"; import { useSelector } from "react-redux"; type Props = { @@ -257,7 +258,7 @@ export default function ListTask() { > - + {(error.endDate || error.startDate) && ( - + Tanggal tidak boleh kosong )} diff --git a/app/(application)/division/[id]/add-member.tsx b/app/(application)/division/[id]/add-member.tsx index 6539177..b7011e9 100644 --- a/app/(application)/division/[id]/add-member.tsx +++ b/app/(application)/division/[id]/add-member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiAddMemberDivision, apiGetDivisionOneDetail, apiGetUser } from "@/lib/api"; import { setUpdateDivision } from "@/lib/divisionUpdate"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -74,14 +76,14 @@ export default function AddMemberDivision() { const response = await apiAddMemberDivision({ id: id, data: { user: hasil, member: selectMember } }) if (response.success) { dispatch(setUpdateDivision(!update)) - ToastAndroid.show('Berhasil menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan anggota', }) router.replace(`/division/${id}/info`) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal menambahkan anggota', }) } } diff --git a/app/(application)/division/[id]/edit.tsx b/app/(application)/division/[id]/edit.tsx index 5b96aca..7e18d96 100644 --- a/app/(application)/division/[id]/edit.tsx +++ b/app/(application)/division/[id]/edit.tsx @@ -7,7 +7,8 @@ import { setUpdateDivision } from "@/lib/divisionUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function EditDivision() { @@ -46,14 +47,14 @@ export default function EditDivision() { const response = await apiEditDivision({ user: hasil, name: data.name, desc: data.desc }, id) if (response.success) { dispatch(setUpdateDivision(!update)) - ToastAndroid.show('Berhasil mengubah data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/division/[id]/info.tsx b/app/(application)/division/[id]/info.tsx index 36fb2ac..1bff143 100644 --- a/app/(application)/division/[id]/info.tsx +++ b/app/(application)/division/[id]/info.tsx @@ -14,7 +14,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { Feather, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router, Stack, useLocalSearchParams } from "expo-router" import { useEffect, useState } from "react" -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native" +import { Pressable, SafeAreaView, ScrollView, Text, View } from "react-native" +import Toast from "react-native-toast-message" import { useSelector } from "react-redux" type PropsDetail = { @@ -66,13 +67,13 @@ export default function InformationDivision() { const response = await apiDeleteMemberDivision({ user: hasil, id: dataMemberChoose.id }, id) if (response.success) { setRefresh(!refresh) - ToastAndroid.show('Berhasil mengeluarkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengeluarkan anggota', }) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setModal(false) } @@ -84,13 +85,13 @@ export default function InformationDivision() { const response = await apiUpdateStatusAdminDivision({ user: hasil, id: dataMemberChoose.id, isAdmin: dataMemberChoose.isAdmin }, id) if (response.success) { setRefresh(!refresh) - ToastAndroid.show(dataMemberChoose.isAdmin ? 'Berhasil memberhentikan admin' : 'Berhasil menjadi admin', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: dataMemberChoose.isAdmin ? 'Berhasil memberhentikan admin' : 'Berhasil menjadi admin', }) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setModal(false) } diff --git a/app/(application)/division/[id]/report.tsx b/app/(application)/division/[id]/report.tsx index 98da83c..bb8fa11 100644 --- a/app/(application)/division/[id]/report.tsx +++ b/app/(application)/division/[id]/report.tsx @@ -10,7 +10,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import dayjs from "dayjs" import { router, Stack, useLocalSearchParams } from "expo-router" import { useEffect, useState } from "react" -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native" +import { SafeAreaView, ScrollView, View } from "react-native" +import Toast from "react-native-toast-message" export default function ReportDivision() { const { id } = useLocalSearchParams<{ id: string }>() @@ -31,7 +32,7 @@ export default function ReportDivision() { dateEnd: false, }); - function validationForm( cat: "date" | "dateEnd", val: string) { + function validationForm(cat: "date" | "dateEnd", val: string) { if (cat == "date") { setData({ ...data, date: val, dateEnd: "" }); if (val == "" || val == "null") { @@ -89,7 +90,7 @@ export default function ReportDivision() { }) setShowReport(true); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }); } } catch (error) { console.error(error); diff --git a/app/(application)/division/create/add-admin-division.tsx b/app/(application)/division/create/add-admin-division.tsx index 1056d4c..625cdb7 100644 --- a/app/(application)/division/create/add-admin-division.tsx +++ b/app/(application)/division/create/add-admin-division.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateDivision } from "@/lib/api"; import { setFormCreateDivision } from "@/lib/divisionCreate"; @@ -9,7 +10,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -50,16 +52,16 @@ export default function CreateDivisionAddAdmin() { const hasil = await decryptToken(String(token?.current)) const response = await apiCreateDivision({ ...update, user: hasil }) if (response.success) { - ToastAndroid.show('Berhasil membuat divisi', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil membuat divisi', }) dispatch(setFormCreateDivision({ admin: [], member: [], data: { idGroup: '', name: '', desc: '' } })) dispatch(setUpdateDivision(!updateDivision)) router.replace(`/division/`) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal membuat divisi', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal membuat divisi', }) } } diff --git a/app/(application)/division/create/add-member.tsx b/app/(application)/division/create/add-member.tsx index c98e890..3adb9ba 100644 --- a/app/(application)/division/create/add-member.tsx +++ b/app/(application)/division/create/add-member.tsx @@ -3,15 +3,15 @@ import ButtonNextHeader from "@/components/buttonNextHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetUser } from "@/lib/api"; import { setFormCreateDivision } from "@/lib/divisionCreate"; -import { setUpdateDivision } from "@/lib/divisionUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; import { useDispatch, useSelector } from "react-redux"; type Props = { diff --git a/app/(application)/division/report.tsx b/app/(application)/division/report.tsx index b101b8c..c3e5756 100644 --- a/app/(application)/division/report.tsx +++ b/app/(application)/division/report.tsx @@ -12,7 +12,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import dayjs from "dayjs"; import { router, Stack } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; export default function Report() { const { token, decryptToken } = useAuthSession(); @@ -107,7 +108,7 @@ export default function Report() { }) setShowReport(true); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); diff --git a/app/(application)/edit-profile.tsx b/app/(application)/edit-profile.tsx index ba8d73b..aa7cea5 100644 --- a/app/(application)/edit-profile.tsx +++ b/app/(application)/edit-profile.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import ModalSelect from "@/components/modalSelect"; import SelectForm from "@/components/selectForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiEditProfile, apiGetProfile } from "@/lib/api"; import { setEntities } from "@/lib/entitiesSlice"; @@ -15,10 +16,9 @@ import { Pressable, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -170,15 +170,15 @@ export default function EditProfile() { const response = await apiEditProfile(fd) if (response.success) { - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) await handleLoad() router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal mengupdate data', }) } } diff --git a/app/(application)/group/index.tsx b/app/(application)/group/index.tsx index e31e36e..be71d43 100644 --- a/app/(application)/group/index.tsx +++ b/app/(application)/group/index.tsx @@ -7,6 +7,7 @@ import { InputForm } from "@/components/inputForm"; import InputSearch from "@/components/inputSearch"; import MenuItemRow from "@/components/menuItemRow"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiDeleteGroup, apiEditGroup, apiGetGroup } from "@/lib/api"; @@ -14,7 +15,8 @@ import { setUpdateGroup } from "@/lib/groupSlice"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Feather, MaterialCommunityIcons } from "@expo/vector-icons"; import { useEffect, useState } from "react"; -import { RefreshControl, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -60,7 +62,7 @@ export default function Index() { } finally { setVisibleEdit(false) setModal(false) - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) } } @@ -74,7 +76,7 @@ export default function Index() { console.error(error) } finally { setModal(false) - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) } } diff --git a/app/(application)/member/[id].tsx b/app/(application)/member/[id].tsx index 32b591b..02b6686 100644 --- a/app/(application)/member/[id].tsx +++ b/app/(application)/member/[id].tsx @@ -3,12 +3,13 @@ import ImageUser from "@/components/imageNew"; import ItemDetailMember from "@/components/itemDetailMember"; import HeaderRightMemberDetail from "@/components/member/headerMemberDetail"; import Skeleton from "@/components/skeleton"; +import Text from "@/components/Text"; 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 { SafeAreaView, ScrollView, Text, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; import { useSelector } from "react-redux"; type Props = { diff --git a/app/(application)/member/create.tsx b/app/(application)/member/create.tsx index c56dca4..6c45209 100644 --- a/app/(application)/member/create.tsx +++ b/app/(application)/member/create.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import ModalSelect from "@/components/modalSelect"; import SelectForm from "@/components/selectForm"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiCreateUser } from "@/lib/api"; @@ -17,10 +18,9 @@ import { Pressable, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function CreateMember() { @@ -162,11 +162,11 @@ export default function CreateMember() { const response = await apiCreateUser(fd) if (response.success) { - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) dispatch(setUpdateMember(!update)) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) diff --git a/app/(application)/member/edit/[id].tsx b/app/(application)/member/edit/[id].tsx index 12b44f3..0fef919 100644 --- a/app/(application)/member/edit/[id].tsx +++ b/app/(application)/member/edit/[id].tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; import ModalSelect from "@/components/modalSelect"; import SelectForm from "@/components/selectForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiEditUser, apiGetProfile } from "@/lib/api"; import { setUpdateMember } from "@/lib/memberSlice"; @@ -15,10 +16,9 @@ import { Pressable, SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -193,15 +193,15 @@ export default function EditMember() { const response = await apiEditUser(fd, id) if (response.success) { - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) dispatch(setUpdateMember(!update)) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Gagal mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal mengupdate data', }) } } diff --git a/app/(application)/member/index.tsx b/app/(application)/member/index.tsx index e817801..b1b93d5 100644 --- a/app/(application)/member/index.tsx +++ b/app/(application)/member/index.tsx @@ -3,13 +3,14 @@ import ButtonTab from "@/components/buttonTab"; import ImageUser from "@/components/imageNew"; import InputSearch from "@/components/inputSearch"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetUser } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Feather } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { RefreshControl, Text, View, VirtualizedList } from "react-native"; +import { RefreshControl, View, VirtualizedList } from "react-native"; import { useSelector } from "react-redux"; type Props = { diff --git a/app/(application)/notification.tsx b/app/(application)/notification.tsx index b872806..7bf503b 100644 --- a/app/(application)/notification.tsx +++ b/app/(application)/notification.tsx @@ -1,5 +1,6 @@ import BorderBottomItem from "@/components/borderBottomItem"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetNotification, apiReadOneNotification } from "@/lib/api"; @@ -8,7 +9,7 @@ import { pushToPage } from "@/lib/pushToPage"; import { useAuthSession } from "@/providers/AuthProvider"; import { Feather } from "@expo/vector-icons"; import { useEffect, useState } from "react"; -import { SafeAreaView, Text, View, VirtualizedList } from "react-native"; +import { SafeAreaView, View, VirtualizedList } from "react-native"; import { useDispatch, useSelector } from "react-redux"; type Props = { diff --git a/app/(application)/position/index.tsx b/app/(application)/position/index.tsx index 2462fba..79e7452 100644 --- a/app/(application)/position/index.tsx +++ b/app/(application)/position/index.tsx @@ -7,6 +7,7 @@ import { InputForm } from "@/components/inputForm"; import InputSearch from "@/components/inputSearch"; import MenuItemRow from "@/components/menuItemRow"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiDeletePosition, apiEditPosition, apiGetPosition } from "@/lib/api"; @@ -15,7 +16,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Feather, MaterialCommunityIcons } from "@expo/vector-icons"; import { useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { RefreshControl, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -85,7 +87,7 @@ export default function Index() { console.error(error) } finally { setModal(false) - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) } } @@ -100,7 +102,7 @@ export default function Index() { } finally { setVisibleEdit(false) setModal(false) - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) } } diff --git a/app/(application)/profile.tsx b/app/(application)/profile.tsx index e5eac4c..7863696 100644 --- a/app/(application)/profile.tsx +++ b/app/(application)/profile.tsx @@ -2,12 +2,13 @@ import AlertKonfirmasi from "@/components/alertKonfirmasi"; import ButtonBackHeader from "@/components/buttonBackHeader"; import { ButtonHeader } from "@/components/buttonHeader"; import ItemDetailMember from "@/components/itemDetailMember"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack } from "expo-router"; import { useState } from "react"; -import { Image, SafeAreaView, ScrollView, Text, View } from "react-native"; +import { Image, SafeAreaView, ScrollView, View } from "react-native"; import { useSelector } from 'react-redux'; export default function Profile() { diff --git a/app/(application)/project/[id]/add-file.tsx b/app/(application)/project/[id]/add-file.tsx index f48bbc1..da7f9eb 100644 --- a/app/(application)/project/[id]/add-file.tsx +++ b/app/(application)/project/[id]/add-file.tsx @@ -12,7 +12,8 @@ import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons" import * as DocumentPicker from "expo-document-picker" import { router, Stack, useLocalSearchParams } from "expo-router" import { useState } from "react" -import { ActivityIndicator, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native" +import { ActivityIndicator, SafeAreaView, ScrollView, Text, View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" export default function ProjectAddFile() { @@ -38,7 +39,7 @@ export default function ProjectAddFile() { setFileForm([...fileForm, result.assets?.[0]]) setListFile([...listFile, result.assets?.[0].name]) } else { - ToastAndroid.show('File sudah ada', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'File sudah ada', }) } } } @@ -103,15 +104,15 @@ export default function ProjectAddFile() { const response = await apiAddFileProject({ data: fd, id: id }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan file', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan file', }) dispatch(setUpdateProject({ ...update, file: !update.file })) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } } diff --git a/app/(application)/project/[id]/add-member.tsx b/app/(application)/project/[id]/add-member.tsx index 1c37a53..47c76ab 100644 --- a/app/(application)/project/[id]/add-member.tsx +++ b/app/(application)/project/[id]/add-member.tsx @@ -3,6 +3,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ImageUser from "@/components/imageNew"; import ImageWithLabel from "@/components/imageWithLabel"; import InputSearch from "@/components/inputSearch"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiAddMemberProject, apiGetProjectOne, apiGetUser } from "@/lib/api"; import { setUpdateProject } from "@/lib/projectUpdate"; @@ -10,7 +11,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign } from "@expo/vector-icons"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; type Props = { @@ -74,7 +76,7 @@ export default function AddMemberProject() { const hasil = await decryptToken(String(token?.current)) const response = await apiAddMemberProject({ id: id, data: { user: hasil, member: selectMember } }) if (response.success) { - ToastAndroid.show('Berhasil menambahkan anggota', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan anggota', }) dispatch(setUpdateProject({ ...update, member: !update.member })) router.back() } diff --git a/app/(application)/project/[id]/add-task.tsx b/app/(application)/project/[id]/add-task.tsx index 37aad5f..d9cda9c 100644 --- a/app/(application)/project/[id]/add-task.tsx +++ b/app/(application)/project/[id]/add-task.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateProjectTask } from "@/lib/api"; import { setUpdateProject } from "@/lib/projectUpdate"; @@ -11,10 +12,9 @@ import { useEffect, useState } from "react"; import { SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import DateTimePicker, { DateType } from "react-native-ui-datepicker"; @@ -71,7 +71,7 @@ export default function ProjectAddTask() { const response = await apiCreateProjectTask({ data: { name: title, dateStart: dayjs(range.startDate).format("YYYY-MM-DD"), dateEnd: dayjs(range.endDate).format("YYYY-MM-DD"), user: hasil }, id }); if (response.success) { dispatch(setUpdateProject({ ...update, task: !update.task, progress: !update.progress })) - ToastAndroid.show("Berhasil menambah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menambah data', }) router.back(); } } catch (error) { diff --git a/app/(application)/project/[id]/cancel.tsx b/app/(application)/project/[id]/cancel.tsx index 39da7bd..9e64bb7 100644 --- a/app/(application)/project/[id]/cancel.tsx +++ b/app/(application)/project/[id]/cancel.tsx @@ -7,7 +7,8 @@ import { setUpdateProject } from "@/lib/projectUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function ProjectCancel() { @@ -24,7 +25,7 @@ export default function ProjectCancel() { setReason(val) if (val == "" || val == "null") { setError(true) - }else{ + } else { setError(false) } } @@ -50,7 +51,7 @@ export default function ProjectCancel() { }, id); if (response.success) { dispatch(setUpdateProject({ ...update, data: !update.data })) - ToastAndroid.show("Berhasil membatalkan kegiatan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil membatalkan kegiatan', }) router.back(); } } catch (error) { diff --git a/app/(application)/project/[id]/edit.tsx b/app/(application)/project/[id]/edit.tsx index 21ede95..ea85bac 100644 --- a/app/(application)/project/[id]/edit.tsx +++ b/app/(application)/project/[id]/edit.tsx @@ -7,7 +7,8 @@ import { setUpdateProject } from "@/lib/projectUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function EditProject() { @@ -65,7 +66,7 @@ export default function EditProject() { }, id); if (response.success) { dispatch(setUpdateProject({ ...update, data: !update.data })) - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back(); } } catch (error) { diff --git a/app/(application)/project/create.tsx b/app/(application)/project/create.tsx index 6ffc74f..5d01ac5 100644 --- a/app/(application)/project/create.tsx +++ b/app/(application)/project/create.tsx @@ -9,6 +9,7 @@ import MenuItemRow from "@/components/menuItemRow"; import ModalSelect from "@/components/modalSelect"; import SectionListAddTask from "@/components/project/sectionListAddTask"; import SelectForm from "@/components/selectForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateProject } from "@/lib/api"; import { setMemberChoose } from "@/lib/memberChoose"; @@ -22,10 +23,9 @@ import { useEffect, useState } from "react"; import { SafeAreaView, ScrollView, - Text, - ToastAndroid, - View, + View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; export default function CreateProject() { @@ -120,10 +120,10 @@ export default function CreateProject() { const response = await apiCreateProject(fd) if (response.success) { dispatch(setUpdateProject({ ...update, data: !update.data })) - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) handleBack() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) @@ -235,10 +235,7 @@ export default function CreateProject() { setSelect(true); setValSelect("member"); } else { - ToastAndroid.show( - "Pilih Lembaga Desa terlebih dahulu", - ToastAndroid.SHORT - ); + Toast.show({ type: 'small', text1: "Pilih Lembaga Desa terlebih dahulu", }) } } else { validationForm('group', userLogin.idGroup, userLogin.group); diff --git a/app/(application)/project/create/task.tsx b/app/(application)/project/create/task.tsx index ffcf67b..248ac75 100644 --- a/app/(application)/project/create/task.tsx +++ b/app/(application)/project/create/task.tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { setTaskCreate } from "@/lib/taskCreate"; import dayjs from "dayjs"; @@ -9,7 +10,6 @@ import { useEffect, useState } from "react"; import { SafeAreaView, ScrollView, - Text, View } from "react-native"; import DateTimePicker, { diff --git a/app/(application)/project/index.tsx b/app/(application)/project/index.tsx index 10dfbd7..2e0a873 100644 --- a/app/(application)/project/index.tsx +++ b/app/(application)/project/index.tsx @@ -6,6 +6,7 @@ import PaperGridContent from "@/components/paperGridContent"; import ProgressBar from "@/components/progressBar"; import Skeleton from "@/components/skeleton"; import SkeletonTwoItem from "@/components/skeletonTwoItem"; +import Text from "@/components/Text"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetProject } from "@/lib/api"; @@ -17,7 +18,7 @@ import { } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Pressable, RefreshControl, ScrollView, Text, View, VirtualizedList } from "react-native"; +import { Pressable, RefreshControl, ScrollView, View, VirtualizedList } from "react-native"; import { useSelector } from "react-redux"; type Props = { diff --git a/app/(application)/project/update/[detail].tsx b/app/(application)/project/update/[detail].tsx index 693e366..86ab4c2 100644 --- a/app/(application)/project/update/[detail].tsx +++ b/app/(application)/project/update/[detail].tsx @@ -1,6 +1,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiEditProjectTask, apiGetProjectTask } from "@/lib/api"; import { setUpdateProject } from "@/lib/projectUpdate"; @@ -8,7 +9,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import dayjs from "dayjs"; import { router, Stack, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { SafeAreaView, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { SafeAreaView, ScrollView, View } from "react-native"; +import Toast from "react-native-toast-message"; import DateTimePicker, { DateType } from "react-native-ui-datepicker"; import { useDispatch, useSelector } from "react-redux"; @@ -67,7 +69,7 @@ export default function UpdateProjectTask() { const response = await apiEditProjectTask({ data: { title, dateStart: dayjs(range.startDate).format("YYYY-MM-DD"), dateEnd: dayjs(range.endDate).format("YYYY-MM-DD"), user: hasil }, id: detail }); if (response.success) { dispatch(setUpdateProject({ ...update, task: !update.task, progress: !update.progress })) - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) router.back(); } } catch (error) { @@ -108,7 +110,7 @@ export default function UpdateProjectTask() { headerRight: () => {handleEdit()}} + onPress={() => { handleEdit() }} /> }} /> diff --git a/app/(application)/search.tsx b/app/(application)/search.tsx index 1155c29..e898116 100644 --- a/app/(application)/search.tsx +++ b/app/(application)/search.tsx @@ -1,6 +1,7 @@ import BorderBottomItem from "@/components/borderBottomItem"; import ButtonBackHeader from "@/components/buttonBackHeader"; import InputSearch from "@/components/inputSearch"; +import Text from '@/components/Text'; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetSearch } from "@/lib/api"; @@ -8,8 +9,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, MaterialIcons } from "@expo/vector-icons"; import { router, Stack } from "expo-router"; import { useState } from "react"; -import { FlatList, Image, SafeAreaView, ToastAndroid, View } from "react-native"; -import Text from '@/components/Text'; +import { FlatList, Image, SafeAreaView, View } from "react-native"; +import Toast from "react-native-toast-message"; type PropsUser = { id: string @@ -49,7 +50,7 @@ export default function Search() { setDataDivisi(hasil.data.division) setDataProject(hasil.data.project) } else { - return ToastAndroid.show(hasil.message, ToastAndroid.SHORT) + return Toast.show({ type: 'small', text1: hasil.message, }) } } else { setDataUser([]) @@ -58,7 +59,7 @@ export default function Search() { } } catch (error) { console.error(error) - return ToastAndroid.show('Gagal melakukan pencarian', ToastAndroid.SHORT) + return Toast.show({ type: 'small', text1: 'Gagal melakukan pencarian', }) } } diff --git a/components/announcement/headerAnnouncementDetail.tsx b/components/announcement/headerAnnouncementDetail.tsx index 15c122f..38d9649 100644 --- a/components/announcement/headerAnnouncementDetail.tsx +++ b/components/announcement/headerAnnouncementDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -29,7 +30,7 @@ export default function HeaderRightAnnouncementDetail({ id }: Props) { if (response.success) { dispatch(setUpdateAnnouncement(!update)) setVisible(false) - ToastAndroid.show('Berhasil menghapus data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) router.back() } } catch (error) { diff --git a/components/calendar/headerCalendarDetail.tsx b/components/calendar/headerCalendarDetail.tsx index f9a26a1..2f694ed 100644 --- a/components/calendar/headerCalendarDetail.tsx +++ b/components/calendar/headerCalendarDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -29,14 +30,14 @@ export default function HeaderRightCalendarDetail({ id, idReminder }: Props) { const response = await apiDeleteCalendar({ user: hasil }, String(id)); if (response.success) { dispatch(setUpdateCalendar({ ...update, data: !update.data })); - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } diff --git a/components/calendar/itemDateCalendar.tsx b/components/calendar/itemDateCalendar.tsx index 3538024..c2d4060 100644 --- a/components/calendar/itemDateCalendar.tsx +++ b/components/calendar/itemDateCalendar.tsx @@ -1,5 +1,6 @@ import Styles from "@/constants/Styles"; -import { Text, View } from "react-native"; +import { View } from "react-native"; +import Text from "../Text"; type Props = { text: string; diff --git a/components/calendar/itemHistoryEvent.tsx b/components/calendar/itemHistoryEvent.tsx index 0d7642e..8c95ba8 100644 --- a/components/calendar/itemHistoryEvent.tsx +++ b/components/calendar/itemHistoryEvent.tsx @@ -1,6 +1,7 @@ import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; -import { Text, View } from "react-native"; +import { View } from "react-native"; +import Text from "../Text"; type Props = { dateStart: Date diff --git a/components/discussion/headerDiscussionDetail.tsx b/components/discussion/headerDiscussionDetail.tsx index be6813a..b2e4e4e 100644 --- a/components/discussion/headerDiscussionDetail.tsx +++ b/components/discussion/headerDiscussionDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -29,15 +30,15 @@ export default function HeaderRightDiscussionDetail({ id, status, isActive }: Pr const hasil = await decryptToken(String(token?.current)) const response = await apiOpenCloseDiscussion({ status: Number(status), user: hasil }, String(id)) if (response.success) { - ToastAndroid.show('Berhasil mengubah data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) dispatch(setUpdateDiscussion({ ...update, data: !update.data })) setVisible(false) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } @@ -48,15 +49,15 @@ export default function HeaderRightDiscussionDetail({ id, status, isActive }: Pr const hasil = await decryptToken(String(token?.current)) const response = await apiArchiveDiscussion({ user: hasil, active: !isActive }, String(id)) if (response.success) { - ToastAndroid.show('Berhasil mengubah data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) dispatch(setUpdateDiscussion({ ...update, data: !update.data })) setVisible(false) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } diff --git a/components/discussion_general/headerDiscussionDetail.tsx b/components/discussion_general/headerDiscussionDetail.tsx index 39a6929..e546387 100644 --- a/components/discussion_general/headerDiscussionDetail.tsx +++ b/components/discussion_general/headerDiscussionDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -30,7 +31,7 @@ export default function HeaderRightDiscussionGeneralDetail({ id, active, status const hasil = await decryptToken(String(token?.current)) const response = await apiUpdateStatusDiscussionGeneral({ id: id, data: { status: status, user: hasil } }) if (response.success) { - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) dispatch(setUpdateDiscussionGeneralDetail(!update)) } setVisible(false) @@ -43,7 +44,7 @@ export default function HeaderRightDiscussionGeneralDetail({ id, active, status try { const hasil = await decryptToken(String(token?.current)) const response = await apiDeleteDiscussionGeneral({ active: !active, user: hasil }, id) - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) dispatch(setUpdateDiscussionGeneralDetail(!update)) } catch (error) { console.error(error) diff --git a/components/division/headerDivisionInfo.tsx b/components/division/headerDivisionInfo.tsx index 8c8c76f..d7f44e5 100644 --- a/components/division/headerDivisionInfo.tsx +++ b/components/division/headerDivisionInfo.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { MaterialCommunityIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -29,13 +30,13 @@ export default function HeaderRightDivisionInfo({ id, active }: Props) { const response = await apiUpdateStatusDivision({ data: { user: hasil, isActive: Boolean(active) }, id: String(id) }) if (response.success) { dispatch(setUpdateDivision(!update)) - ToastAndroid.show('Berhasil mengubah status', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengubah status', }) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } diff --git a/components/division/reportChartDocument.tsx b/components/division/reportChartDocument.tsx index eff6c3c..7109ca5 100644 --- a/components/division/reportChartDocument.tsx +++ b/components/division/reportChartDocument.tsx @@ -1,6 +1,7 @@ import Styles from "@/constants/Styles"; -import { Dimensions, Text, View } from "react-native"; +import { Dimensions, View } from "react-native"; import { BarChart } from "react-native-gifted-charts"; +import Text from "../Text"; export default function ReportChartDocument({ data }: { data: { label: string; value: number; }[] }) { const maxValue = Math.max(...data.map(i => i.value)) diff --git a/components/division/reportChartEvent.tsx b/components/division/reportChartEvent.tsx index 55f025d..25beb34 100644 --- a/components/division/reportChartEvent.tsx +++ b/components/division/reportChartEvent.tsx @@ -1,6 +1,7 @@ import Styles from "@/constants/Styles"; -import { Dimensions, Text, View } from "react-native"; +import { Dimensions, View } from "react-native"; import { BarChart } from "react-native-gifted-charts"; +import Text from "../Text"; export default function ReportChartEvent({ data }: { data: { label: string; value: number; }[] }) { const width = Dimensions.get("window").width; diff --git a/components/division/reportChartProgress.tsx b/components/division/reportChartProgress.tsx index d41c4c6..8fbeed1 100644 --- a/components/division/reportChartProgress.tsx +++ b/components/division/reportChartProgress.tsx @@ -1,6 +1,7 @@ import Styles from "@/constants/Styles"; -import { Text, View } from "react-native"; +import { View } from "react-native"; import { PieChart } from "react-native-gifted-charts"; +import Text from "../Text"; export default function ReportChartProgress({ data }: { data: { color: string; text: string; value: number; }[] }) { const pieData = [ diff --git a/components/document/headerDocument.tsx b/components/document/headerDocument.tsx index 4013375..42263a1 100644 --- a/components/document/headerDocument.tsx +++ b/components/document/headerDocument.tsx @@ -6,7 +6,8 @@ import { MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons"; import * as DocumentPicker from "expo-document-picker"; import { useLocalSearchParams } from "expo-router"; import { useState } from "react"; -import { ToastAndroid, View } from "react-native"; +import { View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; import ButtonMenuHeader from "../buttonMenuHeader"; import DrawerBottom from "../drawerBottom"; @@ -28,14 +29,14 @@ export default function HeaderRightDocument({ path }: { path: string }) { const hasil = await decryptToken(String(token?.current)) const response = await apiCreateFolderDocument({ user: hasil, name, path, idDivision: id }) if (response.success) { - ToastAndroid.show("Berhasil membuat folder baru", ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil membuat folder baru', }) dispatch(setUpdateDokumen(!update)) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setNewFolder(false) } @@ -74,14 +75,14 @@ export default function HeaderRightDocument({ path }: { path: string }) { const response = await apiUploadFileDocument({ data: fd }) if (response.success) { - ToastAndroid.show("Berhasil mengunggah file", ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengunggah file', }) dispatch(setUpdateDokumen(!update)) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } diff --git a/components/document/menuBottomSelectDocument.tsx b/components/document/menuBottomSelectDocument.tsx index c04ca81..820314a 100644 --- a/components/document/menuBottomSelectDocument.tsx +++ b/components/document/menuBottomSelectDocument.tsx @@ -2,8 +2,9 @@ import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { useState } from "react"; -import { Pressable, ScrollView, Text, ToastAndroid, View } from "react-native"; +import { Pressable, ScrollView, View } from "react-native"; import { useSharedValue } from "react-native-reanimated"; +import Toast from "react-native-toast-message"; import AlertKonfirmasi from "../alertKonfirmasi"; import DrawerBottom from "../drawerBottom"; import { InputForm } from "../inputForm"; @@ -13,6 +14,7 @@ import MenuItemRow from "../menuItemRow"; import ModalFloat from "../modalFloat"; import ModalSelectMultiple from "../modalSelectMultiple"; import ModalSalinMove from "./modalSalinMove"; +import Text from "../Text"; type Props = { @@ -60,7 +62,7 @@ export default function MenuBottomSelectDocument({ onDone }: Props) { onPress: () => { onDone() - ToastAndroid.show('Berhasil menghapus data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) } }) }} @@ -94,7 +96,7 @@ export default function MenuBottomSelectDocument({ onDone }: Props) { { onDone() - ToastAndroid.show('Berhasil mengganti nama dokumen', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengganti nama dokumen', }) }}> @@ -204,7 +206,7 @@ export default function MenuBottomSelectDocument({ onDone }: Props) { { - ToastAndroid.show('Success', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Success', }) setShare(false) }} /> diff --git a/components/document/modalInformasi.tsx b/components/document/modalInformasi.tsx index 09e7334..1b150e5 100644 --- a/components/document/modalInformasi.tsx +++ b/components/document/modalInformasi.tsx @@ -3,10 +3,11 @@ import { apiGetDocumentInformasi } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { useEffect, useState } from "react"; -import { Pressable, ScrollView, Text, View } from "react-native"; +import { Pressable, ScrollView, View } from "react-native"; import { useSharedValue } from "react-native-reanimated"; import ItemAccordion from "../itemAccordion"; import ItemDetailMember from "../itemDetailMember"; +import Text from "../Text"; type Props = { category: string, diff --git a/components/document/modalMore.tsx b/components/document/modalMore.tsx index 0a08947..c484cd7 100644 --- a/components/document/modalMore.tsx +++ b/components/document/modalMore.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { MaterialCommunityIcons } from "@expo/vector-icons"; import { useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { ToastAndroid, View } from "react-native"; +import { View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; import DrawerBottom from "../drawerBottom"; import MenuItemRow from "../menuItemRow"; @@ -63,14 +64,14 @@ export default function ModalMore({ path, }); if (response.success) { - ToastAndroid.show("Berhasil memindahkan file", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil memindahkan file', }); dispatch(setUpdateDokumen(!update)); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }); } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }); } finally { setIsCut(false); onClose(); @@ -87,14 +88,14 @@ export default function ModalMore({ idDivision: id }); if (response.success) { - ToastAndroid.show("Berhasil menyalin file", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menyalin file', }); dispatch(setUpdateDokumen(!update)); } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: response.message, }); } } catch (error) { console.error(error); - ToastAndroid.show("Terjadi kesalahan", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }); } finally { setIsCopy(false); onClose(); diff --git a/components/group/headerGroupList.tsx b/components/group/headerGroupList.tsx index d13aeee..67175e2 100644 --- a/components/group/headerGroupList.tsx +++ b/components/group/headerGroupList.tsx @@ -4,7 +4,8 @@ import { setUpdateGroup } from "@/lib/groupSlice" import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign } from "@expo/vector-icons" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import { ButtonForm } from "../buttonForm" import ButtonMenuHeader from "../buttonMenuHeader" @@ -33,7 +34,7 @@ export default function HeaderRightGroupList() { } finally { setVisibleTambah(false) setVisible(false) - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) } } diff --git a/components/inputDate.tsx b/components/inputDate.tsx index 85bb3d9..4cdeded 100644 --- a/components/inputDate.tsx +++ b/components/inputDate.tsx @@ -4,7 +4,8 @@ import { stringToDate } from "@/lib/fun_stringToDate"; import DateTimePicker from "@react-native-community/datetimepicker"; import dayjs from "dayjs"; import { useState } from "react"; -import { Pressable, Text, View } from "react-native"; +import { Pressable, View } from "react-native"; +import Text from "./Text"; type Props = { label?: string; diff --git a/components/member/headerMemberDetail.tsx b/components/member/headerMemberDetail.tsx index 8001c11..7e65b11 100644 --- a/components/member/headerMemberDetail.tsx +++ b/components/member/headerMemberDetail.tsx @@ -1,16 +1,17 @@ import Styles from "@/constants/Styles" import { apiDeleteUser } from "@/lib/api" +import { setUpdateMember } from "@/lib/memberSlice" import { useAuthSession } from "@/providers/AuthProvider" import { MaterialCommunityIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" +import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" import DrawerBottom from "../drawerBottom" import MenuItemRow from "../menuItemRow" -import { useDispatch, useSelector } from "react-redux" -import { setUpdateMember } from "@/lib/memberSlice" type Props = { active: any, @@ -28,10 +29,10 @@ export default function HeaderRightMemberDetail({ active, id }: Props) { const hasil = await decryptToken(String(token?.current)) const response = await apiDeleteUser({ user: hasil, isActive: active }, id) if (response.success) { - ToastAndroid.show('Berhasil mengupdate data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil mengupdate data', }) dispatch(setUpdateMember(!update)) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) diff --git a/components/modalSelectMultiple.tsx b/components/modalSelectMultiple.tsx index b9ac851..6718616 100644 --- a/components/modalSelectMultiple.tsx +++ b/components/modalSelectMultiple.tsx @@ -3,8 +3,9 @@ import { apiGetDivisionGroup, apiGetDocumentInformasi, apiGetListDivisionByIdDiv import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign } from "@expo/vector-icons" import { useEffect, useState } from "react" -import { Pressable, ScrollView, ToastAndroid, View } from "react-native" -import Text from "./Text"; +import { Pressable, ScrollView, View } from "react-native" +import Toast from "react-native-toast-message" +import Text from "./Text" import { ButtonForm } from "./buttonForm" import DrawerBottom from "./drawerBottom" @@ -104,7 +105,7 @@ export default function ModalSelectMultiple({ open, close, title, category, choo delete newChecked[groupId]; } else { if (data.find((item: { id: string }) => item.id === groupId)?.Division?.length == 0) { - return ToastAndroid.show('Tidak ada divisi', ToastAndroid.SHORT) + return Toast.show({ type: 'small', text1: 'Tidak ada divisi', }) } newChecked[groupId] = data.find((item: { id: string }) => item.id === groupId)?.Division.map((item: { id: any }) => item.id) || []; } diff --git a/components/position/headerRightPositionList.tsx b/components/position/headerRightPositionList.tsx index 5ae7359..52199ee 100644 --- a/components/position/headerRightPositionList.tsx +++ b/components/position/headerRightPositionList.tsx @@ -4,7 +4,8 @@ import { setUpdatePosition } from "@/lib/positionSlice" import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign } from "@expo/vector-icons" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import { ButtonForm } from "../buttonForm" import ButtonMenuHeader from "../buttonMenuHeader" @@ -85,7 +86,7 @@ export default function HeaderRightPositionList() { } finally { setVisibleTambah(false) setVisible(false) - ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) } } diff --git a/components/project/headerProjectDetail.tsx b/components/project/headerProjectDetail.tsx index 1371961..c7b53d3 100644 --- a/components/project/headerProjectDetail.tsx +++ b/components/project/headerProjectDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -30,10 +31,10 @@ export default function HeaderRightProjectDetail({ id, status }: Props) { const response = await apiDeleteProject({ user: hasil }, String(id)) if (response.success) { dispatch(setUpdateProject({ ...update, data: !update.data })) - ToastAndroid.show('Berhasil menghapus kegiatan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menghapus kegiatan', }) router.back() } else { - ToastAndroid.show('Gagal menghapus kegiatan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Gagal menghapus kegiatan', }) } } catch (error) { console.error(error) diff --git a/components/project/sectionFile.tsx b/components/project/sectionFile.tsx index 3cebf1a..dd3e11f 100644 --- a/components/project/sectionFile.tsx +++ b/components/project/sectionFile.tsx @@ -8,8 +8,9 @@ import { startActivityAsync } from 'expo-intent-launcher'; import { useLocalSearchParams } from "expo-router"; import * as Sharing from 'expo-sharing'; import { useEffect, useState } from "react"; -import { Alert, Platform, Text, ToastAndroid, View } from "react-native"; +import { Alert, Platform, View } from "react-native"; import * as mime from 'react-native-mime-types'; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; import AlertKonfirmasi from "../alertKonfirmasi"; import BorderBottomItem from "../borderBottomItem"; @@ -17,6 +18,7 @@ import DrawerBottom from "../drawerBottom"; import MenuItemRow from "../menuItemRow"; import ModalLoading from "../modalLoading"; import Skeleton from "../skeleton"; +import Text from "../Text"; type Props = { @@ -70,14 +72,14 @@ export default function SectionFile({ status, member }: { status: number | undef const hasil = await decryptToken(String(token?.current)); const response = await apiDeleteFileProject({ user: hasil }, String(selectFile?.id)); if (response.success) { - ToastAndroid.show('Berhasil menghapus file', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menghapus file', }) dispatch(setUpdateProject({ ...update, file: !update.file })) } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error); - ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setModal(false) } diff --git a/components/project/sectionListAddTask.tsx b/components/project/sectionListAddTask.tsx index 741b835..e466fc3 100644 --- a/components/project/sectionListAddTask.tsx +++ b/components/project/sectionListAddTask.tsx @@ -2,11 +2,12 @@ import Styles from "@/constants/Styles"; import { deleteTaskCreate } from "@/lib/taskCreate"; import { Ionicons } from "@expo/vector-icons"; import { Key, useState } from "react"; -import { Text, View } from "react-native"; +import { View } from "react-native"; import { useDispatch, useSelector } from "react-redux"; import DrawerBottom from "../drawerBottom"; import ItemSectionTanggalTugas from "../itemSectionTanggalTugas"; import MenuItemRow from "../menuItemRow"; +import Text from "../Text"; export default function SectionListAddTask() { const taskCreate = useSelector((state: any) => state.taskCreate) diff --git a/components/project/sectionMember.tsx b/components/project/sectionMember.tsx index 5625d52..d87865c 100644 --- a/components/project/sectionMember.tsx +++ b/components/project/sectionMember.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { MaterialCommunityIcons } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Text, ToastAndroid, View } from "react-native"; +import { View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; import AlertKonfirmasi from "../alertKonfirmasi"; import BorderBottomItem from "../borderBottomItem"; @@ -13,6 +14,7 @@ import DrawerBottom from "../drawerBottom"; import ImageUser from "../imageNew"; import MenuItemRow from "../menuItemRow"; import SkeletonTwoItem from "../skeletonTwoItem"; +import Text from "../Text"; type Props = { id: string; @@ -72,7 +74,7 @@ export default function SectionMember({ status }: { status: number | undefined } idUser: memberChoose.id, }, id) if (response.success) { - ToastAndroid.show("Berhasil menghapus anggota", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menghapus anggota', }) dispatch(setUpdateProject({ ...update, member: !update.progress })) setModal(false); } diff --git a/components/project/sectionTanggalTugas.tsx b/components/project/sectionTanggalTugas.tsx index 4e0c21b..37a61a4 100644 --- a/components/project/sectionTanggalTugas.tsx +++ b/components/project/sectionTanggalTugas.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; -import { Text, ToastAndroid, View } from "react-native"; +import { View } from "react-native"; +import Toast from "react-native-toast-message"; import { useDispatch, useSelector } from "react-redux"; import AlertKonfirmasi from "../alertKonfirmasi"; import DrawerBottom from "../drawerBottom"; @@ -13,6 +14,7 @@ import ItemSectionTanggalTugas from "../itemSectionTanggalTugas"; import MenuItemRow from "../menuItemRow"; import ModalSelect from "../modalSelect"; import SkeletonTask from "../skeletonTask"; +import Text from "../Text"; type Props = { id: string; @@ -77,7 +79,7 @@ export default function SectionTanggalTugasProject({ status, member }: { status: if (response.success) { dispatch(setUpdateProject({ ...update, progress: !update.progress, task: !update.task })) setSelect(false); - ToastAndroid.show("Berhasil mengubah data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil mengubah data', }) } } catch (error) { console.error(error); @@ -94,7 +96,7 @@ export default function SectionTanggalTugasProject({ status, member }: { status: if (response.success) { dispatch(setUpdateProject({ ...update, progress: !update.progress, task: !update.task })) setModal(false); - ToastAndroid.show("Berhasil menghapus data", ToastAndroid.SHORT); + Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) } } catch (error) { console.error(error); diff --git a/components/task/headerTaskDetail.tsx b/components/task/headerTaskDetail.tsx index 0950559..3163946 100644 --- a/components/task/headerTaskDetail.tsx +++ b/components/task/headerTaskDetail.tsx @@ -5,7 +5,8 @@ import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useEffect, useState } from "react" -import { ToastAndroid, View } from "react-native" +import { View } from "react-native" +import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" @@ -59,10 +60,10 @@ export default function HeaderRightTaskDetail({ id, division, status }: Props) { const response = await apiDeleteTask({ user: hasil }, String(id)) if (response.success) { dispatch(setUpdateTask({ ...update, data: !update.data })) - ToastAndroid.show('Berhasil menghapus tugas', ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: 'Berhasil menghapus tugas', }) router.back() } else { - ToastAndroid.show(response.message, ToastAndroid.SHORT) + Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) @@ -102,7 +103,7 @@ export default function HeaderRightTaskDetail({ id, division, status }: Props) { disabled={status == 3} /> { - ( (entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) + ((entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) && } @@ -120,7 +121,7 @@ export default function HeaderRightTaskDetail({ id, division, status }: Props) { { - ( (entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision ) + ((entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) && Date: Tue, 29 Jul 2025 12:08:44 +0800 Subject: [PATCH 2/3] ios: header home --- app/(application)/home.tsx | 15 +++++++++++---- constants/Styles.ts | 26 +++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/(application)/home.tsx b/app/(application)/home.tsx index 35e2e4b..91e0c62 100644 --- a/app/(application)/home.tsx +++ b/app/(application)/home.tsx @@ -7,19 +7,23 @@ import EventHome from "@/components/home/eventHome"; import FiturHome from "@/components/home/fiturHome"; import { HeaderRightHome } from "@/components/home/headerRightHome"; import ProjectHome from "@/components/home/projectHome"; +import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiGetProfile } from "@/lib/api"; import { setEntities } from "@/lib/entitiesSlice"; import { useAuthSession } from "@/providers/AuthProvider"; import { Stack } from "expo-router"; import { useEffect } from "react"; -import { SafeAreaView, ScrollView, View } from "react-native"; +import { Platform, SafeAreaView, ScrollView, View } from "react-native"; +import { useSafeAreaInsets } from "react-native-safe-area-context"; import { useDispatch, useSelector } from "react-redux"; + export default function Home() { const entities = useSelector((state: any) => state.entities) const dispatch = useDispatch() const { token, decryptToken } = useAuthSession() + const insets = useSafeAreaInsets(); useEffect(() => { handleUserLogin() @@ -35,10 +39,13 @@ export default function Home() { <>, headerTitle: entities.village, - headerRight: () => , - headerTitleAlign: 'left', + header: () => ( + + {entities.village} + + + ), }} /> diff --git a/constants/Styles.ts b/constants/Styles.ts index 54ca02a..e078327 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -7,6 +7,12 @@ const Styles = StyleSheet.create({ alignItems: "stretch", padding: 20, }, + textHeaderHome: { + fontSize: 18, + fontWeight: 'bold', + flex: 1, + color: 'white' + }, textDefault: { fontSize: 15, lineHeight: 24, @@ -62,7 +68,7 @@ const Styles = StyleSheet.create({ cDefault: { color: '#19345E' }, - cFolder:{ + cFolder: { color: '#f9cc40' }, mb05: { @@ -134,6 +140,21 @@ const Styles = StyleSheet.create({ ml25: { marginLeft: 25 }, + pb05: { + paddingBottom: 5 + }, + pb07: { + paddingBottom: 7 + }, + pb10: { + paddingBottom: 10 + }, + pb13: { + paddingBottom: 13 + }, + pb15: { + paddingBottom: 15 + }, ph05: { paddingHorizontal: 5, }, @@ -143,6 +164,9 @@ const Styles = StyleSheet.create({ ph15: { paddingHorizontal: 15, }, + ph20: { + paddingHorizontal: 20, + }, pv05: { paddingVertical: 5 }, From 6d035e1f7fb4ec8e041c061bde393b8f82e59ed3 Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Tue, 29 Jul 2025 17:34:21 +0800 Subject: [PATCH 3/3] fix : ios Deskripsi: - title home align left - nama file pada view banner - modal crash pada group dan jabatan No Issues --- app/(application)/banner/index.tsx | 13 +++++------ app/(application)/group/index.tsx | 8 ++++--- app/(application)/home.tsx | 2 +- app/(application)/position/index.tsx | 22 +++++++++++-------- components/banner/headerBannerList.tsx | 2 +- components/borderBottomItem.tsx | 2 +- components/group/headerGroupList.tsx | 6 ++--- .../position/headerRightPositionList.tsx | 18 ++++++++++----- 8 files changed, 42 insertions(+), 31 deletions(-) diff --git a/app/(application)/banner/index.tsx b/app/(application)/banner/index.tsx index 52148a3..dcbf335 100644 --- a/app/(application)/banner/index.tsx +++ b/app/(application)/banner/index.tsx @@ -23,7 +23,7 @@ import { useDispatch, useSelector } from "react-redux" type Props = { id: string - name: string + title: string extension: string image: string } @@ -72,7 +72,7 @@ export default function BannerList() { setModal(false) setLoadingOpen(true) let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + selectFile?.image; - const fileName = selectFile?.name + '.' + selectFile?.extension; + const fileName = selectFile?.title + '.' + selectFile?.extension; let localPath = `${FileSystem.documentDirectory}/${fileName}`; const mimeType = mime.lookup(fileName) @@ -81,7 +81,6 @@ export default function BannerList() { try { if (Platform.OS == 'android') { - // open with android intent await startActivityAsync( 'android.intent.action.VIEW', { @@ -90,9 +89,6 @@ export default function BannerList() { type: mimeType as string, } ); - // or - // Sharing.shareAsync(localPath); - } else if (Platform.OS == 'ios') { Sharing.shareAsync(localPath); } @@ -116,13 +112,14 @@ export default function BannerList() { }} /> - } + style={[{height:'100%'}]} > {entities.map((index: any, key: number) => ( @@ -146,7 +143,7 @@ export default function BannerList() { - + setModal(false)} title="Menu"> } diff --git a/app/(application)/group/index.tsx b/app/(application)/group/index.tsx index be71d43..61c6666 100644 --- a/app/(application)/group/index.tsx +++ b/app/(application)/group/index.tsx @@ -176,7 +176,7 @@ export default function Index() { - + setModal(false)} title={titleChoose}> } @@ -195,13 +195,15 @@ export default function Index() { title="Edit" onPress={() => { setModal(false) - setVisibleEdit(true) + setTimeout(() => { + setVisibleEdit(true) + }, 600); }} /> - + setVisibleEdit(false)} title="Edit Lembaga Desa"> diff --git a/app/(application)/home.tsx b/app/(application)/home.tsx index 91e0c62..a568b21 100644 --- a/app/(application)/home.tsx +++ b/app/(application)/home.tsx @@ -50,7 +50,7 @@ export default function Home() { /> - + diff --git a/app/(application)/position/index.tsx b/app/(application)/position/index.tsx index 79e7452..e6521e4 100644 --- a/app/(application)/position/index.tsx +++ b/app/(application)/position/index.tsx @@ -131,12 +131,14 @@ export default function Index() { return ( - - }> + + }> - + setModal(false)} title={chooseData.name}> } @@ -213,14 +215,16 @@ export default function Index() { title="Edit" onPress={() => { setModal(false) - setVisibleEdit(true) + setTimeout(() => { + setVisibleEdit(true) + }, 600) }} /> - + setVisibleEdit(false)} title="Edit Jabatan"> { setVisible(true) }} /> - + setVisible(false)} title="Menu"> } diff --git a/components/borderBottomItem.tsx b/components/borderBottomItem.tsx index a615606..92eb927 100644 --- a/components/borderBottomItem.tsx +++ b/components/borderBottomItem.tsx @@ -32,7 +32,7 @@ export default function BorderBottomItem({ title, subtitle, icon, desc, onPress, {icon} - {title} + {title} { subtitle && typeof subtitle == "string" diff --git a/components/group/headerGroupList.tsx b/components/group/headerGroupList.tsx index 67175e2..fb443fd 100644 --- a/components/group/headerGroupList.tsx +++ b/components/group/headerGroupList.tsx @@ -59,7 +59,7 @@ export default function HeaderRightGroupList() { return ( <> { setVisible(true) }} /> - + setVisible(false)} title="Menu"> } @@ -70,7 +70,7 @@ export default function HeaderRightGroupList() { () => { setVisibleTambah(true) }, - 100, + 600, ); }} @@ -78,7 +78,7 @@ export default function HeaderRightGroupList() { - + setVisibleTambah(false)} title="Tambah Lembaga Desa"> { setVisible(false) - setVisibleTambah(true) + setTimeout(() => { + setVisibleTambah(true) + }, 600) }} /> { @@ -112,14 +114,16 @@ export default function HeaderRightPositionList() { title="Filter" onPress={() => { setVisible(false) - setFilter(true) + setTimeout(() => { + setFilter(true) + }, 600) }} /> } - + setVisibleTambah(false)} title="Tambah Jabatan"> { @@ -131,7 +135,9 @@ export default function HeaderRightPositionList() { required onPress={() => { setVisibleTambah(false) - setSelect(true) + setTimeout(() => { + setSelect(true) + }, 600) }} error={error.idGroup} errorText="Lembaga Desa harus diisi" @@ -166,7 +172,9 @@ export default function HeaderRightPositionList() { validationForm(value.val, 'idGroup') setChoose(value) setSelect(false) - setVisibleTambah(true) + setTimeout(() => { + setVisibleTambah(true) + }, 600) }} title="Lembaga Desa" open={isSelect}