Removes the need to start user searches with @ in the user fields across the app.
This commit is contained in:
@@ -275,8 +275,10 @@ open class EditPostViewModel : ViewModel() {
|
||||
|
||||
if (it.selection.collapsed) {
|
||||
val lastWord = message.currentWord()
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-12
@@ -41,7 +41,6 @@ import kotlinx.coroutines.flow.update
|
||||
@Stable
|
||||
class UserSuggestionState(
|
||||
val account: Account,
|
||||
val requireAtSymbol: Boolean = true,
|
||||
) {
|
||||
val invalidations = MutableStateFlow(0)
|
||||
val currentWord = MutableStateFlow("")
|
||||
@@ -81,18 +80,10 @@ class UserSuggestionState(
|
||||
}
|
||||
|
||||
fun userSearchTermOrNull(currentWord: String): String? =
|
||||
if (requireAtSymbol) {
|
||||
if (currentWord.startsWith("@") && currentWord.length > 2) {
|
||||
currentWord.removePrefix("@")
|
||||
} else {
|
||||
null
|
||||
}
|
||||
if (currentWord.length > 2) {
|
||||
currentWord.removePrefix("@")
|
||||
} else {
|
||||
if (currentWord.length > 1) {
|
||||
currentWord
|
||||
} else {
|
||||
null
|
||||
}
|
||||
null
|
||||
}
|
||||
|
||||
fun updateDataSource(searchTerm: String?) {
|
||||
|
||||
+4
-3
@@ -585,9 +585,10 @@ open class CommentPostViewModel :
|
||||
|
||||
if (message.selection.collapsed) {
|
||||
val lastWord = message.currentWord()
|
||||
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
+5
-4
@@ -565,10 +565,11 @@ class ChatNewMessageViewModel :
|
||||
urlPreviews.update(newMessage)
|
||||
|
||||
if (message.selection.collapsed) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
|
||||
val lastWord = message.currentWord()
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
val lastWord = newMessage.currentWord()
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
|
||||
+4
-3
@@ -529,9 +529,10 @@ open class ChannelNewMessageViewModel :
|
||||
|
||||
if (newMessage.selection.collapsed) {
|
||||
val lastWord = newMessage.currentWord()
|
||||
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
+4
-3
@@ -485,9 +485,10 @@ open class NewProductViewModel :
|
||||
|
||||
if (message.selection.collapsed) {
|
||||
val lastWord = message.currentWord()
|
||||
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
+5
-4
@@ -930,10 +930,11 @@ open class ShortNotePostViewModel :
|
||||
urlPreviews.update(message)
|
||||
|
||||
if (message.selection.collapsed) {
|
||||
val lastWord = message.currentWord()
|
||||
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
val lastWord = newMessage.currentWord()
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class PeopleListViewModel : ViewModel() {
|
||||
) {
|
||||
if (!this::account.isInitialized || this.account != account) {
|
||||
this.account = account
|
||||
this.userSuggestions = UserSuggestionState(account, false)
|
||||
this.userSuggestions = UserSuggestionState(account)
|
||||
}
|
||||
|
||||
this.selectedDTag.tryEmit(selectedDTag)
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class FollowPackViewModel : ViewModel() {
|
||||
) {
|
||||
if (!this::account.isInitialized || this.account != account) {
|
||||
this.account = account
|
||||
this.userSuggestions = UserSuggestionState(account, false)
|
||||
this.userSuggestions = UserSuggestionState(account)
|
||||
}
|
||||
|
||||
this.selectedDTag.tryEmit(selectedDTag)
|
||||
|
||||
+5
-3
@@ -522,10 +522,12 @@ class NewPublicMessageViewModel :
|
||||
urlPreviews.update(newMessage)
|
||||
|
||||
if (message.selection.collapsed) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
val lastWord = newMessage.currentWord()
|
||||
if (lastWord.startsWith("@")) {
|
||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
val lastWord = message.currentWord()
|
||||
userSuggestions?.processCurrentWord(lastWord)
|
||||
emojiSuggestions?.processCurrentWord(lastWord)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user