From 90d61688084fbc1a25ab763e257cebeb6c98707a Mon Sep 17 00:00:00 2001 From: Bogdan Cochior <bogdan.cochior@thinslices.com> Date: Fri, 16 Feb 2018 15:40:27 +0200 Subject: [PATCH] fix(components): fail safe empty arrays --- .../src/components/SortableList.js | 2 +- .../src/components/AuthorList/AuthorAdder.js | 8 +++++--- .../src/components/Dashboard/AbstractModal.js | 4 ++-- .../src/components/SortableList/SortableList.js | 2 +- packages/components-faraday/src/redux/files.js | 6 +++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/component-sortable-list/src/components/SortableList.js b/packages/component-sortable-list/src/components/SortableList.js index e45402063..0858630f0 100644 --- a/packages/component-sortable-list/src/components/SortableList.js +++ b/packages/component-sortable-list/src/components/SortableList.js @@ -89,7 +89,7 @@ const DecoratedItem = compose( )(Item) const SortableList = ({ - items, + items = [], itemKey = 'id', moveItem, listItem, diff --git a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js index 19a4bda77..f6e389871 100644 --- a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js +++ b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js @@ -13,13 +13,15 @@ import classes from './AuthorList.local.scss' import { getAuthorFetching } from '../../redux/authors' import { MenuItem, ValidatedTextField } from './FormItems' -const emailRegex = new RegExp(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/) +const emailRegex = new RegExp( + /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i, //eslint-disable-lint +) const emailValidator = value => emailRegex.test(value) ? undefined : 'Invalid email' const AuthorAdder = ({ - authors, + authors = [], editMode, setEditMode, handleSubmit, @@ -90,7 +92,7 @@ export default compose( onSubmit: ( values, dispatch, - { authors, addAuthor, setEditMode, setFormAuthors, reset, match }, + { authors = [], addAuthor, setEditMode, setFormAuthors, reset, match }, ) => { const collectionId = get(match, 'params.project') const fragmentId = get(match, 'params.version') diff --git a/packages/components-faraday/src/components/Dashboard/AbstractModal.js b/packages/components-faraday/src/components/Dashboard/AbstractModal.js index 07e8e491a..5222f2b11 100644 --- a/packages/components-faraday/src/components/Dashboard/AbstractModal.js +++ b/packages/components-faraday/src/components/Dashboard/AbstractModal.js @@ -39,14 +39,14 @@ const Root = styled.div` position: relative; ` -const Title = styled.span` +const Title = styled.div` font-family: Helvetica; font-size: 18px; text-align: left; color: #667080; ` -const Subtitle = styled.span` +const Subtitle = styled.div` color: #667080; font-family: Helvetica; font-size: 14px; diff --git a/packages/components-faraday/src/components/SortableList/SortableList.js b/packages/components-faraday/src/components/SortableList/SortableList.js index e45402063..0858630f0 100644 --- a/packages/components-faraday/src/components/SortableList/SortableList.js +++ b/packages/components-faraday/src/components/SortableList/SortableList.js @@ -89,7 +89,7 @@ const DecoratedItem = compose( )(Item) const SortableList = ({ - items, + items = [], itemKey = 'id', moveItem, listItem, diff --git a/packages/components-faraday/src/redux/files.js b/packages/components-faraday/src/redux/files.js index e2679c4df..e1ba5b9d3 100644 --- a/packages/components-faraday/src/redux/files.js +++ b/packages/components-faraday/src/redux/files.js @@ -68,7 +68,7 @@ export const getFileError = state => state.files.error // thunked actions export const uploadFile = (file, type, fragmentId) => dispatch => { dispatch(uploadRequest(type)) - return request('/aws', createFileData(file, type, fragmentId)).then( + return request('/file', createFileData(file, type, fragmentId)).then( r => { dispatch(uploadSuccess()) return r @@ -82,7 +82,7 @@ export const uploadFile = (file, type, fragmentId) => dispatch => { export const deleteFile = fileId => dispatch => { dispatch(removeRequest()) - return remove(`/aws/${fileId}`) + return remove(`/file/${fileId}`) .then(r => { dispatch(removeSuccess()) return r @@ -90,7 +90,7 @@ export const deleteFile = fileId => dispatch => { .catch(err => dispatch(removeFailure(err.message))) } -export const getSignedUrl = fileId => dispatch => get(`/aws/${fileId}`) +export const getSignedUrl = fileId => dispatch => get(`/file/${fileId}`) // reducer export default (state = initialState, action) => { -- GitLab