Migrates DropDownMenu to MutableState
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user