upd: division
Deskripsi: - tambah divisi No Issues
This commit is contained in:
@@ -53,7 +53,7 @@ export default function CreateDivision() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleSetData() {
|
function handleSetData() {
|
||||||
dispatch(setFormCreateDivision({ data: dataForm }))
|
dispatch(setFormCreateDivision({ ...update, data: dataForm }))
|
||||||
router.push(`./create/add-member`)
|
router.push(`./create/add-member`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import ButtonBackHeader from "@/components/buttonBackHeader";
|
|||||||
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
||||||
import ImageUser from "@/components/imageNew";
|
import ImageUser from "@/components/imageNew";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
|
import { apiCreateDivision } from "@/lib/api";
|
||||||
|
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
||||||
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import { AntDesign } from "@expo/vector-icons";
|
import { AntDesign } from "@expo/vector-icons";
|
||||||
@@ -21,8 +23,9 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
const { id } = useLocalSearchParams<{ id: string }>()
|
const { id } = useLocalSearchParams<{ id: string }>()
|
||||||
const [dataOld, setDataOld] = useState<Props[]>([])
|
const [dataOld, setDataOld] = useState<Props[]>([])
|
||||||
const [data, setData] = useState<Props[]>([])
|
const [data, setData] = useState<Props[]>([])
|
||||||
const [selectMember, setSelectMember] = useState<any[]>([])
|
const [selectMember, setSelectMember] = useState<string[]>([])
|
||||||
const update = useSelector((state: any) => state.divisionCreate)
|
const update = useSelector((state: any) => state.divisionCreate)
|
||||||
|
const updateDivision = useSelector((state: any) => state.divisionUpdate)
|
||||||
const dispatch = useDispatch()
|
const dispatch = useDispatch()
|
||||||
|
|
||||||
async function handleLoadMember() {
|
async function handleLoadMember() {
|
||||||
@@ -33,21 +36,30 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
handleLoadMember()
|
handleLoadMember()
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
function onChoose(val: string, label: string, img?: string) {
|
function onChoose(val: string) {
|
||||||
if (selectMember.some((i: any) => i.idUser == val)) {
|
if (selectMember.some((i: any) => i == val)) {
|
||||||
setSelectMember(selectMember.filter((i: any) => i.idUser != val))
|
setSelectMember(selectMember.filter((i: any) => i != val))
|
||||||
} else {
|
} else {
|
||||||
setSelectMember([...selectMember, { idUser: val, name: label, img }])
|
setSelectMember([...selectMember, val])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleAddMember() {
|
async function handleAddMember() {
|
||||||
try {
|
try {
|
||||||
dispatch(setUpdateDivision({ ...update, admin: selectMember }))
|
dispatch(setFormCreateDivision({ ...update, admin: selectMember }))
|
||||||
// router.push(`./add-admin-division`)
|
const hasil = await decryptToken(String(token?.current))
|
||||||
|
const response = await apiCreateDivision({ ...update, user: hasil })
|
||||||
|
if (response.success) {
|
||||||
|
ToastAndroid.show('Berhasil membuat divisi', ToastAndroid.SHORT)
|
||||||
|
dispatch(setFormCreateDivision({ admin: [], member: [], data: { idGroup: '', name: '', desc: '' } }))
|
||||||
|
dispatch(setUpdateDivision(!updateDivision))
|
||||||
|
router.replace(`/division/`)
|
||||||
|
} else {
|
||||||
|
ToastAndroid.show(response.message, ToastAndroid.SHORT)
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
ToastAndroid.show('Gagal menambahkan anggota', ToastAndroid.SHORT)
|
ToastAndroid.show('Gagal membuat divisi', ToastAndroid.SHORT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +73,7 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
headerTitleAlign: 'center',
|
headerTitleAlign: 'center',
|
||||||
headerRight: () => (
|
headerRight: () => (
|
||||||
<ButtonSaveHeader
|
<ButtonSaveHeader
|
||||||
category="update"
|
category="create"
|
||||||
disable={selectMember.length > 0 ? false : true}
|
disable={selectMember.length > 0 ? false : true}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
handleAddMember()
|
handleAddMember()
|
||||||
@@ -81,10 +93,10 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
key={index}
|
key={index}
|
||||||
style={[Styles.itemSelectModal]}
|
style={[Styles.itemSelectModal]}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
!found && onChoose(item.id, item.name, item.img)
|
!found && onChoose(item.idUser)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
@@ -94,7 +106,7 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} />
|
selectMember.some((i: any) => i == item.idUser) && <AntDesign name="check" size={20} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import ImageWithLabel from "@/components/imageWithLabel";
|
|||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetUser } from "@/lib/api";
|
import { apiGetUser } from "@/lib/api";
|
||||||
|
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
||||||
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import { AntDesign } from "@expo/vector-icons";
|
import { AntDesign } from "@expo/vector-icons";
|
||||||
@@ -52,7 +53,7 @@ export default function CreateDivisionAddMember() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function handleAddMember() {
|
async function handleAddMember() {
|
||||||
dispatch(setUpdateDivision({ ...update, member: selectMember }))
|
dispatch(setFormCreateDivision({ ...update, member: selectMember }))
|
||||||
router.push(`./add-admin-division`)
|
router.push(`./add-admin-division`)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +111,7 @@ export default function CreateDivisionAddMember() {
|
|||||||
!found && onChoose(item.id, item.name, item.img)
|
!found && onChoose(item.id, item.name, item.img)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ export const apiGetDivisionMember = async ({ user, id, search }: { user: string,
|
|||||||
return response.data;
|
return response.data;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const apiCreateDivision = async (data: { data: { idGroup: string, name: string, desc: string }, member: [], admin: string[] }) => {
|
export const apiCreateDivision = async (data: { data: { idGroup: string, name: string, desc: string }, member: [], admin: string[], user:string }) => {
|
||||||
const response = await api.post(`/mobile/division`, data)
|
const response = await api.post(`/mobile/division`, data)
|
||||||
return response.data;
|
return response.data;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user