mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +02:00
Mute socket messages in production, fix max-len, update dependencies
This commit is contained in:
parent
d7cc9a0d56
commit
2398199740
26 changed files with 1157 additions and 1192 deletions
2026
client/package-lock.json
generated
2026
client/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -30,10 +30,10 @@
|
||||||
"axios": "^0.19.0",
|
"axios": "^0.19.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"connected-react-router": "^6.5.2",
|
"connected-react-router": "^6.5.2",
|
||||||
"date-fns": "^2.1.0",
|
"date-fns": "^2.3.0",
|
||||||
"dequal": "^1.0.0",
|
"dequal": "^1.0.0",
|
||||||
"history": "^4.9.0",
|
"history": "^4.10.1",
|
||||||
"i18next": "^17.0.13",
|
"i18next": "^17.0.16",
|
||||||
"i18next-browser-languagedetector": "^3.0.3",
|
"i18next-browser-languagedetector": "^3.0.3",
|
||||||
"initials": "^3.0.1",
|
"initials": "^3.0.1",
|
||||||
"lodash": "^4.17.15",
|
"lodash": "^4.17.15",
|
||||||
|
@ -42,25 +42,25 @@
|
||||||
"react-beautiful-dnd": "^11.0.5",
|
"react-beautiful-dnd": "^11.0.5",
|
||||||
"react-datepicker": "^2.9.6",
|
"react-datepicker": "^2.9.6",
|
||||||
"react-dom": "^16.9.0",
|
"react-dom": "^16.9.0",
|
||||||
"react-i18next": "^10.12.2",
|
"react-i18next": "^10.13.0",
|
||||||
"react-input-mask": "^2.0.4",
|
"react-input-mask": "^2.0.4",
|
||||||
"react-redux": "^7.1.1",
|
"react-redux": "^7.1.1",
|
||||||
"react-router-dom": "^5.0.1",
|
"react-router-dom": "^5.1.0",
|
||||||
"react-scripts": "3.1.1",
|
"react-scripts": "3.1.2",
|
||||||
"react-textarea-autosize": "^7.1.0",
|
"react-textarea-autosize": "^7.1.0",
|
||||||
"redux": "^4.0.4",
|
"redux": "^4.0.4",
|
||||||
"redux-logger": "^3.0.6",
|
"redux-logger": "^3.0.6",
|
||||||
"redux-orm": "^0.13.3",
|
"redux-orm": "^0.14.0",
|
||||||
"redux-saga": "^1.0.5",
|
"redux-saga": "^1.1.1",
|
||||||
"reselect": "^4.0.0",
|
"reselect": "^4.0.0",
|
||||||
"sails.io.js": "^1.2.1",
|
"sails.io.js": "^1.2.1",
|
||||||
"semantic-ui-react": "^0.88.0",
|
"semantic-ui-react": "^0.88.1",
|
||||||
"socket.io-client": "^2.2.0",
|
"socket.io-client": "^2.3.0",
|
||||||
"validator": "^11.1.0",
|
"validator": "^11.1.0",
|
||||||
"whatwg-fetch": "^3.0.0"
|
"whatwg-fetch": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^6.3.0",
|
"eslint": "^6.4.0",
|
||||||
"eslint-config-airbnb": "^18.0.1",
|
"eslint-config-airbnb": "^18.0.1",
|
||||||
"eslint-plugin-import": "^2.18.2",
|
"eslint-plugin-import": "^2.18.2",
|
||||||
"eslint-plugin-jsx-a11y": "^6.2.3",
|
"eslint-plugin-jsx-a11y": "^6.2.3",
|
||||||
|
|
|
@ -9,6 +9,7 @@ io.sails.url = Config.API_URL;
|
||||||
io.sails.autoConnect = false;
|
io.sails.autoConnect = false;
|
||||||
io.sails.reconnection = true;
|
io.sails.reconnection = true;
|
||||||
io.sails.useCORSRouteToGetCookie = false;
|
io.sails.useCORSRouteToGetCookie = false;
|
||||||
|
io.sails.environment = process.env.NODE_ENV;
|
||||||
|
|
||||||
const { socket } = io;
|
const { socket } = io;
|
||||||
|
|
||||||
|
|
|
@ -2,5 +2,7 @@ import { useCallback } from 'react';
|
||||||
|
|
||||||
import useDeepCompareMemoize from './use-deep-compare-memoize';
|
import useDeepCompareMemoize from './use-deep-compare-memoize';
|
||||||
|
|
||||||
// eslint-disable-next-line max-len
|
export default (callback, dependencies) => useCallback(
|
||||||
export default (callback, dependencies) => useCallback(callback, useDeepCompareMemoize(dependencies));
|
callback,
|
||||||
|
useDeepCompareMemoize(dependencies),
|
||||||
|
);
|
||||||
|
|
|
@ -13,7 +13,9 @@ import {
|
||||||
User,
|
User,
|
||||||
} from './models';
|
} from './models';
|
||||||
|
|
||||||
const orm = new ORM();
|
const orm = new ORM({
|
||||||
|
stateSelector: ({ db }) => db,
|
||||||
|
});
|
||||||
|
|
||||||
orm.register(
|
orm.register(
|
||||||
User,
|
User,
|
||||||
|
|
|
@ -4,6 +4,8 @@ import { fetchActionsInCurrentCardService } from '../services';
|
||||||
import EntryActionTypes from '../../../constants/EntryActionTypes';
|
import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
// eslint-disable-next-line max-len
|
yield takeLatest(
|
||||||
yield takeLatest(EntryActionTypes.ACTIONS_IN_CURRENT_CARD_FETCH, () => fetchActionsInCurrentCardService());
|
EntryActionTypes.ACTIONS_IN_CURRENT_CARD_FETCH,
|
||||||
|
() => fetchActionsInCurrentCardService(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,18 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.BOARD_IN_CURRENT_PROJECT_CREATE, ({ payload: { data } }) => createBoardInCurrentProjectService(data)),
|
EntryActionTypes.BOARD_IN_CURRENT_PROJECT_CREATE,
|
||||||
takeLatest(EntryActionTypes.BOARD_UPDATE, ({ payload: { id, data } }) => updateBoardService(id, data)),
|
({ payload: { data } }) => createBoardInCurrentProjectService(data),
|
||||||
takeLatest(EntryActionTypes.BOARD_MOVE, ({ payload: { id, index } }) => moveBoardService(id, index)),
|
),
|
||||||
/* eslint-enable max-len */
|
takeLatest(
|
||||||
|
EntryActionTypes.BOARD_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateBoardService(id, data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.BOARD_MOVE,
|
||||||
|
({ payload: { id, index } }) => moveBoardService(id, index),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.BOARD_DELETE, ({ payload: { id } }) => deleteBoardService(id)),
|
takeLatest(EntryActionTypes.BOARD_DELETE, ({ payload: { id } }) => deleteBoardService(id)),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,12 +12,22 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.CARD_CREATE, ({ payload: { listId, data } }) => createCardService(listId, data)),
|
EntryActionTypes.CARD_CREATE,
|
||||||
takeLatest(EntryActionTypes.CARD_UPDATE, ({ payload: { id, data } }) => updateCardService(id, data)),
|
({ payload: { listId, data } }) => createCardService(listId, data),
|
||||||
takeLatest(EntryActionTypes.CURRENT_CARD_UPDATE, ({ payload: { data } }) => updateCurrentCardService(data)),
|
),
|
||||||
takeLatest(EntryActionTypes.CARD_MOVE, ({ payload: { id, listId, index } }) => moveCardService(id, listId, index)),
|
takeLatest(
|
||||||
/* eslint-enable max-len */
|
EntryActionTypes.CARD_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateCardService(id, data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.CURRENT_CARD_UPDATE,
|
||||||
|
({ payload: { data } }) => updateCurrentCardService(data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.CARD_MOVE,
|
||||||
|
({ payload: { id, listId, index } }) => moveCardService(id, listId, index),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.CARD_DELETE, ({ payload: { id } }) => deleteCardService(id)),
|
takeLatest(EntryActionTypes.CARD_DELETE, ({ payload: { id } }) => deleteCardService(id)),
|
||||||
takeLatest(EntryActionTypes.CURRENT_CARD_DELETE, () => deleteCurrentCardService()),
|
takeLatest(EntryActionTypes.CURRENT_CARD_DELETE, () => deleteCurrentCardService()),
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -9,10 +9,17 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.COMMENT_ACTION_IN_CURRENT_CARD_CREATE, ({ payload: { data } }) => createCommentActionInCurrentCardService(data)),
|
EntryActionTypes.COMMENT_ACTION_IN_CURRENT_CARD_CREATE,
|
||||||
takeLatest(EntryActionTypes.COMMENT_ACTION_UPDATE, ({ payload: { id, data } }) => updateCommentActionService(id, data)),
|
({ payload: { data } }) => createCommentActionInCurrentCardService(data),
|
||||||
takeLatest(EntryActionTypes.COMMENT_ACTION_DELETE, ({ payload: { id } }) => deleteCommentActionService(id)),
|
),
|
||||||
/* eslint-enable max-len */
|
takeLatest(
|
||||||
|
EntryActionTypes.COMMENT_ACTION_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateCommentActionService(id, data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.COMMENT_ACTION_DELETE,
|
||||||
|
({ payload: { id } }) => deleteCommentActionService(id),
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,18 +15,38 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.LABEL_IN_CURRENT_BOARD_CREATE, ({ payload: { data } }) => createLabelInCurrentBoardService(data)),
|
EntryActionTypes.LABEL_IN_CURRENT_BOARD_CREATE,
|
||||||
takeLatest(EntryActionTypes.LABEL_UPDATE, ({ payload: { id, data } }) => updateLabelService(id, data)),
|
({ payload: { data } }) => createLabelInCurrentBoardService(data),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LABEL_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateLabelService(id, data),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.LABEL_DELETE, ({ payload: { id } }) => deleteLabelService(id)),
|
takeLatest(EntryActionTypes.LABEL_DELETE, ({ payload: { id } }) => deleteLabelService(id)),
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.LABEL_TO_CARD_ADD, ({ payload: { id, cardId } }) => addLabelToCardService(id, cardId)),
|
EntryActionTypes.LABEL_TO_CARD_ADD,
|
||||||
takeLatest(EntryActionTypes.LABEL_TO_CURRENT_CARD_ADD, ({ payload: { id } }) => addLabelToCurrentCardService(id)),
|
({ payload: { id, cardId } }) => addLabelToCardService(id, cardId),
|
||||||
takeLatest(EntryActionTypes.LABEL_FROM_CARD_REMOVE, ({ payload: { id, cardId } }) => removeLabelFromCardService(id, cardId)),
|
),
|
||||||
takeLatest(EntryActionTypes.LABEL_FROM_CURRENT_CARD_REMOVE, ({ payload: { id } }) => removeLabelFromCurrentCardService(id)),
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.LABEL_TO_FILTER_IN_CURRENT_BOARD_ADD, ({ payload: { id } }) => addLabelToFilterInCurrentBoardService(id)),
|
EntryActionTypes.LABEL_TO_CURRENT_CARD_ADD,
|
||||||
takeLatest(EntryActionTypes.LABEL_FROM_FILTER_IN_CURRENT_BOARD_REMOVE, ({ payload: { id } }) => removeLabelFromFilterInCurrentBoardService(id)),
|
({ payload: { id } }) => addLabelToCurrentCardService(id),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LABEL_FROM_CARD_REMOVE,
|
||||||
|
({ payload: { id, cardId } }) => removeLabelFromCardService(id, cardId),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LABEL_FROM_CURRENT_CARD_REMOVE,
|
||||||
|
({ payload: { id } }) => removeLabelFromCurrentCardService(id),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LABEL_TO_FILTER_IN_CURRENT_BOARD_ADD,
|
||||||
|
({ payload: { id } }) => addLabelToFilterInCurrentBoardService(id),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LABEL_FROM_FILTER_IN_CURRENT_BOARD_REMOVE,
|
||||||
|
({ payload: { id } }) => removeLabelFromFilterInCurrentBoardService(id),
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,18 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.LIST_IN_CURRENT_BOARD_CREATE, ({ payload: { data } }) => createListInCurrentBoardService(data)),
|
EntryActionTypes.LIST_IN_CURRENT_BOARD_CREATE,
|
||||||
takeLatest(EntryActionTypes.LIST_UPDATE, ({ payload: { id, data } }) => updateListService(id, data)),
|
({ payload: { data } }) => createListInCurrentBoardService(data),
|
||||||
takeLatest(EntryActionTypes.LIST_MOVE, ({ payload: { id, index } }) => moveListService(id, index)),
|
),
|
||||||
/* eslint-enable max-len */
|
takeLatest(
|
||||||
|
EntryActionTypes.LIST_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateListService(id, data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.LIST_MOVE,
|
||||||
|
({ payload: { id, index } }) => moveListService(id, index),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.LIST_DELETE, ({ payload: { id } }) => deleteListService(id)),
|
takeLatest(EntryActionTypes.LIST_DELETE, ({ payload: { id } }) => deleteListService(id)),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import { deleteNotificationService } from '../services';
|
||||||
import EntryActionTypes from '../../../constants/EntryActionTypes';
|
import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
// eslint-disable-next-line max-len
|
yield takeLatest(
|
||||||
yield takeLatest(EntryActionTypes.NOTIFICATION_DELETE, ({ payload: { id } }) => deleteNotificationService(id));
|
EntryActionTypes.NOTIFICATION_DELETE,
|
||||||
|
({ payload: { id } }) => deleteNotificationService(id),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,13 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.MEMBERSHIP_IN_CURRENT_PROJECT_CREATE, ({ payload: { data } }) => createMembershipInCurrentProjectService(data)),
|
EntryActionTypes.MEMBERSHIP_IN_CURRENT_PROJECT_CREATE,
|
||||||
takeLatest(EntryActionTypes.PROJECT_MEMBERSHIP_DELETE, ({ payload: { id } }) => deleteProjectMembershipService(id)),
|
({ payload: { data } }) => createMembershipInCurrentProjectService(data),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.PROJECT_MEMBERSHIP_DELETE,
|
||||||
|
({ payload: { id } }) => deleteProjectMembershipService(id),
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,14 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.PROJECT_CREATE, ({ payload: { data } }) => createProjectService(data)),
|
EntryActionTypes.PROJECT_CREATE,
|
||||||
takeLatest(EntryActionTypes.CURRENT_PROJECT_UPDATE, ({ payload: { data } }) => updateCurrentProjectService(data)),
|
({ payload: { data } }) => createProjectService(data),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.CURRENT_PROJECT_UPDATE,
|
||||||
|
({ payload: { data } }) => updateCurrentProjectService(data),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.CURRENT_PROJECT_DELETE, () => deleteCurrentProjectService()),
|
takeLatest(EntryActionTypes.CURRENT_PROJECT_DELETE, () => deleteCurrentProjectService()),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,14 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
|
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.TASK_IN_CURRENT_CARD_CREATE, ({ payload: { data } }) => createTaskInCurrentCardService(data)),
|
EntryActionTypes.TASK_IN_CURRENT_CARD_CREATE,
|
||||||
takeLatest(EntryActionTypes.TASK_UPDATE, ({ payload: { id, data } }) => updateTaskService(id, data)),
|
({ payload: { data } }) => createTaskInCurrentCardService(data),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.TASK_UPDATE,
|
||||||
|
({ payload: { id, data } }) => updateTaskService(id, data),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.TASK_DELETE, ({ payload: { id } }) => deleteTaskService(id)),
|
takeLatest(EntryActionTypes.TASK_DELETE, ({ payload: { id } }) => deleteTaskService(id)),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,19 +20,42 @@ export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
takeLatest(EntryActionTypes.USER_CREATE, ({ payload: { data } }) => createUserService(data)),
|
takeLatest(EntryActionTypes.USER_CREATE, ({ payload: { data } }) => createUserService(data)),
|
||||||
takeLatest(EntryActionTypes.USER_CREATION_ERROR_CLEAR, () => clearUserCreationErrorService()),
|
takeLatest(EntryActionTypes.USER_CREATION_ERROR_CLEAR, () => clearUserCreationErrorService()),
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.USER_UPDATE, ({ payload: { id, data } }) => updateUserService(id, data)),
|
EntryActionTypes.USER_UPDATE,
|
||||||
takeLatest(EntryActionTypes.CURRENT_USER_UPDATE, ({ payload: { data } }) => updateCurrentUserService(data)),
|
({ payload: { id, data } }) => updateUserService(id, data),
|
||||||
takeLatest(EntryActionTypes.CURRENT_USER_AVATAR_UPLOAD, ({ payload: { file } }) => uploadCurrentUserAvatarService(file)),
|
),
|
||||||
/* eslint-enable max-len */
|
takeLatest(
|
||||||
|
EntryActionTypes.CURRENT_USER_UPDATE,
|
||||||
|
({ payload: { data } }) => updateCurrentUserService(data),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.CURRENT_USER_AVATAR_UPLOAD,
|
||||||
|
({ payload: { file } }) => uploadCurrentUserAvatarService(file),
|
||||||
|
),
|
||||||
takeLatest(EntryActionTypes.USER_DELETE, ({ payload: { id } }) => deleteUserService(id)),
|
takeLatest(EntryActionTypes.USER_DELETE, ({ payload: { id } }) => deleteUserService(id)),
|
||||||
/* eslint-disable max-len */
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.USER_TO_CARD_ADD, ({ payload: { id, cardId } }) => addUserToCardService(id, cardId)),
|
EntryActionTypes.USER_TO_CARD_ADD,
|
||||||
takeLatest(EntryActionTypes.USER_TO_CURRENT_CARD_ADD, ({ payload: { id } }) => addUserToCurrentCardService(id)),
|
({ payload: { id, cardId } }) => addUserToCardService(id, cardId),
|
||||||
takeLatest(EntryActionTypes.USER_FROM_CARD_REMOVE, ({ payload: { id, cardId } }) => removeUserFromCardService(id, cardId)),
|
),
|
||||||
takeLatest(EntryActionTypes.USER_FROM_CURRENT_CARD_REMOVE, ({ payload: { id } }) => removeUserFromCurrentCardService(id)),
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.USER_TO_FILTER_IN_CURRENT_BOARD_ADD, ({ payload: { id } }) => addUserToFilterInCurrentBoardService(id)),
|
EntryActionTypes.USER_TO_CURRENT_CARD_ADD,
|
||||||
takeLatest(EntryActionTypes.USER_FROM_FILTER_IN_CURRENT_BOARD_REMOVE, ({ payload: { id } }) => removeUserFromFilterInCurrentBoardService(id)),
|
({ payload: { id } }) => addUserToCurrentCardService(id),
|
||||||
/* eslint-enable max-len */
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.USER_FROM_CARD_REMOVE,
|
||||||
|
({ payload: { id, cardId } }) => removeUserFromCardService(id, cardId),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.USER_FROM_CURRENT_CARD_REMOVE,
|
||||||
|
({ payload: { id } }) => removeUserFromCurrentCardService(id),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.USER_TO_FILTER_IN_CURRENT_BOARD_ADD,
|
||||||
|
({ payload: { id } }) => addUserToFilterInCurrentBoardService(id),
|
||||||
|
),
|
||||||
|
takeLatest(
|
||||||
|
EntryActionTypes.USER_FROM_FILTER_IN_CURRENT_BOARD_REMOVE,
|
||||||
|
({ payload: { id } }) => removeUserFromFilterInCurrentBoardService(id),
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,9 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||||
export default function* () {
|
export default function* () {
|
||||||
yield all([
|
yield all([
|
||||||
takeLatest(EntryActionTypes.AUTHENTICATE, ({ payload: { data } }) => authenticateService(data)),
|
takeLatest(EntryActionTypes.AUTHENTICATE, ({ payload: { data } }) => authenticateService(data)),
|
||||||
// eslint-disable-next-line max-len
|
takeLatest(
|
||||||
takeLatest(EntryActionTypes.AUTHENTICATION_ERROR_CLEAR, () => clearAuthenticationErrorService()),
|
EntryActionTypes.AUTHENTICATION_ERROR_CLEAR,
|
||||||
|
() => clearAuthenticationErrorService(),
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,15 @@
|
||||||
import { createSelector } from 'redux-orm';
|
import { createSelector } from 'redux-orm';
|
||||||
|
|
||||||
import orm from '../orm';
|
import orm from '../orm';
|
||||||
import { dbSelector } from './common';
|
|
||||||
import { currentUserIdSelector } from './current';
|
import { currentUserIdSelector } from './current';
|
||||||
|
|
||||||
export const allUsersSelector = createSelector(
|
export const allUsersSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
({ User }) => User.getOrderedUndeletedQuerySet().toRefArray(),
|
({ User }) => User.getOrderedUndeletedQuerySet().toRefArray(),
|
||||||
);
|
);
|
||||||
|
|
||||||
export const allUsersExceptCurrentSelector = createSelector(
|
export const allUsersExceptCurrentSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ User }, currentUserId) => User.getOrderedUndeletedQuerySet()
|
({ User }, currentUserId) => User.getOrderedUndeletedQuerySet()
|
||||||
.exclude({
|
.exclude({
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
import { createSelector } from 'redux-orm';
|
import { createSelector } from 'redux-orm';
|
||||||
|
|
||||||
import orm from '../orm';
|
import orm from '../orm';
|
||||||
import { dbSelector } from './common';
|
|
||||||
import { isLocalId } from '../utils/local-id';
|
import { isLocalId } from '../utils/local-id';
|
||||||
|
|
||||||
export const makeBoardByIdSelector = () => createSelector(
|
export const makeBoardByIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
const boardModel = Board.withId(id);
|
const boardModel = Board.withId(id);
|
||||||
|
@ -21,7 +19,6 @@ export const makeBoardByIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeListByIdSelector = () => createSelector(
|
export const makeListByIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ List }, id) => {
|
({ List }, id) => {
|
||||||
const listModel = List.withId(id);
|
const listModel = List.withId(id);
|
||||||
|
@ -39,7 +36,6 @@ export const makeListByIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeCardIdsByListIdSelector = () => createSelector(
|
export const makeCardIdsByListIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ List }, id) => {
|
({ List }, id) => {
|
||||||
const listModel = List.withId(id);
|
const listModel = List.withId(id);
|
||||||
|
@ -54,7 +50,6 @@ export const makeCardIdsByListIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeCardByIdSelector = () => createSelector(
|
export const makeCardByIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
@ -72,7 +67,6 @@ export const makeCardByIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeUsersByCardIdSelector = () => createSelector(
|
export const makeUsersByCardIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
@ -87,7 +81,6 @@ export const makeUsersByCardIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeLabelsByCardIdSelector = () => createSelector(
|
export const makeLabelsByCardIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
@ -102,7 +95,6 @@ export const makeLabelsByCardIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeTasksByCardIdSelector = () => createSelector(
|
export const makeTasksByCardIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
@ -117,7 +109,6 @@ export const makeTasksByCardIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeLastActionIdByCardIdSelector = () => createSelector(
|
export const makeLastActionIdByCardIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
@ -134,7 +125,6 @@ export const makeLastActionIdByCardIdSelector = () => createSelector(
|
||||||
|
|
||||||
export const makeNotificationsTotalByCardIdSelector = () => createSelector(
|
export const makeNotificationsTotalByCardIdSelector = () => createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, id) => id,
|
(_, id) => id,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
const cardModel = Card.withId(id);
|
const cardModel = Card.withId(id);
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
export const dbSelector = ({ db }) => db;
|
|
||||||
|
|
||||||
export const maxIdSelector = ({ db }, modelName) => db[modelName].meta.maxId;
|
export const maxIdSelector = ({ db }, modelName) => db[modelName].meta.maxId;
|
||||||
|
|
||||||
export const accessTokenSelector = ({ auth: { accessToken } }) => accessToken;
|
export const accessTokenSelector = ({ auth: { accessToken } }) => accessToken;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { createSelector } from 'redux-orm';
|
import { createSelector } from 'redux-orm';
|
||||||
|
|
||||||
import orm from '../orm';
|
import orm from '../orm';
|
||||||
import { dbSelector } from './common';
|
|
||||||
import { pathSelector } from './path';
|
import { pathSelector } from './path';
|
||||||
import { isLocalId } from '../utils/local-id';
|
import { isLocalId } from '../utils/local-id';
|
||||||
|
|
||||||
|
@ -11,7 +10,6 @@ export const currentUserIdSelector = ({ auth: { userId } }) => userId;
|
||||||
|
|
||||||
export const currentUserSelector = createSelector(
|
export const currentUserSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ User }, id) => {
|
({ User }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -30,7 +28,6 @@ export const currentUserSelector = createSelector(
|
||||||
|
|
||||||
export const projectsForCurrentUserSelector = createSelector(
|
export const projectsForCurrentUserSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ User }, id) => {
|
({ User }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -68,7 +65,6 @@ export const projectsForCurrentUserSelector = createSelector(
|
||||||
|
|
||||||
export const notificationsForCurrentUserSelector = createSelector(
|
export const notificationsForCurrentUserSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ User }, id) => {
|
({ User }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -97,7 +93,6 @@ export const notificationsForCurrentUserSelector = createSelector(
|
||||||
|
|
||||||
export const currentProjectSelector = createSelector(
|
export const currentProjectSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).projectId,
|
(state) => pathSelector(state).projectId,
|
||||||
({ Project }, id) => {
|
({ Project }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -116,7 +111,6 @@ export const currentProjectSelector = createSelector(
|
||||||
|
|
||||||
export const membershipsForCurrentProjectSelector = createSelector(
|
export const membershipsForCurrentProjectSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).projectId,
|
(state) => pathSelector(state).projectId,
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ Project }, id, currentUserId) => {
|
({ Project }, id, currentUserId) => {
|
||||||
|
@ -146,7 +140,6 @@ export const membershipsForCurrentProjectSelector = createSelector(
|
||||||
|
|
||||||
export const boardsForCurrentProjectSelector = createSelector(
|
export const boardsForCurrentProjectSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).projectId,
|
(state) => pathSelector(state).projectId,
|
||||||
({ Project }, id) => {
|
({ Project }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -171,7 +164,6 @@ export const boardsForCurrentProjectSelector = createSelector(
|
||||||
|
|
||||||
export const currentBoardSelector = createSelector(
|
export const currentBoardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).boardId,
|
(state) => pathSelector(state).boardId,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -190,7 +182,6 @@ export const currentBoardSelector = createSelector(
|
||||||
|
|
||||||
export const listIdsForCurrentBoardSelector = createSelector(
|
export const listIdsForCurrentBoardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).boardId,
|
(state) => pathSelector(state).boardId,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -212,7 +203,6 @@ export const listIdsForCurrentBoardSelector = createSelector(
|
||||||
|
|
||||||
export const labelsForCurrentBoardSelector = createSelector(
|
export const labelsForCurrentBoardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).boardId,
|
(state) => pathSelector(state).boardId,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -234,7 +224,6 @@ export const labelsForCurrentBoardSelector = createSelector(
|
||||||
|
|
||||||
export const filterUsersForCurrentBoardSelector = createSelector(
|
export const filterUsersForCurrentBoardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).boardId,
|
(state) => pathSelector(state).boardId,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -253,7 +242,6 @@ export const filterUsersForCurrentBoardSelector = createSelector(
|
||||||
|
|
||||||
export const filterLabelsForCurrentBoardSelector = createSelector(
|
export const filterLabelsForCurrentBoardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).boardId,
|
(state) => pathSelector(state).boardId,
|
||||||
({ Board }, id) => {
|
({ Board }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -272,7 +260,6 @@ export const filterLabelsForCurrentBoardSelector = createSelector(
|
||||||
|
|
||||||
export const currentCardSelector = createSelector(
|
export const currentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -291,7 +278,6 @@ export const currentCardSelector = createSelector(
|
||||||
|
|
||||||
export const usersForCurrentCardSelector = createSelector(
|
export const usersForCurrentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -310,7 +296,6 @@ export const usersForCurrentCardSelector = createSelector(
|
||||||
|
|
||||||
export const labelsForCurrentCardSelector = createSelector(
|
export const labelsForCurrentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -329,7 +314,6 @@ export const labelsForCurrentCardSelector = createSelector(
|
||||||
|
|
||||||
export const tasksForCurrentCardSelector = createSelector(
|
export const tasksForCurrentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -354,7 +338,6 @@ export const tasksForCurrentCardSelector = createSelector(
|
||||||
|
|
||||||
export const actionsForCurrentCardSelector = createSelector(
|
export const actionsForCurrentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
(state) => currentUserIdSelector(state),
|
(state) => currentUserIdSelector(state),
|
||||||
({ Card }, id, currentUserId) => {
|
({ Card }, id, currentUserId) => {
|
||||||
|
@ -384,7 +367,6 @@ export const actionsForCurrentCardSelector = createSelector(
|
||||||
|
|
||||||
export const notificationIdsForCurrentCardSelector = createSelector(
|
export const notificationIdsForCurrentCardSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(state) => pathSelector(state).cardId,
|
(state) => pathSelector(state).cardId,
|
||||||
({ Card }, id) => {
|
({ Card }, id) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { createSelector } from 'redux-orm';
|
||||||
import isUndefined from 'lodash/isUndefined';
|
import isUndefined from 'lodash/isUndefined';
|
||||||
|
|
||||||
import orm from '../orm';
|
import orm from '../orm';
|
||||||
import { dbSelector } from './common';
|
|
||||||
import Config from '../constants/Config';
|
import Config from '../constants/Config';
|
||||||
|
|
||||||
const nextPosition = (items, index, excludedId) => {
|
const nextPosition = (items, index, excludedId) => {
|
||||||
|
@ -30,7 +29,6 @@ const nextPosition = (items, index, excludedId) => {
|
||||||
|
|
||||||
export const nextBoardPositionSelector = createSelector(
|
export const nextBoardPositionSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, projectId) => projectId,
|
(_, projectId) => projectId,
|
||||||
(_, __, index) => index,
|
(_, __, index) => index,
|
||||||
(_, __, ___, excludedId) => excludedId,
|
(_, __, ___, excludedId) => excludedId,
|
||||||
|
@ -47,7 +45,6 @@ export const nextBoardPositionSelector = createSelector(
|
||||||
|
|
||||||
export const nextListPositionSelector = createSelector(
|
export const nextListPositionSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, boardId) => boardId,
|
(_, boardId) => boardId,
|
||||||
(_, __, index) => index,
|
(_, __, index) => index,
|
||||||
(_, __, ___, excludedId) => excludedId,
|
(_, __, ___, excludedId) => excludedId,
|
||||||
|
@ -64,7 +61,6 @@ export const nextListPositionSelector = createSelector(
|
||||||
|
|
||||||
export const nextCardPositionSelector = createSelector(
|
export const nextCardPositionSelector = createSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
(_, listId) => listId,
|
(_, listId) => listId,
|
||||||
(_, __, index) => index,
|
(_, __, index) => index,
|
||||||
(_, __, ___, excludedId) => excludedId,
|
(_, __, ___, excludedId) => excludedId,
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { createSelector as createReselectSelector } from 'reselect';
|
||||||
import { createSelector as createReduxOrmSelector } from 'redux-orm';
|
import { createSelector as createReduxOrmSelector } from 'redux-orm';
|
||||||
|
|
||||||
import orm from '../orm';
|
import orm from '../orm';
|
||||||
import { dbSelector } from './common';
|
|
||||||
import matchPaths from '../utils/match-paths';
|
import matchPaths from '../utils/match-paths';
|
||||||
import Paths from '../constants/Paths';
|
import Paths from '../constants/Paths';
|
||||||
|
|
||||||
|
@ -12,12 +11,13 @@ export const pathnameSelector = ({
|
||||||
},
|
},
|
||||||
}) => pathname;
|
}) => pathname;
|
||||||
|
|
||||||
// eslint-disable-next-line max-len
|
export const pathsMatchSelector = createReselectSelector(
|
||||||
export const pathsMatchSelector = createReselectSelector(pathnameSelector, (pathname) => matchPaths(pathname, Object.values(Paths)));
|
pathnameSelector,
|
||||||
|
(pathname) => matchPaths(pathname, Object.values(Paths)),
|
||||||
|
);
|
||||||
|
|
||||||
export const pathSelector = createReduxOrmSelector(
|
export const pathSelector = createReduxOrmSelector(
|
||||||
orm,
|
orm,
|
||||||
dbSelector,
|
|
||||||
pathsMatchSelector,
|
pathsMatchSelector,
|
||||||
({ Project, Board, Card }, pathsMatch) => {
|
({ Project, Board, Card }, pathsMatch) => {
|
||||||
if (pathsMatch) {
|
if (pathsMatch) {
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
// eslint-disable-next-line max-len
|
const getFullSeconds = ({ startedAt, total }) => {
|
||||||
const getFullSeconds = ({ startedAt, total }) => (startedAt ? Math.floor((new Date() - startedAt) / 1000) + total : total);
|
if (startedAt) {
|
||||||
|
return Math.floor((new Date() - startedAt) / 1000) + total;
|
||||||
|
}
|
||||||
|
|
||||||
|
return total;
|
||||||
|
};
|
||||||
|
|
||||||
export const createTimer = ({ hours, minutes, seconds }) => ({
|
export const createTimer = ({ hours, minutes, seconds }) => ({
|
||||||
startedAt: null,
|
startedAt: null,
|
||||||
|
|
14
server/package-lock.json
generated
14
server/package-lock.json
generated
|
@ -3699,13 +3699,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"knex": {
|
"knex": {
|
||||||
"version": "0.19.3",
|
"version": "0.19.4",
|
||||||
"resolved": "https://registry.npmjs.org/knex/-/knex-0.19.3.tgz",
|
"resolved": "https://registry.npmjs.org/knex/-/knex-0.19.4.tgz",
|
||||||
"integrity": "sha512-HN32QB5PVkUYfvE4UoK/Tbf6UQ7CLEgS0PL8EP6xfonsP0IPZr2M84dy1dIy2KnB5dx+XO6NNEPgfzo8Y8BYzA==",
|
"integrity": "sha512-FRnR2iWEAoKkrVo3KyiEYeGwUjZOZT2WDko/tn3nCKzQdn6m8+5qSUeYLGa9zM8SwFGJriYKQSSMiDJKLILcMQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bluebird": "^3.5.5",
|
"bluebird": "^3.5.5",
|
||||||
"colorette": "1.1.0",
|
"colorette": "1.1.0",
|
||||||
"commander": "^2.20.0",
|
"commander": "^3.0.1",
|
||||||
"debug": "4.1.1",
|
"debug": "4.1.1",
|
||||||
"getopts": "2.2.5",
|
"getopts": "2.2.5",
|
||||||
"inherits": "~2.0.4",
|
"inherits": "~2.0.4",
|
||||||
|
@ -3726,9 +3726,9 @@
|
||||||
"integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w=="
|
"integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w=="
|
||||||
},
|
},
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.20.0",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.1.tgz",
|
||||||
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
|
"integrity": "sha512-UNgvDd+csKdc9GD4zjtkHKQbT8Aspt2jCBqNSPp53vAS0L1tS9sXB2TCEOPHJ7kt9bN/niWkYj8T3RQSoMXdSQ=="
|
||||||
},
|
},
|
||||||
"debug": {
|
"debug": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
"dotenv": "^8.1.0",
|
"dotenv": "^8.1.0",
|
||||||
"dotenv-cli": "^2.0.1",
|
"dotenv-cli": "^2.0.1",
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
"knex": "^0.19.3",
|
"knex": "^0.19.4",
|
||||||
"lodash": "^4.17.15",
|
"lodash": "^4.17.15",
|
||||||
"moment": "^2.23.0",
|
"moment": "^2.23.0",
|
||||||
"sails": "^1.2.3",
|
"sails": "^1.2.3",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue