You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
917 B
TypeScript
41 lines
917 B
TypeScript
import { Dispatch, ActionCreator } from 'redux';
|
|
|
|
|
|
export const getUsers = () => (dispatch: Dispatch) => {
|
|
dispatch({
|
|
type: 'GET_USERS',
|
|
});
|
|
}
|
|
|
|
export const getUsersSuccess = (users: [], isCurrentUser: boolean) => (dispatch: Dispatch) => {
|
|
dispatch({
|
|
type: 'GET_USERS_SUCCESS',
|
|
payload: users,
|
|
currentUser: isCurrentUser ? (users as any)[0] : isCurrentUser,
|
|
});
|
|
}
|
|
|
|
export const getUsersError = (error: {}) => (dispatch: Dispatch) => {
|
|
dispatch({
|
|
type: 'GET_USERS_ERROR',
|
|
payload: error,
|
|
});
|
|
}
|
|
|
|
export const getUsersAsync = (filter = {}) => {
|
|
return (dispatch: ActionCreator<Dispatch>) => {
|
|
dispatch(getUsers());
|
|
|
|
return (window as any).cvat.users.get(filter).then(
|
|
(users: any) => {
|
|
dispatch(getUsersSuccess(users, (filter as any).self));
|
|
},
|
|
(error: any) => {
|
|
dispatch(getUsersError(error));
|
|
|
|
throw error;
|
|
},
|
|
);
|
|
};
|
|
}
|