Always use the latest... fix.
This commit is contained in:
parent
cff076b508
commit
30cea9c70a
9 changed files with 49 additions and 19 deletions
|
|
@ -18,6 +18,8 @@ package io.element.android.features.ftue.impl.migration
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import io.element.android.features.ftue.impl.R
|
import io.element.android.features.ftue.impl.R
|
||||||
|
|
@ -32,8 +34,9 @@ fun MigrationScreenView(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
if (migrationState.isMigrating.not()) {
|
if (migrationState.isMigrating.not()) {
|
||||||
LaunchedEffect(onMigrationFinished) {
|
val latestOnMigrationFinished by rememberUpdatedState(onMigrationFinished)
|
||||||
onMigrationFinished()
|
LaunchedEffect(Unit) {
|
||||||
|
latestOnMigrationFinished()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SunsetPage(
|
SunsetPage(
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
|
@ -57,8 +59,9 @@ fun InviteListView(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
if (state.acceptedAction is AsyncData.Success) {
|
if (state.acceptedAction is AsyncData.Success) {
|
||||||
LaunchedEffect(state.acceptedAction, onInviteAccepted) {
|
val latestOnInviteAccepted by rememberUpdatedState(onInviteAccepted)
|
||||||
onInviteAccepted(state.acceptedAction.data)
|
LaunchedEffect(state.acceptedAction) {
|
||||||
|
latestOnInviteAccepted(state.acceptedAction.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ package io.element.android.features.login.impl.changeserver
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import io.element.android.features.login.impl.dialogs.SlidingSyncNotSupportedDialog
|
import io.element.android.features.login.impl.dialogs.SlidingSyncNotSupportedDialog
|
||||||
|
|
@ -63,8 +65,11 @@ fun ChangeServerView(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is AsyncData.Loading -> ProgressDialog()
|
is AsyncData.Loading -> ProgressDialog()
|
||||||
is AsyncData.Success -> LaunchedEffect(state.changeServerAction, onDone) {
|
is AsyncData.Success -> {
|
||||||
onDone()
|
val latestOnDone by rememberUpdatedState(onDone)
|
||||||
|
LaunchedEffect(state.changeServerAction) {
|
||||||
|
latestOnDone()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
AsyncData.Uninitialized -> Unit
|
AsyncData.Uninitialized -> Unit
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ package io.element.android.features.logout.impl.ui
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import io.element.android.features.logout.impl.R
|
import io.element.android.features.logout.impl.R
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
|
@ -52,9 +54,11 @@ fun LogoutActionDialog(
|
||||||
onRetry = onForceLogoutClicked,
|
onRetry = onForceLogoutClicked,
|
||||||
onDismiss = onDismissError,
|
onDismiss = onDismissError,
|
||||||
)
|
)
|
||||||
is AsyncAction.Success ->
|
is AsyncAction.Success -> {
|
||||||
LaunchedEffect(state, onSuccessLogout) {
|
val latestOnSuccessLogout by rememberUpdatedState(onSuccessLogout)
|
||||||
onSuccessLogout(state.data)
|
LaunchedEffect(state) {
|
||||||
|
latestOnSuccessLogout(state.data)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,10 @@ import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.DisposableEffect
|
import androidx.compose.runtime.DisposableEffect
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableIntStateOf
|
import androidx.compose.runtime.mutableIntStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.geometry.Offset
|
import androidx.compose.ui.geometry.Offset
|
||||||
|
|
@ -294,8 +296,11 @@ private fun AttachmentStateView(
|
||||||
) {
|
) {
|
||||||
when (state) {
|
when (state) {
|
||||||
AttachmentsState.None -> Unit
|
AttachmentsState.None -> Unit
|
||||||
is AttachmentsState.Previewing -> LaunchedEffect(state, onPreviewAttachments) {
|
is AttachmentsState.Previewing -> {
|
||||||
onPreviewAttachments(state.attachments)
|
val latestOnPreviewAttachments by rememberUpdatedState(onPreviewAttachments)
|
||||||
|
LaunchedEffect(state) {
|
||||||
|
latestOnPreviewAttachments(state.attachments)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
is AttachmentsState.Sending -> {
|
is AttachmentsState.Sending -> {
|
||||||
ProgressDialog(
|
ProgressDialog(
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
|
@ -57,8 +59,9 @@ fun AttachmentsPreviewView(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.sendActionState is SendActionState.Done) {
|
if (state.sendActionState is SendActionState.Done) {
|
||||||
LaunchedEffect(state.sendActionState, onDismiss) {
|
val latestOnDismiss by rememberUpdatedState(onDismiss)
|
||||||
onDismiss()
|
LaunchedEffect(state.sendActionState) {
|
||||||
|
latestOnDismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ package io.element.android.features.rageshake.api.detection
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
|
@ -73,9 +75,10 @@ private fun TakeScreenshot(
|
||||||
onScreenshotTaken: (ImageResult) -> Unit
|
onScreenshotTaken: (ImageResult) -> Unit
|
||||||
) {
|
) {
|
||||||
val view = LocalView.current
|
val view = LocalView.current
|
||||||
LaunchedEffect(onScreenshotTaken) {
|
val latestOnScreenshotTaken by rememberUpdatedState(onScreenshotTaken)
|
||||||
|
LaunchedEffect(Unit) {
|
||||||
view.screenshot {
|
view.screenshot {
|
||||||
onScreenshotTaken(it)
|
latestOnScreenshotTaken(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ package io.element.android.libraries.designsystem.components.async
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.designsystem.components.ProgressDialog
|
import io.element.android.libraries.designsystem.components.ProgressDialog
|
||||||
|
|
@ -67,8 +69,9 @@ fun <T> AsyncActionView(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is AsyncAction.Success -> {
|
is AsyncAction.Success -> {
|
||||||
LaunchedEffect(async, onSuccess) {
|
val latestOnSuccess by rememberUpdatedState(onSuccess)
|
||||||
onSuccess(async.data)
|
LaunchedEffect(async) {
|
||||||
|
latestOnSuccess(async.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,9 @@ internal fun <T> SoftKeyboardEffect(
|
||||||
) {
|
) {
|
||||||
val view = LocalView.current
|
val view = LocalView.current
|
||||||
val latestOnRequestFocus by rememberUpdatedState(onRequestFocus)
|
val latestOnRequestFocus by rememberUpdatedState(onRequestFocus)
|
||||||
LaunchedEffect(key, predicate) {
|
val latestPredicate by rememberUpdatedState(predicate)
|
||||||
if (predicate(key)) {
|
LaunchedEffect(key) {
|
||||||
|
if (latestPredicate(key)) {
|
||||||
// Await window focus in case returning from a dialog
|
// Await window focus in case returning from a dialog
|
||||||
view.awaitWindowFocus()
|
view.awaitWindowFocus()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue