instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
32 lines (28 loc) • 944 B
JSX
import {tolerant_selector} from './base'
import moment from '../common/moment'
import {
make_memoized, array_from_set, array_from_hash, split_array, filter_hash, map_hash, range,
capitalize_first_letter, array_contains,
} from '../common/utilities'
import {event_intersects} from '../common/calendar'
import {tolerant_equal} from './base'
const get_raw_events = (state) => state.calendar.events
const get_not_deleted_events = tolerant_selector(
[get_raw_events],
(events) => filter_hash(events, (e) => !e.deleted_at)
)
export const get_user_events = make_memoized((user_id) => tolerant_selector(
[get_not_deleted_events],
(events) => split_array(
array_from_hash(events).filter((event) => event.user_id == user_id),
({calenderable_type}) => {
switch (calenderable_type) {
case 'User':
return 'user'
case 'UserAgency':
return 'agency'
}
},
['user', 'agency']
)
))