mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-09 08:04:45 +00:00
refactor: complete TextFieldState migration — remove all dual TextFieldValue properties
Remove the old `var message by mutableStateOf(TextFieldValue(""))` properties
from all ViewModels, making `TextFieldState` the single source of truth.
Key changes:
- Add TextFieldState extension functions (updateText, insertUrlAtCursor,
replaceCurrentWord, currentWord) to TextFieldValueExtensions.kt
- Update PreviewState to accept String instead of TextFieldValue
- Add TextFieldState overload to UserSuggestionState.replaceCurrentWord
- Remove forwardZapToEditting and updateZapForwardTo from IZapField interface
- Migrate all 8 ViewModels: EditPostViewModel, ShortNotePostViewModel,
ChatNewMessageViewModel, NewPublicMessageViewModel, CommentPostViewModel,
LongFormPostViewModel, NewProductViewModel, ChannelNewMessageViewModel
- Update all Screen composables that referenced removed properties
https://claude.ai/code/session_01VminH5nD1jbzncbgTaqXEK
This commit is contained in:
+4
-5
@@ -21,7 +21,6 @@
|
||||
package com.vitorpamplona.amethyst.ui.note.creators.previews
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import com.vitorpamplona.amethyst.service.CachedUrlParser
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
@@ -33,22 +32,22 @@ import kotlinx.coroutines.flow.map
|
||||
|
||||
@Stable
|
||||
class PreviewState {
|
||||
var source = MutableStateFlow(TextFieldValue(""))
|
||||
var source = MutableStateFlow("")
|
||||
|
||||
@OptIn(FlowPreview::class)
|
||||
val results =
|
||||
source
|
||||
.debounce(500)
|
||||
.map {
|
||||
CachedUrlParser.parseValidUrls(it.text)
|
||||
CachedUrlParser.parseValidUrls(it)
|
||||
}.distinctUntilChanged()
|
||||
.flowOn(Dispatchers.IO)
|
||||
|
||||
fun reset() {
|
||||
source.tryEmit(TextFieldValue(""))
|
||||
source.tryEmit("")
|
||||
}
|
||||
|
||||
fun update(text: TextFieldValue) {
|
||||
fun update(text: String) {
|
||||
source.tryEmit(text)
|
||||
}
|
||||
}
|
||||
|
||||
-4
@@ -23,13 +23,11 @@ package com.vitorpamplona.amethyst.ui.note.creators.zapsplits
|
||||
import androidx.compose.foundation.text.input.TextFieldState
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import com.vitorpamplona.amethyst.model.User
|
||||
|
||||
@Stable
|
||||
interface IZapField {
|
||||
val forwardZapTo: MutableState<SplitBuilder<User>>
|
||||
val forwardZapToEditting: MutableState<TextFieldValue>
|
||||
val forwardZapToEdittingState: TextFieldState
|
||||
|
||||
fun updateZapFromText()
|
||||
@@ -38,6 +36,4 @@ interface IZapField {
|
||||
index: Int,
|
||||
sliderValue: Float,
|
||||
)
|
||||
|
||||
fun updateZapForwardTo(newZapForwardTo: TextFieldValue)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user