diff --git a/app/(application)/announcement/create.tsx b/app/(application)/announcement/create.tsx index 6410b17..72ef73a 100644 --- a/app/(application)/announcement/create.tsx +++ b/app/(application)/announcement/create.tsx @@ -4,7 +4,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import { InputForm } from "@/components/inputForm"; -import LoadingOverlay from "@/components/loadingOverlay"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import ModalSelectMultiple from "@/components/modalSelectMultiple"; import Text from "@/components/Text"; @@ -174,7 +174,7 @@ export default function CreateAnnouncement() { ) }} /> - + {loading && } 0 && - - File - { - fileForm.map((item, index) => ( - } - title={item.name} - bgColor="transparent" - titleWeight="normal" - onPress={() => { setIndexDelFile(index); setModalFile(true) }} - /> - )) - } - + <> + + File + {fileForm.length} file + + + { + fileForm.map((item, index) => ( + } + title={item.name} + bgColor="transparent" + titleWeight="normal" + onPress={() => { setIndexDelFile(index); setModalFile(true) }} + /> + )) + } + + } 0 && - - { - divisionMember.map((item: { name: any; Division: any }, index: any) => { - return ( - - {item.name} - { - item.Division.map((division: any, i: any) => ( - - - {division.name} - - )) - } - - ) - }) - } - + <> + + Divisi + + + { + divisionMember.map((item: { name: any; Division: any }, index: any) => { + return ( + + {item.name} + { + item.Division.map((division: any, i: any) => ( + + + {division.name} + + )) + } + + ) + }) + } + + } diff --git a/app/(application)/announcement/edit/[id].tsx b/app/(application)/announcement/edit/[id].tsx index 6b04ce7..d259e98 100644 --- a/app/(application)/announcement/edit/[id].tsx +++ b/app/(application)/announcement/edit/[id].tsx @@ -4,7 +4,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import { InputForm } from "@/components/inputForm"; -import LoadingOverlay from "@/components/loadingOverlay"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import ModalSelectMultiple from "@/components/modalSelectMultiple"; import Text from '@/components/Text'; @@ -225,7 +225,7 @@ export default function EditAnnouncement() { ) }} /> - + {loading && } 0 || dataFile.filter((val) => !val.delete).length > 0) && - - File - { - dataFile.filter((val) => !val.delete).map((item, index) => ( - 1 ? "bottom" : "none"} - icon={} - title={item.name + '.' + item.extension} - titleWeight="normal" - bgColor="transparent" - onPress={() => { setIndexDelFile({ id: item.id, cat: "oldFile" }); setModalFile(true) }} - /> - )) - } - { - fileForm.map((item, index) => ( - 1 ? "bottom" : "none"} - icon={} - title={item.name} - titleWeight="normal" - bgColor="transparent" - onPress={() => { setIndexDelFile({ id: index, cat: "newFile" }); setModalFile(true) }} - /> - )) - } - + <> + + File + {fileForm.length + dataFile.filter((val) => !val.delete).length} file + + + { + dataFile.filter((val) => !val.delete).map((item, index) => ( + !val.delete).length - 1 == index && fileForm.length == 0 ? "none" : "bottom"} + icon={} + title={item.name + '.' + item.extension} + titleWeight="normal" + bgColor="transparent" + onPress={() => { setIndexDelFile({ id: item.id, cat: "oldFile" }); setModalFile(true) }} + /> + )) + } + { + fileForm.map((item, index) => ( + } + title={item.name} + titleWeight="normal" + bgColor="transparent" + onPress={() => { setIndexDelFile({ id: index, cat: "newFile" }); setModalFile(true) }} + /> + )) + } + + } 0 && - - { - dataMember.map((item: { name: any; Division: any }, index: any) => { - return ( - - {item.name} - { - item.Division.map((division: any, i: any) => ( - - - {division.name} - - )) - } - - ) - }) - } - + <> + + Divisi + + + { + dataMember.map((item: { name: any; Division: any }, index: any) => { + return ( + + {item.name} + { + item.Division.map((division: any, i: any) => ( + + + {division.name} + + )) + } + + ) + }) + } + + } diff --git a/app/(application)/banner/[id].tsx b/app/(application)/banner/[id].tsx index f5789ff..424cbae 100644 --- a/app/(application)/banner/[id].tsx +++ b/app/(application)/banner/[id].tsx @@ -1,6 +1,7 @@ import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import LoadingCenter from "@/components/loadingCenter"; import Text from "@/components/Text"; import { ConstEnv } from "@/constants/ConstEnv"; import Styles from "@/constants/Styles"; @@ -145,6 +146,7 @@ export default function EditBanner() { ) }} /> + {loading && } diff --git a/app/(application)/banner/create.tsx b/app/(application)/banner/create.tsx index ff7e2f7..1e092cb 100644 --- a/app/(application)/banner/create.tsx +++ b/app/(application)/banner/create.tsx @@ -1,6 +1,7 @@ import AppHeader from "@/components/AppHeader"; import ButtonSaveHeader from "@/components/buttonSaveHeader"; import { InputForm } from "@/components/inputForm"; +import LoadingCenter from "@/components/loadingCenter"; import Text from "@/components/Text"; import Styles from "@/constants/Styles"; import { apiCreateBanner, apiGetBanner } from "@/lib/api"; @@ -99,24 +100,8 @@ export default function CreateBanner() { ( - // { - // router.back(); - // }} - // /> - // ), headerTitle: "Tambah Banner", headerTitleAlign: "center", - // headerRight: () => ( - // { - // handleCreateEntity(); - // }} - // /> - // ), header: () => ( + {loading && } @@ -148,13 +134,13 @@ export default function CreateBanner() { ) : ( - - + + Mohon unggah gambar dalam resolusi 1650 x 720 pixel untuk memastikan diff --git a/app/(application)/discussion/create.tsx b/app/(application)/discussion/create.tsx index 5294c95..95d915f 100644 --- a/app/(application)/discussion/create.tsx +++ b/app/(application)/discussion/create.tsx @@ -5,7 +5,7 @@ import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import ImageUser from "@/components/imageNew"; import { InputForm } from "@/components/inputForm"; -import LoadingOverlay from "@/components/loadingOverlay"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import ModalSelect from "@/components/modalSelect"; import SelectForm from "@/components/selectForm"; @@ -206,7 +206,7 @@ export default function CreateDiscussionGeneral() { ) }} /> - + {loading && } { @@ -253,22 +253,27 @@ export default function CreateDiscussionGeneral() { { fileForm.length > 0 && - - File - { - fileForm.map((item, index) => ( - } - title={item.name} - bgColor="transparent" - titleWeight="normal" - onPress={() => { setIndexDelFile(index); setModalFile(true) }} - /> - )) - } - + <> + + File + {fileForm.length} file + + + { + fileForm.map((item, index) => ( + } + title={item.name} + bgColor="transparent" + titleWeight="normal" + onPress={() => { setIndexDelFile(index); setModalFile(true) }} + /> + )) + } + + } 0 && - Anggota - Total {entitiesMember.length} Anggota + Anggota + {entitiesMember.length} Anggota diff --git a/app/(application)/discussion/edit/[id].tsx b/app/(application)/discussion/edit/[id].tsx index 7db2b12..6aac536 100644 --- a/app/(application)/discussion/edit/[id].tsx +++ b/app/(application)/discussion/edit/[id].tsx @@ -5,7 +5,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import { InputForm } from "@/components/inputForm"; -import LoadingOverlay from "@/components/loadingOverlay"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import Styles from "@/constants/Styles"; import { apiEditDiscussionGeneral, apiGetDiscussionGeneralOne } from "@/lib/api"; @@ -199,7 +199,7 @@ export default function EditDiscussionGeneral() { ) }} /> - + {loading && } 0 || dataFile.filter((val) => !val.delete).length > 0) && - - File - { - dataFile.filter((val) => !val.delete).map((item, index) => ( - 1 ? "bottom" : "none"} - icon={} - title={item.name + '.' + item.extension} - titleWeight="normal" - bgColor="transparent" - onPress={() => { setIndexDelFile({ id: item.id, cat: "oldFile" }); setModalFile(true) }} - /> - )) - } - { - fileForm.map((item, index) => ( - 1 ? "bottom" : "none"} - icon={} - title={item.name} - titleWeight="normal" - bgColor="transparent" - onPress={() => { setIndexDelFile({ id: index, cat: "newFile" }); setModalFile(true) }} - /> - )) - } - + <> + + File + {fileForm.length + dataFile.filter((val) => !val.delete).length} file + + + { + dataFile.filter((val) => !val.delete).map((item, index) => ( + !val.delete).length - 1 == index && fileForm.length == 0 ? "none" : "bottom"} + icon={} + title={item.name + '.' + item.extension} + titleWeight="normal" + bgColor="transparent" + onPress={() => { setIndexDelFile({ id: item.id, cat: "oldFile" }); setModalFile(true) }} + /> + )) + } + { + fileForm.map((item, index) => ( + } + title={item.name} + titleWeight="normal" + bgColor="transparent" + onPress={() => { setIndexDelFile({ id: index, cat: "newFile" }); setModalFile(true) }} + /> + )) + } + + } 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 6706641..0ed576c 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 @@ -169,7 +169,7 @@ export default function AddMemberCalendarEvent() { return ( { !found && 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 b5fe7a3..00e00dd 100644 --- a/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx +++ b/app/(application)/division/[id]/(fitur-division)/calendar/history.tsx @@ -90,7 +90,7 @@ export default function CalendarHistory() { ( - + {item.title} {item.timeStart} | {item.timeEnd} 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 29d4087..ca57d4a 100644 --- a/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx +++ b/app/(application)/division/[id]/(fitur-division)/discussion/[detail]/edit.tsx @@ -4,7 +4,7 @@ import ButtonSaveHeader from "@/components/buttonSaveHeader"; import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import { InputForm } from "@/components/inputForm"; -import LoadingOverlay from "@/components/loadingOverlay"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import Text from "@/components/Text"; import Styles from "@/constants/Styles"; @@ -168,7 +168,7 @@ export default function DiscussionDivisionEdit() { ) }} /> - + {loading && } - + {loading && } + {loading && } - + {loading && } - - + { + loading && + } + + { listFile.length > 0 && ( - File + File { listFile.map((item, index) => ( @@ -182,9 +186,6 @@ export default function ProjectAddFile() { { loadingCheck && } - { - loading && - } diff --git a/app/(application)/project/[id]/add-member.tsx b/app/(application)/project/[id]/add-member.tsx index 0261476..e177d93 100644 --- a/app/(application)/project/[id]/add-member.tsx +++ b/app/(application)/project/[id]/add-member.tsx @@ -100,7 +100,7 @@ export default function AddMemberProject() { { router.back() }} />, - headerTitle: 'Tambah Anggota Kegiatan', + headerTitle: 'Tambah Anggota', headerTitleAlign: 'center', // headerRight: () => ( // ( router.back()} right={ @@ -165,7 +165,7 @@ export default function AddMemberProject() { return ( { !found && onChoose(item.id, item.name, item.img) }} diff --git a/app/(application)/project/[id]/add-task.tsx b/app/(application)/project/[id]/add-task.tsx index 9e9899c..cfe51da 100644 --- a/app/(application)/project/[id]/add-task.tsx +++ b/app/(application)/project/[id]/add-task.tsx @@ -197,7 +197,7 @@ export default function ProjectAddTask() { /> - + Tanggal Mulai * diff --git a/app/(application)/project/create.tsx b/app/(application)/project/create.tsx index 178af0b..83dbfd7 100644 --- a/app/(application)/project/create.tsx +++ b/app/(application)/project/create.tsx @@ -5,6 +5,7 @@ import ButtonSelect from "@/components/buttonSelect"; import DrawerBottom from "@/components/drawerBottom"; import ImageUser from "@/components/imageNew"; import { InputForm } from "@/components/inputForm"; +import LoadingCenter from "@/components/loadingCenter"; import MenuItemRow from "@/components/menuItemRow"; import ModalSelect from "@/components/modalSelect"; import SectionListAddTask from "@/components/project/sectionListAddTask"; @@ -230,6 +231,9 @@ export default function CreateProject() { ) }} /> + { + loading && + } - + Tanggal Mulai * diff --git a/app/(application)/project/update/[detail].tsx b/app/(application)/project/update/[detail].tsx index 0d3e9b9..f0e75bb 100644 --- a/app/(application)/project/update/[detail].tsx +++ b/app/(application)/project/update/[detail].tsx @@ -233,7 +233,7 @@ export default function UpdateProjectTask() { - + Tanggal Mulai * diff --git a/components/announcement/headerAnnouncementDetail.tsx b/components/announcement/headerAnnouncementDetail.tsx index 336fcef..2008509 100644 --- a/components/announcement/headerAnnouncementDetail.tsx +++ b/components/announcement/headerAnnouncementDetail.tsx @@ -31,15 +31,14 @@ export default function HeaderRightAnnouncementDetail({ id }: Props) { const hasil = await decryptToken(String(token?.current)) const response = await apiDeleteAnnouncement({ user: hasil }, id) if (response.success) { - dispatch(setUpdateAnnouncement(!update)) - setVisible(false) - Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) router.back() + dispatch(setUpdateAnnouncement(!update)) + return Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) } } catch (error) { console.error(error) } finally { - setVisible(false) + setShowDeleteModal(false) } } diff --git a/components/buttonNextHeader.tsx b/components/buttonNextHeader.tsx index 29e5ad2..8934f33 100644 --- a/components/buttonNextHeader.tsx +++ b/components/buttonNextHeader.tsx @@ -10,7 +10,7 @@ export default function ButtonNextHeader({ onPress, disable }: Props) { return ( <> } + item={} onPress={() => { !disable && onPress && onPress() }} diff --git a/components/loadingCenter.tsx b/components/loadingCenter.tsx new file mode 100644 index 0000000..458a055 --- /dev/null +++ b/components/loadingCenter.tsx @@ -0,0 +1,21 @@ +import Text from '@/components/Text'; +import Styles from '@/constants/Styles'; +import { useTheme } from '@/providers/ThemeProvider'; +import { ActivityIndicator, View } from 'react-native'; + +type Props = { + size?: 'small' | 'large' +} + +export default function LoadingCenter({ size = 'large' }: Props) { + const { colors } = useTheme(); + + return ( + + + + Loading + + + ) +} diff --git a/components/modalSelectMultiple.tsx b/components/modalSelectMultiple.tsx index 7d74763..ebebbd7 100644 --- a/components/modalSelectMultiple.tsx +++ b/components/modalSelectMultiple.tsx @@ -157,7 +157,7 @@ export default function ModalSelectMultiple({ open, close, title, category, choo { data.map((item: any, index: number) => { return ( - { + { handleDivisionClick(index) }}> {item.name} @@ -175,7 +175,7 @@ export default function ModalSelectMultiple({ open, close, title, category, choo data.map((item: any, index: number) => { return ( - { handleGroupCheck(item.id) }}> + { handleGroupCheck(item.id) }}> {item.name} { checked[item.id] && checked[item.id]?.length === item.Division?.length @@ -188,7 +188,7 @@ export default function ModalSelectMultiple({ open, close, title, category, choo { item.Division.map((child: any, v: number) => { return ( - { handleCheck(item.id, child.id) }}> + { handleCheck(item.id, child.id) }}> {child.name} { checked[item.id] && checked[item.id].includes(child.id) && diff --git a/components/project/modalListDetailTugasProject.tsx b/components/project/modalListDetailTugasProject.tsx index ac5ea8b..da045dc 100644 --- a/components/project/modalListDetailTugasProject.tsx +++ b/components/project/modalListDetailTugasProject.tsx @@ -77,7 +77,7 @@ export default function ModalListDetailTugasProject({ isVisible, setVisible, idT getItem={getItem} renderItem={({ item, index }: { item: Props, index: number }) => { return ( - + {item.date} diff --git a/components/project/sectionFile.tsx b/components/project/sectionFile.tsx index 435f4b2..32f29ce 100644 --- a/components/project/sectionFile.tsx +++ b/components/project/sectionFile.tsx @@ -157,7 +157,6 @@ export default function SectionFile({ status, member, refreshing }: { status: nu title={item.name + '.' + item.extension} titleWeight="normal" onPress={() => { setSelectFile(item); setModal(true) }} - width={65} /> ) }) diff --git a/components/project/sectionLink.tsx b/components/project/sectionLink.tsx index f24e511..ab5a749 100644 --- a/components/project/sectionLink.tsx +++ b/components/project/sectionLink.tsx @@ -96,7 +96,6 @@ export default function SectionLink({ status, member, refreshing }: { status: nu title={item.link} titleWeight="normal" onPress={() => { setSelectLink(item); setModal(true) }} - width={65} /> ) }) diff --git a/components/task/sectionFileTask.tsx b/components/task/sectionFileTask.tsx index 3349753..c55a0ad 100644 --- a/components/task/sectionFileTask.tsx +++ b/components/task/sectionFileTask.tsx @@ -151,7 +151,6 @@ export default function SectionFileTask({ refreshing, isMemberDivision }: { refr title={item.name + '.' + item.extension} titleWeight="normal" onPress={() => { setSelectFile(item); setModal(true) }} - width={65} /> ) }) diff --git a/components/task/sectionLinkTask.tsx b/components/task/sectionLinkTask.tsx index 7ed3ae1..5c08587 100644 --- a/components/task/sectionLinkTask.tsx +++ b/components/task/sectionLinkTask.tsx @@ -88,7 +88,6 @@ export default function SectionLinkTask({ refreshing, isMemberDivision }: { refr title={item.link} titleWeight="normal" onPress={() => { setSelectLink(item); setModal(true) }} - width={65} /> ) }) diff --git a/constants/Styles.ts b/constants/Styles.ts index 9e06cfd..5895d8f 100644 --- a/constants/Styles.ts +++ b/constants/Styles.ts @@ -465,6 +465,13 @@ const Styles = StyleSheet.create({ shadowRadius: 0, elevation: 0, }, + shadowBox: { + shadowColor: '#171717', + shadowOffset: { width: 0, height: 0 }, + shadowOpacity: 0.1, + shadowRadius: 4, + elevation: 5, + }, contentItemCenter: { justifyContent: 'center', alignItems: 'center' @@ -860,6 +867,24 @@ const Styles = StyleSheet.create({ }, alignStart: { alignItems: 'flex-start' + }, + loadingCenter: { + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + justifyContent: 'center', + alignItems: 'center', + zIndex: 999, + backgroundColor: 'rgba(0,0,0,0.3)', + }, + loadingBox: { + paddingVertical: 15, + paddingHorizontal: 40, + borderRadius: 5, + alignItems: 'center', + gap: 10, } })