Changeset View
Changeset View
Standalone View
Standalone View
lib/selectors/thread-selectors.js
Show All 35 Lines | import { | ||||
threadPermissions, | threadPermissions, | ||||
threadTypes, | threadTypes, | ||||
type SidebarInfo, | type SidebarInfo, | ||||
threadTypeIsCommunityRoot, | threadTypeIsCommunityRoot, | ||||
} from '../types/thread-types'; | } from '../types/thread-types'; | ||||
import { dateString, dateFromString } from '../utils/date-utils'; | import { dateString, dateFromString } from '../utils/date-utils'; | ||||
import { values } from '../utils/objects'; | import { values } from '../utils/objects'; | ||||
import { | import { | ||||
filteredCommunityThreadIDsSelector, | |||||
filteredThreadIDsSelector, | filteredThreadIDsSelector, | ||||
includeDeletedSelector, | includeDeletedSelector, | ||||
} from './calendar-filter-selectors'; | } from './calendar-filter-selectors'; | ||||
import { relativeMemberInfoSelectorForMembersOfThread } from './user-selectors'; | import { relativeMemberInfoSelectorForMembersOfThread } from './user-selectors'; | ||||
const _mapValuesWithKeys = _mapValues.convert({ cap: false }); | const _mapValuesWithKeys = _mapValues.convert({ cap: false }); | ||||
type ThreadInfoSelectorType = ( | type ThreadInfoSelectorType = ( | ||||
Show All 39 Lines | (threadInfos: { +[id: string]: ThreadInfo }) => { | ||||
return result; | return result; | ||||
}, | }, | ||||
); | ); | ||||
const onScreenThreadInfos: ( | const onScreenThreadInfos: ( | ||||
state: BaseAppState<*>, | state: BaseAppState<*>, | ||||
) => $ReadOnlyArray<ThreadInfo> = createSelector( | ) => $ReadOnlyArray<ThreadInfo> = createSelector( | ||||
filteredThreadIDsSelector, | filteredThreadIDsSelector, | ||||
filteredCommunityThreadIDsSelector, | |||||
canBeOnScreenThreadInfos, | canBeOnScreenThreadInfos, | ||||
( | ( | ||||
inputThreadIDs: ?$ReadOnlySet<string>, | inputThreadIDs: ?$ReadOnlySet<string>, | ||||
inputCommunityThreadIDs: ?$ReadOnlySet<string>, | |||||
threadInfos: $ReadOnlyArray<ThreadInfo>, | threadInfos: $ReadOnlyArray<ThreadInfo>, | ||||
) => { | ) => { | ||||
const threadIDs = inputThreadIDs; | if (!inputThreadIDs && !inputCommunityThreadIDs) { | ||||
if (!threadIDs) { | |||||
return threadInfos; | return threadInfos; | ||||
} | } | ||||
return threadInfos.filter(threadInfo => threadIDs.has(threadInfo.id)); | return threadInfos.filter( | ||||
threadInfo => | |||||
(!inputThreadIDs || inputThreadIDs.has(threadInfo.id)) && | |||||
(!inputCommunityThreadIDs || | |||||
inputCommunityThreadIDs.has(threadInfo.id)), | |||||
); | |||||
}, | }, | ||||
); | ); | ||||
const onScreenEntryEditableThreadInfos: ( | const onScreenEntryEditableThreadInfos: ( | ||||
state: BaseAppState<*>, | state: BaseAppState<*>, | ||||
) => $ReadOnlyArray<ThreadInfo> = createSelector( | ) => $ReadOnlyArray<ThreadInfo> = createSelector( | ||||
onScreenThreadInfos, | onScreenThreadInfos, | ||||
(threadInfos: $ReadOnlyArray<ThreadInfo>) => | (threadInfos: $ReadOnlyArray<ThreadInfo>) => | ||||
▲ Show 20 Lines • Show All 317 Lines • Show Last 20 Lines |