upd: nama divisi
Deskripsi: - update check nama divisi ketika ada yg sama pada 1 group dan desa No Issuese
This commit is contained in:
@@ -1,22 +1,28 @@
|
|||||||
|
import AlertKonfirmasi from "@/components/alertKonfirmasi";
|
||||||
import ButtonBackHeader from "@/components/buttonBackHeader";
|
import ButtonBackHeader from "@/components/buttonBackHeader";
|
||||||
import ButtonNextHeader from "@/components/buttonNextHeader";
|
import ButtonNextHeader from "@/components/buttonNextHeader";
|
||||||
import { InputForm } from "@/components/inputForm";
|
import { InputForm } from "@/components/inputForm";
|
||||||
import ModalSelect from "@/components/modalSelect";
|
import ModalSelect from "@/components/modalSelect";
|
||||||
import SelectForm from "@/components/selectForm";
|
import SelectForm from "@/components/selectForm";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
|
import { apiCheckDivisionName } from "@/lib/api";
|
||||||
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
||||||
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import { router, Stack } from "expo-router";
|
import { router, Stack } from "expo-router";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { SafeAreaView, ScrollView, View } from "react-native";
|
import { SafeAreaView, ScrollView, View } from "react-native";
|
||||||
|
import Toast from "react-native-toast-message";
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
|
|
||||||
export default function CreateDivision() {
|
export default function CreateDivision() {
|
||||||
const [isSelect, setSelect] = useState(false);
|
const { token, decryptToken } = useAuthSession()
|
||||||
const [chooseGroup, setChooseGroup] = useState({ val: "", label: "" });
|
const [isSelect, setSelect] = useState(false)
|
||||||
const dispatch = useDispatch();
|
const [chooseGroup, setChooseGroup] = useState({ val: "", label: "" })
|
||||||
const update = useSelector((state: any) => state.divisionCreate);
|
const dispatch = useDispatch()
|
||||||
|
const update = useSelector((state: any) => state.divisionCreate)
|
||||||
const entityUser = useSelector((state: any) => state.user)
|
const entityUser = useSelector((state: any) => state.user)
|
||||||
const userLogin = useSelector((state: any) => state.entities)
|
const userLogin = useSelector((state: any) => state.entities)
|
||||||
|
const [loadingBtn, setLoadingBtn] = useState(false)
|
||||||
const [error, setError] = useState({
|
const [error, setError] = useState({
|
||||||
idGroup: false,
|
idGroup: false,
|
||||||
name: false,
|
name: false,
|
||||||
@@ -54,7 +60,35 @@ export default function CreateDivision() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSetData() {
|
async function handleCheckName() {
|
||||||
|
try {
|
||||||
|
setLoadingBtn(true)
|
||||||
|
const hasil = await decryptToken(String(token?.current))
|
||||||
|
const response = await apiCheckDivisionName({ data: { ...dataForm }, user: hasil })
|
||||||
|
if (response.success) {
|
||||||
|
if (!response.available) {
|
||||||
|
AlertKonfirmasi({
|
||||||
|
title: 'Peringatan',
|
||||||
|
desc: 'Nama divisi sudah ada. Apakah anda yakin ingin membuat divisi dengan nama yang sama?',
|
||||||
|
onPress: () => {
|
||||||
|
handleSetData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
handleSetData()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Toast.show({ type: 'small', text1: response.message, })
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
Toast.show({ type: 'small', text1: 'Terjadi kesalahan', })
|
||||||
|
} finally {
|
||||||
|
setLoadingBtn(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleSetData() {
|
||||||
dispatch(setFormCreateDivision({ ...update, data: dataForm }))
|
dispatch(setFormCreateDivision({ ...update, data: dataForm }))
|
||||||
router.push(`./create/add-member`)
|
router.push(`./create/add-member`)
|
||||||
}
|
}
|
||||||
@@ -80,8 +114,8 @@ export default function CreateDivision() {
|
|||||||
headerTitleAlign: "center",
|
headerTitleAlign: "center",
|
||||||
headerRight: () => (
|
headerRight: () => (
|
||||||
<ButtonNextHeader
|
<ButtonNextHeader
|
||||||
onPress={() => { handleSetData() }}
|
onPress={() => { handleCheckName() }}
|
||||||
disable={error.idGroup || error.name || chooseGroup.val == "" || chooseGroup.val == "null" || dataForm.name == "" || dataForm.name == "null"}
|
disable={loadingBtn || error.idGroup || error.name || chooseGroup.val == "" || chooseGroup.val == "null" || dataForm.name == "" || dataForm.name == "null"}
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -425,6 +425,10 @@ export const apiCreateDivision = async (data: { data: { idGroup: string, name: s
|
|||||||
return response.data;
|
return response.data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const apiCheckDivisionName = async (data: { data: { idGroup: string, name: string, desc: string }, user: string }) => {
|
||||||
|
const response = await api.put(`/mobile/division`, data)
|
||||||
|
return response.data;
|
||||||
|
};
|
||||||
|
|
||||||
export const apiGetDiscussion = async ({ user, search, division, active, page }: { user: string, search: string, division: string, active?: string, page?: number }) => {
|
export const apiGetDiscussion = async ({ user, search, division, active, page }: { user: string, search: string, division: string, active?: string, page?: number }) => {
|
||||||
const response = await api.get(`mobile/discussion?user=${user}&active=${active}&search=${search}&division=${division}&page=${page}`);
|
const response = await api.get(`mobile/discussion?user=${user}&active=${active}&search=${search}&division=${division}&page=${page}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user