upd: komentar diskusi umum dan divisi

Deskripsi:
- memberikan note sesuai dengan status diskusi agar lebih jelas
- pada fitur diskusi umum dan diskusi divisi

No Issues
This commit is contained in:
2025-10-08 12:07:56 +08:00
parent 9b18322f38
commit f9c8c92d3b
3 changed files with 98 additions and 76 deletions

View File

@@ -211,28 +211,41 @@ export default function DetailDiscussionGeneral() {
Styles.w100, Styles.w100,
{ backgroundColor: "#f4f4f4" }, { backgroundColor: "#f4f4f4" },
]}> ]}>
<InputForm {
disable={(data?.status === 2 || !data?.isActive || (!memberDiscussion && (entityUser.role == "user" || entityUser.role == "coadmin")))} data?.status != 2 && data?.isActive && ((entityUser.role != "user" && entityUser.role != "coadmin") || memberDiscussion)
type="default" ?
round <InputForm
placeholder="Kirim Komentar" disable={(data?.status === 2 || !data?.isActive || (!memberDiscussion && (entityUser.role == "user" || entityUser.role == "coadmin")))}
bg="white" type="default"
onChange={setKomentar} round
value={komentar} placeholder="Kirim Komentar"
multiline bg="white"
itemRight={ onChange={setKomentar}
<Pressable onPress={() => { value={komentar}
(komentar != '' && !regexOnlySpacesOrEnter.test(komentar) && data?.status === 1 && data?.isActive && (memberDiscussion || (entityUser.role != "user" && entityUser.role != "coadmin"))) multiline
&& handleKomentar() itemRight={
}} <Pressable onPress={() => {
style={[ (komentar != '' && !regexOnlySpacesOrEnter.test(komentar) && data?.status === 1 && data?.isActive && (memberDiscussion || (entityUser.role != "user" && entityUser.role != "coadmin")))
Platform.OS == 'android' && Styles.mb12, && handleKomentar()
]} }}
> style={[
<MaterialIcons name="send" size={25} style={(komentar == '' || regexOnlySpacesOrEnter.test(komentar) || data?.status === 2 || !data?.isActive || (!memberDiscussion && (entityUser.role == "user" || entityUser.role == "coadmin"))) ? Styles.cGray : Styles.cDefault} /> Platform.OS == 'android' && Styles.mb12,
</Pressable> ]}
} >
/> <MaterialIcons name="send" size={25} style={(komentar == '' || regexOnlySpacesOrEnter.test(komentar) || data?.status === 2 || !data?.isActive || (!memberDiscussion && (entityUser.role == "user" || entityUser.role == "coadmin"))) ? Styles.cGray : Styles.cDefault} />
</Pressable>
}
/>
:
<View style={[Styles.pv20, { alignItems: 'center' }]}>
<Text style={[Styles.textInformation, Styles.cGray]}>
{
data?.status == 2 ? "Diskusi telah ditutup" : data?.isActive == false ? "Diskusi telah diarsipkan" : "Hanya anggota diskusi yang dapat memberikan komentar"
}
</Text>
</View>
}
</View> </View>
</KeyboardAvoidingView> </KeyboardAvoidingView>
</View > </View >

View File

@@ -295,61 +295,67 @@ export default function DiscussionDetail() {
{ backgroundColor: "#f4f4f4" }, { backgroundColor: "#f4f4f4" },
]} ]}
> >
<InputForm {
disable={ data?.status != 2 && data?.isActive && ((entityUser.role != "user" && entityUser.role != "coadmin") ||
data?.status == 2 || isMemberDivision)
data?.isActive == false || ?
((entityUser.role == "user" || entityUser.role == "coadmin") && <InputForm
!isMemberDivision) // disable={
} // data?.status == 2 ||
bg="white" // data?.isActive == false ||
type="default" // ((entityUser.role == "user" || entityUser.role == "coadmin") && !isMemberDivision)
round // }
multiline bg="white"
placeholder="Kirim Komentar" type="default"
onChange={setKomentar} round
value={komentar} multiline
itemRight={ placeholder="Kirim Komentar"
<Pressable onChange={setKomentar}
onPress={() => { value={komentar}
komentar != "" && itemRight={
!regexOnlySpacesOrEnter.test(komentar) && <Pressable
!loadingSend && onPress={() => {
data?.status != 2 && komentar != "" &&
data?.isActive && !regexOnlySpacesOrEnter.test(komentar) &&
(((entityUser.role == "user" || !loadingSend &&
entityUser.role == "coadmin") && data?.status != 2 &&
isMemberDivision) || data?.isActive &&
entityUser.role == "admin" || (((entityUser.role == "user" ||
entityUser.role == "supadmin" || entityUser.role == "coadmin") &&
entityUser.role == "developer" || isMemberDivision) ||
entityUser.role == "cosupadmin") && entityUser.role == "admin" ||
handleKomentar(); entityUser.role == "supadmin" ||
}} entityUser.role == "developer" ||
style={[ entityUser.role == "cosupadmin") &&
Platform.OS == 'android' && Styles.mb12, handleKomentar();
]} }}
> style={[
<MaterialIcons Platform.OS == 'android' && Styles.mb12,
name="send" ]}
size={25} >
style={ <MaterialIcons
[komentar == "" || name="send"
regexOnlySpacesOrEnter.test(komentar) || size={25}
loadingSend || style={
data?.status == 2 || [komentar == "" || regexOnlySpacesOrEnter.test(komentar) || loadingSend || ((entityUser.role == "user" || entityUser.role == "coadmin") && !isMemberDivision)
data?.isActive == false || ? Styles.cGray
((entityUser.role == "user" || : Styles.cDefault,
entityUser.role == "coadmin") && ]
!isMemberDivision) }
? Styles.cGray />
: Styles.cDefault, </Pressable>
] }
/>
:
<View style={[Styles.pv20, { alignItems: 'center' }]}>
<Text style={[Styles.textInformation, Styles.cGray]}>
{
data?.status == 2 ? "Diskusi telah ditutup" : data?.isActive == false ? "Diskusi telah diarsipkan" : "Hanya anggota divisi yang dapat memberikan komentar"
} }
/> </Text>
</Pressable> </View>
} }
/>
</View> </View>
</KeyboardAvoidingView> </KeyboardAvoidingView>

View File

@@ -187,6 +187,9 @@ const Styles = StyleSheet.create({
pv15: { pv15: {
paddingVertical: 15 paddingVertical: 15
}, },
pv20: {
paddingVertical: 20
},
p15: { p15: {
padding: 15 padding: 15
}, },