2019-09-25 17:26:19 +09:00
|
|
|
import { Selector, createSelector } from '@ngrx/store';
|
2019-09-25 18:08:50 +09:00
|
|
|
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
2019-09-25 17:26:19 +09:00
|
|
|
|
|
|
|
export interface State {
|
|
|
|
buddyInfoList: UserInfo[];
|
|
|
|
buddy2SyncDate: string;
|
2019-09-25 18:08:50 +09:00
|
|
|
|
|
|
|
groupList: GroupDetailData[];
|
|
|
|
group2SyncDate: string;
|
2019-09-25 17:26:19 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
export const initialState: State = {
|
|
|
|
buddyInfoList: [],
|
2019-09-25 18:08:50 +09:00
|
|
|
buddy2SyncDate: '',
|
|
|
|
groupList: [],
|
|
|
|
group2SyncDate: ''
|
2019-09-25 17:26:19 +09:00
|
|
|
};
|
|
|
|
|
|
|
|
export function selectors<S>(selector: Selector<any, State>) {
|
|
|
|
return {
|
|
|
|
buddyInfoList: createSelector(
|
|
|
|
selector,
|
|
|
|
(state: State) => state.buddyInfoList
|
2019-09-25 18:08:50 +09:00
|
|
|
),
|
|
|
|
buddy2SyncDate: createSelector(
|
|
|
|
selector,
|
|
|
|
(state: State) => state.buddy2SyncDate
|
|
|
|
),
|
|
|
|
groupList: createSelector(
|
|
|
|
selector,
|
|
|
|
(state: State) => state.groupList
|
|
|
|
),
|
|
|
|
group2SyncDate: createSelector(
|
|
|
|
selector,
|
|
|
|
(state: State) => state.group2SyncDate
|
2019-09-27 12:53:21 +09:00
|
|
|
),
|
|
|
|
groupListAndBuddyList: createSelector(
|
|
|
|
selector,
|
|
|
|
(state: State) => {
|
|
|
|
return {
|
|
|
|
groupList: state.groupList,
|
|
|
|
buddyList: state.buddyInfoList
|
|
|
|
};
|
|
|
|
}
|
2019-09-25 17:26:19 +09:00
|
|
|
)
|
|
|
|
};
|
|
|
|
}
|