mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-28 14:57:28 +00:00
Merge branch 'stable'
This commit is contained in:
@@ -63,8 +63,6 @@ struct OnboardingConditionsView: View {
|
||||
@State private var notificationsModeNavLinkActive = false
|
||||
@State private var justOpened = true
|
||||
|
||||
var selectedOperators: [ServerOperator] { serverOperators.filter { selectedOperatorIds.contains($0.operatorId) } }
|
||||
|
||||
var body: some View {
|
||||
GeometryReader { g in
|
||||
let v = ScrollView {
|
||||
@@ -169,9 +167,7 @@ struct OnboardingConditionsView: View {
|
||||
Task {
|
||||
do {
|
||||
let conditionsId = ChatModel.shared.conditions.currentConditions.conditionsId
|
||||
let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted }
|
||||
let operatorIds = acceptForOperators.map { $0.operatorId }
|
||||
let r = try await acceptConditions(conditionsId: conditionsId, operatorIds: operatorIds)
|
||||
let r = try await acceptConditions(conditionsId: conditionsId, operatorIds: Array(selectedOperatorIds))
|
||||
await MainActor.run {
|
||||
ChatModel.shared.conditions = r
|
||||
}
|
||||
|
||||
+1
-1
@@ -640,7 +640,7 @@ object ChatController {
|
||||
val chats = apiGetChats(rhId)
|
||||
chatModel.chatsContext.updateChats(chats, keepingChatId = keepingChatId)
|
||||
}
|
||||
chatModel.userTags.value = apiGetChatTags(rhId).takeIf { hasUser } ?: emptyList()
|
||||
chatModel.userTags.value = if (hasUser) apiGetChatTags(rhId) ?: emptyList() else emptyList()
|
||||
chatModel.activeChatTagFilter.value = null
|
||||
chatModel.updateChatTags(rhId)
|
||||
}
|
||||
|
||||
+3
-8
@@ -15,8 +15,7 @@ import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import chat.simplex.common.model.*
|
||||
@@ -38,7 +37,6 @@ fun ModalData.OnboardingConditionsView() {
|
||||
ModalView({}, showClose = false) {
|
||||
val serverOperators = remember { derivedStateOf { chatModel.conditions.value.serverOperators } }
|
||||
val selectedOperatorIds = remember { stateGetOrPut("selectedOperatorIds") { serverOperators.value.filter { it.enabled }.map { it.operatorId }.toSet() } }
|
||||
val selectedOperators = remember { derivedStateOf { serverOperators.value.filter { selectedOperatorIds.value.contains(it.operatorId) } } }
|
||||
|
||||
ColumnWithScrollBar(
|
||||
Modifier
|
||||
@@ -84,7 +82,7 @@ fun ModalData.OnboardingConditionsView() {
|
||||
Spacer(Modifier.weight(1f))
|
||||
|
||||
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
AcceptConditionsButton(enabled = selectedOperatorIds.value.isNotEmpty(), selectedOperators, selectedOperatorIds)
|
||||
AcceptConditionsButton(enabled = selectedOperatorIds.value.isNotEmpty(), selectedOperatorIds)
|
||||
TextButtonBelowOnboardingButton(stringResource(MR.strings.onboarding_conditions_configure_server_operators)) {
|
||||
ModalManager.fullscreen.showModalCloseable { close ->
|
||||
ChooseServerOperators(serverOperators, selectedOperatorIds, close)
|
||||
@@ -217,7 +215,6 @@ private fun SetOperatorsButton(enabled: Boolean, close: () -> Unit) {
|
||||
@Composable
|
||||
private fun AcceptConditionsButton(
|
||||
enabled: Boolean,
|
||||
selectedOperators: State<List<ServerOperator>>,
|
||||
selectedOperatorIds: State<Set<Long>>
|
||||
) {
|
||||
fun continueOnAccept() {
|
||||
@@ -235,9 +232,7 @@ private fun AcceptConditionsButton(
|
||||
onclick = {
|
||||
withBGApi {
|
||||
val conditionsId = chatModel.conditions.value.currentConditions.conditionsId
|
||||
val acceptForOperators = selectedOperators.value.filter { !it.conditionsAcceptance.conditionsAccepted }
|
||||
val operatorIds = acceptForOperators.map { it.operatorId }
|
||||
val r = chatController.acceptConditions(chatModel.remoteHostId(), conditionsId = conditionsId, operatorIds = operatorIds)
|
||||
val r = chatController.acceptConditions(chatModel.remoteHostId(), conditionsId = conditionsId, operatorIds = selectedOperatorIds.value.toList())
|
||||
if (r != null) {
|
||||
chatModel.conditions.value = r
|
||||
val enabledOperators = enabledOperators(r.serverOperators, selectedOperatorIds.value)
|
||||
|
||||
Reference in New Issue
Block a user