diff --git a/app/actions/activeUsers.js b/app/actions/activeUsers.js deleted file mode 100644 index fc359602c..000000000 --- a/app/actions/activeUsers.js +++ /dev/null @@ -1,8 +0,0 @@ -import { SET_ACTIVE_USERS } from './actionsTypes'; - -export function setActiveUsers(activeUsers) { - return { - type: SET_ACTIVE_USERS, - activeUsers - }; -} diff --git a/app/actions/activeUsers.ts b/app/actions/activeUsers.ts new file mode 100644 index 000000000..3e6271ee9 --- /dev/null +++ b/app/actions/activeUsers.ts @@ -0,0 +1,14 @@ +import { Action } from 'redux'; + +import { ActiveUsers } from '../reducers/activeUsers'; +import { SET_ACTIVE_USERS } from './actionsTypes'; + +export interface SetActiveUsers extends Action { + type: typeof SET_ACTIVE_USERS; + activeUsers: ActiveUsers; +} + +export const setActiveUsers = (activeUsers: ActiveUsers): SetActiveUsers => ({ + type: SET_ACTIVE_USERS, + activeUsers +}); diff --git a/app/reducers/activeUsers.js b/app/reducers/activeUsers.js deleted file mode 100644 index 8f6c5b38a..000000000 --- a/app/reducers/activeUsers.js +++ /dev/null @@ -1,15 +0,0 @@ -import { SET_ACTIVE_USERS } from '../actions/actionsTypes'; - -const initialState = {}; - -export default function activeUsers(state = initialState, action) { - switch (action.type) { - case SET_ACTIVE_USERS: - return { - ...state, - ...action.activeUsers - }; - default: - return state; - } -} diff --git a/app/reducers/activeUsers.ts b/app/reducers/activeUsers.ts new file mode 100644 index 000000000..306c24e7e --- /dev/null +++ b/app/reducers/activeUsers.ts @@ -0,0 +1,27 @@ +import { SetActiveUsers } from '../actions/activeUsers'; +import { SET_ACTIVE_USERS } from '../actions/actionsTypes'; + +type UserStatus = 'online' | 'offline'; + +interface ActiveUser { + readonly status: UserStatus; + readonly statusText?: string; +} + +export interface ActiveUsers { + [key: string]: ActiveUser; +} + +const initialState: ActiveUsers = {}; + +export default function activeUsers(state = initialState, action: SetActiveUsers): ActiveUsers { + switch (action.type) { + case SET_ACTIVE_USERS: + return { + ...state, + ...action.activeUsers + }; + default: + return state; + } +}