upd: tab navigation
Deskripsi: - fix tab navigation :: diganti pake useState - group - position - member - diskusi umum - project - divisi - tugas divisi No Issues
This commit is contained in:
@@ -38,6 +38,7 @@ export default function ListTask() {
|
||||
const update = useSelector((state: any) => state.taskUpdate)
|
||||
const [loading, setLoading] = useState(true)
|
||||
const arrSkeleton = Array.from({ length: 3 })
|
||||
const [statusFix, setStatusFix] = useState<'0' | '1' | '2' | '3'>('0')
|
||||
|
||||
async function handleLoad(loading: boolean) {
|
||||
try {
|
||||
@@ -46,7 +47,7 @@ export default function ListTask() {
|
||||
const response = await apiGetTask({
|
||||
user: hasil,
|
||||
division: id,
|
||||
status,
|
||||
status: statusFix,
|
||||
search,
|
||||
});
|
||||
setData(response.data);
|
||||
@@ -63,7 +64,7 @@ export default function ListTask() {
|
||||
|
||||
useEffect(() => {
|
||||
handleLoad(true);
|
||||
}, [status, search]);
|
||||
}, [statusFix, search]);
|
||||
|
||||
return (
|
||||
<SafeAreaView>
|
||||
@@ -71,64 +72,56 @@ export default function ListTask() {
|
||||
<View style={[Styles.p15, Styles.mb100]}>
|
||||
<ScrollView horizontal style={[Styles.mb10]}>
|
||||
<ButtonTab
|
||||
active={status}
|
||||
active={statusFix}
|
||||
value="0"
|
||||
onPress={() => {
|
||||
router.replace("./task?status=0");
|
||||
}}
|
||||
onPress={() => { setStatusFix("0") }}
|
||||
label="Segera"
|
||||
icon={
|
||||
<MaterialCommunityIcons
|
||||
name="clock-alert-outline"
|
||||
color={status == "0" ? "white" : "black"}
|
||||
color={statusFix == "0" ? "white" : "black"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
n={4}
|
||||
/>
|
||||
<ButtonTab
|
||||
active={status}
|
||||
active={statusFix}
|
||||
value="1"
|
||||
onPress={() => {
|
||||
router.replace("./task?status=1");
|
||||
}}
|
||||
onPress={() => { setStatusFix("1") }}
|
||||
label="Dikerjakan"
|
||||
icon={
|
||||
<MaterialCommunityIcons
|
||||
name="progress-check"
|
||||
color={status == "1" ? "white" : "black"}
|
||||
color={statusFix == "1" ? "white" : "black"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
n={4}
|
||||
/>
|
||||
<ButtonTab
|
||||
active={status}
|
||||
active={statusFix}
|
||||
value="2"
|
||||
onPress={() => {
|
||||
router.replace("./task?status=2");
|
||||
}}
|
||||
onPress={() => { setStatusFix("2") }}
|
||||
label="Selesai"
|
||||
icon={
|
||||
<Ionicons
|
||||
name="checkmark-done-circle-outline"
|
||||
color={status == "2" ? "white" : "black"}
|
||||
color={statusFix == "2" ? "white" : "black"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
n={4}
|
||||
/>
|
||||
<ButtonTab
|
||||
active={status}
|
||||
active={statusFix}
|
||||
value="3"
|
||||
onPress={() => {
|
||||
router.replace("./task?status=3");
|
||||
}}
|
||||
onPress={() => { setStatusFix("3") }}
|
||||
label="Batal"
|
||||
icon={
|
||||
<AntDesign
|
||||
name="closecircleo"
|
||||
color={status == "3" ? "white" : "black"}
|
||||
color={statusFix == "3" ? "white" : "black"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ export default function ListDivision() {
|
||||
const update = useSelector((state: any) => state.divisionUpdate)
|
||||
const arrSkeleton = Array.from({ length: 3 }, (_, index) => index)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [status, setStatus] = useState<'true' | 'false'>('true')
|
||||
const [category, setCategory] = useState<'divisi-saya' | 'semua'>('divisi-saya')
|
||||
|
||||
async function handleLoad(loading: boolean) {
|
||||
try {
|
||||
@@ -49,10 +51,10 @@ export default function ListDivision() {
|
||||
const hasil = await decryptToken(String(token?.current));
|
||||
const response = await apiGetDivision({
|
||||
user: hasil,
|
||||
active: String(active),
|
||||
active: status,
|
||||
search: search,
|
||||
group: String(group),
|
||||
kategori: String(cat),
|
||||
kategori: category,
|
||||
});
|
||||
|
||||
if (response.success) {
|
||||
@@ -72,7 +74,7 @@ export default function ListDivision() {
|
||||
|
||||
useEffect(() => {
|
||||
handleLoad(true);
|
||||
}, [active, search, group, cat]);
|
||||
}, [status, search, group, category]);
|
||||
|
||||
return (
|
||||
<SafeAreaView>
|
||||
@@ -82,32 +84,28 @@ export default function ListDivision() {
|
||||
entityUser.role != "user" && entityUser.role != "coadmin" ?
|
||||
<View style={[Styles.wrapBtnTab]}>
|
||||
<ButtonTab
|
||||
active={active == "false" ? "false" : "true"}
|
||||
active={status == "false" ? "false" : "true"}
|
||||
value="true"
|
||||
onPress={() => {
|
||||
router.replace(`/division?active=true&search=${search}&group=${group}&cat=${cat}`);
|
||||
}}
|
||||
onPress={() => { setStatus("true") }}
|
||||
label="Aktif"
|
||||
icon={
|
||||
<Feather
|
||||
name="check-circle"
|
||||
color={active == "false" ? "black" : "white"}
|
||||
color={status == "false" ? "black" : "white"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
n={2}
|
||||
/>
|
||||
<ButtonTab
|
||||
active={active == "false" ? "false" : "true"}
|
||||
active={status == "false" ? "false" : "true"}
|
||||
value="false"
|
||||
onPress={() => {
|
||||
router.replace(`/division?active=false&search=${search}&group=${group}&cat=${cat}`);
|
||||
}}
|
||||
onPress={() => { setStatus("false") }}
|
||||
label="Tidak Aktif"
|
||||
icon={
|
||||
<AntDesign
|
||||
name="closecircleo"
|
||||
color={active == "true" ? "black" : "white"}
|
||||
color={status == "true" ? "black" : "white"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
@@ -117,32 +115,28 @@ export default function ListDivision() {
|
||||
:
|
||||
<View style={[Styles.wrapBtnTab]}>
|
||||
<ButtonTab
|
||||
active={cat == "semua" ? "false" : "true"}
|
||||
active={category == "semua" ? "false" : "true"}
|
||||
value="true"
|
||||
onPress={() => {
|
||||
router.replace(`/division?&search=${search}&group=${group}&cat=divisi-saya`);
|
||||
}}
|
||||
onPress={() => { setCategory("divisi-saya") }}
|
||||
label="Divisi Saya"
|
||||
icon={
|
||||
<Ionicons
|
||||
name="file-tray-outline"
|
||||
color={cat == "semua" ? "black" : "white"}
|
||||
color={category == "semua" ? "black" : "white"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
n={2}
|
||||
/>
|
||||
<ButtonTab
|
||||
active={cat == "semua" ? "false" : "true"}
|
||||
active={category == "semua" ? "false" : "true"}
|
||||
value="false"
|
||||
onPress={() => {
|
||||
router.replace(`/division?&search=${search}&group=${group}&cat=semua`);
|
||||
}}
|
||||
onPress={() => { setCategory("semua") }}
|
||||
label="Semua Divisi"
|
||||
icon={
|
||||
<Ionicons
|
||||
name="file-tray-stacked-outline"
|
||||
color={cat == "semua" ? "white" : "black"}
|
||||
color={category == "semua" ? "white" : "black"}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user