refactor some stuff (#274)

This commit is contained in:
Nolan Lawson 2018-05-06 17:35:22 -07:00 committed by GitHub
parent ee12ec9549
commit 5a1e10dee0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 15 deletions

View file

@ -1,3 +1,5 @@
import get from 'lodash-es/get'
const MIN_PREFIX_LENGTH = 1
const ACCOUNT_SEARCH_REGEX = new RegExp(`(?:\\s|^)(@\\S{${MIN_PREFIX_LENGTH},})$`)
const EMOJI_SEARCH_REGEX = new RegExp(`(?:\\s|^)(:[^:]{${MIN_PREFIX_LENGTH},})$`)
@ -5,10 +7,10 @@ const EMOJI_SEARCH_REGEX = new RegExp(`(?:\\s|^)(:[^:]{${MIN_PREFIX_LENGTH},})$`
function computeForAutosuggest (store, key, defaultValue) {
store.compute(key,
['currentInstance', 'currentComposeRealm', `autosuggestData_${key}`],
(currentInstance, currentComposeRealm, root) => {
let instanceData = root && root[currentInstance]
return (currentComposeRealm && instanceData && currentComposeRealm in instanceData) ? instanceData[currentComposeRealm] : defaultValue
})
(currentInstance, currentComposeRealm, root) => (
get(root, [currentInstance, currentComposeRealm], defaultValue)
)
)
}
export function autosuggestComputations (store) {
@ -22,7 +24,8 @@ export function autosuggestComputations (store) {
'currentComposeText',
['currentComposeData', 'currentComposeRealm'],
(currentComposeData, currentComposeRealm) => (
currentComposeData[currentComposeRealm] && currentComposeData[currentComposeRealm].text) || ''
get(currentComposeData, [currentComposeRealm, 'text'], '')
)
)
store.compute(

View file

@ -1,11 +1,12 @@
import get from 'lodash-es/get'
function computeForTimeline (store, key, defaultValue) {
store.compute(key,
['currentInstance', 'currentTimeline', `timelineData_${key}`],
(currentInstance, currentTimeline, root) => {
let instanceData = root && root[currentInstance]
return (currentTimeline && instanceData && currentTimeline in instanceData) ? instanceData[currentTimeline] : defaultValue
})
(currentInstance, currentTimeline, root) => (
get(root, [currentInstance, currentTimeline], defaultValue)
)
)
}
export function timelineComputations (store) {

View file

@ -1,4 +1,5 @@
import pickBy from 'lodash-es/pickBy'
import get from 'lodash-es/get'
export function timelineMixins (Store) {
Store.prototype.setForTimeline = function (instanceName, timelineName, obj) {
@ -17,7 +18,7 @@ export function timelineMixins (Store) {
Store.prototype.getForTimeline = function (instanceName, timelineName, key) {
let rootKey = `timelineData_${key}`
let root = this.get()[rootKey]
return root && root[instanceName] && root[instanceName][timelineName]
return get(root, [instanceName, timelineName])
}
Store.prototype.getForCurrentTimeline = function (key) {

View file

@ -28,15 +28,14 @@ export function autosuggestObservers (store) {
if (!composeFocused || !autosuggestSearchText) {
return
}
let type = autosuggestSearchText.startsWith('@') ? 'account' : 'emoji'
let results = (type === 'account')
let autosuggestType = autosuggestSearchText.startsWith('@') ? 'account' : 'emoji'
let results = (autosuggestType === 'account')
? await searchAccounts(store, autosuggestSearchText)
: await searchEmoji(store, autosuggestSearchText)
store.setForCurrentAutosuggest({
autosuggestType,
autosuggestSelected: 0,
autosuggestSearchText: autosuggestSearchText,
autosuggestSearchResults: results,
autosuggestType: type
autosuggestSearchResults: results
})
})
}