48 lines
1.1 KiB
TypeScript

import { Selector, createSelector } from '@ngrx/store';
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
export interface State {
buddyInfoList: UserInfo[];
buddy2SyncDate: string;
groupList: GroupDetailData[];
group2SyncDate: string;
}
export const initialState: State = {
buddyInfoList: [],
buddy2SyncDate: '',
groupList: [],
group2SyncDate: ''
};
export function selectors<S>(selector: Selector<any, State>) {
return {
buddyInfoList: createSelector(
selector,
(state: State) => state.buddyInfoList
),
buddy2SyncDate: createSelector(
selector,
(state: State) => state.buddy2SyncDate
),
groupList: createSelector(
selector,
(state: State) => state.groupList
),
group2SyncDate: createSelector(
selector,
(state: State) => state.group2SyncDate
),
groupListAndBuddyList: createSelector(
selector,
(state: State) => {
return {
groupList: state.groupList,
buddyList: state.buddyInfoList
};
}
)
};
}