Migrates DropDownMenu to MutableState

pull/507/head
Vitor Pamplona 2023-07-14 08:36:25 -04:00
rodzic 516ff17eed
commit 83be195a43
7 zmienionych plików z 58 dodań i 30 usunięć

Wyświetl plik

@ -49,7 +49,11 @@ fun BadgeCompose(likeSetCard: BadgeCard, isInnerNote: Boolean = false, routeForL
val context = LocalContext.current.applicationContext
var popupExpanded by remember { mutableStateOf(false) }
val popupExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ popupExpanded.value = true }
}
val scope = rememberCoroutineScope()
if (note == null) {
@ -89,7 +93,7 @@ fun BadgeCompose(likeSetCard: BadgeCard, isInnerNote: Boolean = false, routeForL
)?.let { nav(it) }
}
},
onLongClick = { popupExpanded = true }
onLongClick = enablePopup
)
) {
Row(
@ -136,7 +140,7 @@ fun BadgeCompose(likeSetCard: BadgeCard, isInnerNote: Boolean = false, routeForL
IconButton(
modifier = Modifier.then(Modifier.size(24.dp)),
onClick = { popupExpanded = true }
onClick = enablePopup
) {
Icon(
imageVector = Icons.Default.MoreVert,
@ -145,7 +149,7 @@ fun BadgeCompose(likeSetCard: BadgeCard, isInnerNote: Boolean = false, routeForL
tint = MaterialTheme.colors.placeholderText
)
NoteDropDownMenu(note, popupExpanded, { popupExpanded = false }, accountViewModel)
NoteDropDownMenu(note, popupExpanded, accountViewModel)
}
}

Wyświetl plik

@ -41,7 +41,10 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
val accountState by accountViewModel.accountLiveData.observeAsState()
val loggedIn = remember(accountState) { accountState?.account?.userProfile() } ?: return
var popupExpanded by remember { mutableStateOf(false) }
val popupExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ popupExpanded.value = true }
}
val scope = rememberCoroutineScope()
@ -84,7 +87,7 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
)?.let { nav(it) }
}
},
onLongClick = { popupExpanded = true }
onLongClick = enablePopup
)
.fillMaxWidth()
}
@ -104,7 +107,7 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
nav = nav
)
NoteDropDownMenu(baseNote, popupExpanded, { popupExpanded = false }, accountViewModel)
NoteDropDownMenu(baseNote, popupExpanded, accountViewModel)
}
}
}

Wyświetl plik

@ -89,7 +89,11 @@ import kotlin.time.measureTimedValue
fun MultiSetCompose(multiSetCard: MultiSetCard, routeForLastRead: String, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val baseNote = remember { multiSetCard.note }
var popupExpanded by remember { mutableStateOf(false) }
val popupExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ popupExpanded.value = true }
}
val scope = rememberCoroutineScope()
val defaultBackgroundColor = MaterialTheme.colors.background
@ -130,7 +134,7 @@ fun MultiSetCompose(multiSetCard: MultiSetCard, routeForLastRead: String, accoun
routeFor(baseNote, accountViewModel.userProfile())?.let { nav(it) }
}
},
onLongClick = { popupExpanded = true }
onLongClick = enablePopup
)
.fillMaxWidth()
}
@ -157,7 +161,7 @@ fun MultiSetCompose(multiSetCard: MultiSetCard, routeForLastRead: String, accoun
}
Log.d("Rendering Metrics", "Complete: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
NoteDropDownMenu(baseNote, popupExpanded, { popupExpanded = false }, accountViewModel)
NoteDropDownMenu(baseNote, popupExpanded, accountViewModel)
}
}
}

Wyświetl plik

@ -2428,26 +2428,33 @@ fun MoreOptionsButton(
baseNote: Note,
accountViewModel: AccountViewModel
) {
var moreActionsExpanded by remember { mutableStateOf(false) }
val popupExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ popupExpanded.value = true }
}
IconButton(
modifier = Size24Modifier,
onClick = { moreActionsExpanded = true }
onClick = enablePopup
) {
Icon(
imageVector = Icons.Default.MoreVert,
null,
modifier = Size15Modifier,
tint = MaterialTheme.colors.placeholderText
)
VerticalDotsIcon()
NoteDropDownMenu(
baseNote,
moreActionsExpanded,
{ moreActionsExpanded = false },
popupExpanded,
accountViewModel
)
}
}
}
@Composable
private fun VerticalDotsIcon() {
Icon(
imageVector = Icons.Default.MoreVert,
null,
modifier = Size15Modifier,
tint = MaterialTheme.colors.placeholderText
)
}
@Composable

Wyświetl plik

@ -20,6 +20,7 @@ import androidx.compose.material.ripple.rememberRipple
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
@ -310,7 +311,7 @@ data class DropDownParams(
)
@Composable
fun NoteDropDownMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Unit, accountViewModel: AccountViewModel) {
fun NoteDropDownMenu(note: Note, popupExpanded: MutableState<Boolean>, accountViewModel: AccountViewModel) {
var reportDialogShowing by remember { mutableStateOf(false) }
var state by remember {
@ -326,8 +327,12 @@ fun NoteDropDownMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Unit,
)
}
val onDismiss = remember(popupExpanded) {
{ popupExpanded.value = false }
}
DropdownMenu(
expanded = popupExpanded,
expanded = popupExpanded.value,
onDismissRequest = onDismiss
) {
val clipboardManager = LocalClipboardManager.current

Wyświetl plik

@ -240,7 +240,10 @@ fun NoteMaster(
val context = LocalContext.current
var moreActionsExpanded by remember { mutableStateOf(false) }
val moreActionsExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ moreActionsExpanded.value = true }
}
val noteEvent = note?.event
@ -310,7 +313,7 @@ fun NoteMaster(
IconButton(
modifier = Modifier.then(Modifier.size(24.dp)),
onClick = { moreActionsExpanded = true }
onClick = enablePopup
) {
Icon(
imageVector = Icons.Default.MoreVert,
@ -319,7 +322,7 @@ fun NoteMaster(
tint = MaterialTheme.colors.placeholderText
)
NoteDropDownMenu(baseNote, moreActionsExpanded, { moreActionsExpanded = false }, accountViewModel)
NoteDropDownMenu(baseNote, moreActionsExpanded, accountViewModel)
}
}

Wyświetl plik

@ -304,11 +304,14 @@ private fun VideoUserOptionAction(
note: Note,
accountViewModel: AccountViewModel
) {
var moreActionsExpanded by remember { mutableStateOf(false) }
val popupExpanded = remember { mutableStateOf(false) }
val enablePopup = remember {
{ popupExpanded.value = true }
}
IconButton(
modifier = remember { Modifier.size(22.dp) },
onClick = { moreActionsExpanded = true }
onClick = enablePopup
) {
Icon(
imageVector = Icons.Default.MoreVert,
@ -319,8 +322,7 @@ private fun VideoUserOptionAction(
NoteDropDownMenu(
note,
moreActionsExpanded,
{ moreActionsExpanded = false },
popupExpanded,
accountViewModel
)
}