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:
amel
2025-06-09 16:38:31 +08:00
parent d585f541ac
commit 88d9cd117d
14 changed files with 175 additions and 167 deletions

View File

@@ -33,12 +33,13 @@ export default function Discussion() {
const update = useSelector((state: any) => state.discussionGeneralDetailUpdate)
const [loading, setLoading] = useState(true)
const arrSkeleton = Array.from({ length: 5 }, (_, index) => index)
const [status, setStatus] = useState<'true' | 'false'>('true')
async function handleLoad(loading: boolean) {
try {
setLoading(loading)
const hasil = await decryptToken(String(token?.current))
const response = await apiGetDiscussionGeneral({ user: hasil, active: String(active), search: search, group: String(group) })
const response = await apiGetDiscussionGeneral({ user: hasil, active: status, search: search, group: String(group) })
setData(response.data)
setNameGroup(response.filter.name)
} catch (error) {
@@ -50,7 +51,7 @@ export default function Discussion() {
useEffect(() => {
handleLoad(true)
}, [active, search, group])
}, [status, search, group])
useEffect(() => {
handleLoad(false)
@@ -62,18 +63,18 @@ export default function Discussion() {
<View style={[Styles.p15, Styles.mb100]}>
<View style={[Styles.wrapBtnTab]}>
<ButtonTab
active={active == "false" ? "false" : "true"}
active={status == "false" ? "false" : "true"}
value="true"
onPress={() => { router.push(`/discussion?active=true&group=${group}&search=${search}`) }}
onPress={() => { setStatus("true") }}
label="Aktif"
icon={<Feather name="check-circle" color={active == "false" ? 'black' : 'white'} size={20} />}
icon={<Feather name="check-circle" color={status == "false" ? 'black' : 'white'} size={20} />}
n={2} />
<ButtonTab
active={active == "false" ? "false" : "true"}
active={status == "false" ? "false" : "true"}
value="false"
onPress={() => { router.push(`/discussion?active=false&group=${group}&search=${search}`) }}
onPress={() => { setStatus("false") }}
label="Arsip"
icon={<AntDesign name="closecircleo" color={active == "true" ? 'black' : 'white'} size={20} />}
icon={<AntDesign name="closecircleo" color={status == "true" ? 'black' : 'white'} size={20} />}
n={2} />
</View>
<InputSearch onChange={setSearch} />
@@ -107,7 +108,7 @@ export default function Discussion() {
}
title={item.title}
subtitle={
active != "false" && <LabelStatus category={item.status === 1 ? "success" : "error"} text={item.status === 1 ? "BUKA" : "TUTUP"} size="small" />
status != "false" && <LabelStatus category={item.status === 1 ? "success" : "error"} text={item.status === 1 ? "BUKA" : "TUTUP"} size="small" />
}
rightTopInfo={item.createdAt}
desc={item.desc}
@@ -118,7 +119,7 @@ export default function Discussion() {
</View>
}
rightBottomInfo={`${item.total_komentar} Komentar`}
/>
)
})