Compare commits
2 Commits
ep/message
...
av/rtl-ani
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff57bef1e9 | ||
|
|
cf4e2acd0a |
@@ -8,6 +8,9 @@ import androidx.compose.material.*
|
|||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.platform.LocalLayoutDirection
|
||||||
|
import androidx.compose.ui.unit.IntSize
|
||||||
|
import androidx.compose.ui.unit.LayoutDirection
|
||||||
import chat.simplex.common.model.ChatModel
|
import chat.simplex.common.model.ChatModel
|
||||||
import chat.simplex.common.platform.*
|
import chat.simplex.common.platform.*
|
||||||
import chat.simplex.common.ui.theme.*
|
import chat.simplex.common.ui.theme.*
|
||||||
@@ -111,13 +114,22 @@ class ModalManager(private val placement: ModalPlacement? = null) {
|
|||||||
modalViews.lastOrNull()?.second?.invoke(::closeModal)
|
modalViews.lastOrNull()?.second?.invoke(::closeModal)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
val isRtl = LocalLayoutDirection.current == LayoutDirection.Rtl
|
||||||
AnimatedContent(targetState = modalCount.value,
|
AnimatedContent(targetState = modalCount.value,
|
||||||
transitionSpec = {
|
transitionSpec = {
|
||||||
if (targetState > initialState) {
|
if (isRtl) {
|
||||||
fromEndToStartTransition()
|
if (targetState < initialState) {
|
||||||
|
fromStartToEndTransition()
|
||||||
|
} else {
|
||||||
|
fromStartToEndTransition().using(SizeTransform(clip = true) { _, target -> spring(visibilityThreshold = target) })
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
fromStartToEndTransition()
|
if (targetState > initialState) {
|
||||||
}.using(SizeTransform(clip = false))
|
fromEndToStartTransition()
|
||||||
|
} else {
|
||||||
|
fromStartToEndTransition()
|
||||||
|
}.using(SizeTransform(clip = false))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
modalViews.getOrNull(it - 1)?.second?.invoke(::closeModal)
|
modalViews.getOrNull(it - 1)?.second?.invoke(::closeModal)
|
||||||
|
|||||||
Reference in New Issue
Block a user