Arrange the placement of list status indicators.
This commit is contained in:
+56
-19
@@ -60,14 +60,17 @@ import androidx.compose.foundation.text.ClickableText
|
|||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.automirrored.filled.PlaylistAddCheck
|
import androidx.compose.material.icons.automirrored.filled.PlaylistAddCheck
|
||||||
|
import androidx.compose.material.icons.filled.Add
|
||||||
import androidx.compose.material.icons.filled.ArrowDropDown
|
import androidx.compose.material.icons.filled.ArrowDropDown
|
||||||
import androidx.compose.material.icons.filled.ArrowDropUp
|
import androidx.compose.material.icons.filled.ArrowDropUp
|
||||||
import androidx.compose.material.icons.filled.ContentCopy
|
import androidx.compose.material.icons.filled.ContentCopy
|
||||||
|
import androidx.compose.material.icons.filled.Delete
|
||||||
import androidx.compose.material.icons.filled.Done
|
import androidx.compose.material.icons.filled.Done
|
||||||
import androidx.compose.material.icons.filled.EditNote
|
import androidx.compose.material.icons.filled.EditNote
|
||||||
import androidx.compose.material.icons.filled.Link
|
import androidx.compose.material.icons.filled.Link
|
||||||
import androidx.compose.material.icons.filled.MoreVert
|
import androidx.compose.material.icons.filled.MoreVert
|
||||||
import androidx.compose.material.icons.filled.PlaylistAddCheck
|
import androidx.compose.material3.AssistChip
|
||||||
|
import androidx.compose.material3.AssistChipDefaults
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
@@ -926,7 +929,7 @@ private fun ProfileActions(
|
|||||||
userHex = baseUser.pubkeyHex,
|
userHex = baseUser.pubkeyHex,
|
||||||
followLists = tempFollowLists,
|
followLists = tempFollowLists,
|
||||||
addUser = { index, list ->
|
addUser = { index, list ->
|
||||||
list.members = list.members.plus(baseUser.pubkeyHex)
|
list.members.add(baseUser.pubkeyHex)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1117,9 +1120,9 @@ private fun DropDownMenuHeader(
|
|||||||
class FollowInfo(
|
class FollowInfo(
|
||||||
val name: String,
|
val name: String,
|
||||||
val isPrivate: Boolean,
|
val isPrivate: Boolean,
|
||||||
memberList: List<String> = mutableListOf(),
|
memberList: MutableList<String> = mutableListOf(),
|
||||||
) {
|
) {
|
||||||
var members by mutableStateOf(memberList)
|
var members = memberList
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateFollowLists(): List<FollowInfo> =
|
fun generateFollowLists(): List<FollowInfo> =
|
||||||
@@ -1167,26 +1170,60 @@ fun FollowSetItem(
|
|||||||
) {
|
) {
|
||||||
Text(listHeader, fontWeight = FontWeight.Bold)
|
Text(listHeader, fontWeight = FontWeight.Bold)
|
||||||
Spacer(modifier = StdVertSpacer)
|
Spacer(modifier = StdVertSpacer)
|
||||||
FilterChip(
|
Row {
|
||||||
selected = isUserInList,
|
FilterChip(
|
||||||
enabled = isUserInList,
|
selected = isUserInList,
|
||||||
onClick = {},
|
enabled = isUserInList,
|
||||||
label = {
|
onClick = {},
|
||||||
Text(text = if (isUserInList) "In List" else "Not in List")
|
label = {
|
||||||
},
|
Text(text = if (isUserInList) "In List" else "Not in List")
|
||||||
leadingIcon =
|
},
|
||||||
if (isUserInList) {
|
leadingIcon =
|
||||||
{
|
if (isUserInList) {
|
||||||
|
{
|
||||||
|
Icon(
|
||||||
|
imageVector = Icons.AutoMirrored.Filled.PlaylistAddCheck,
|
||||||
|
contentDescription = null,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
},
|
||||||
|
shape = ButtonBorder,
|
||||||
|
)
|
||||||
|
Spacer(modifier = StdHorzSpacer)
|
||||||
|
AssistChip(
|
||||||
|
onClick = {},
|
||||||
|
label = {
|
||||||
|
Text(text = if (isUserInList) "Delete" else "Add")
|
||||||
|
},
|
||||||
|
leadingIcon = {
|
||||||
|
if (isUserInList) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Filled.PlaylistAddCheck,
|
imageVector = Icons.Filled.Delete,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
|
tint = MaterialTheme.colorScheme.onError,
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
Icon(
|
||||||
|
imageVector = Icons.Filled.Add,
|
||||||
|
contentDescription = null,
|
||||||
|
tint = MaterialTheme.colorScheme.onBackground,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
null
|
|
||||||
},
|
},
|
||||||
shape = ButtonBorder,
|
shape = ButtonBorder,
|
||||||
)
|
colors =
|
||||||
|
AssistChipDefaults.assistChipColors(
|
||||||
|
containerColor =
|
||||||
|
if (isUserInList) {
|
||||||
|
MaterialTheme.colorScheme.errorContainer
|
||||||
|
} else {
|
||||||
|
MaterialTheme.colorScheme.primary
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
listIsPublic.let {
|
listIsPublic.let {
|
||||||
|
|||||||
Reference in New Issue
Block a user