+
+
{
iconName !== '' &&
}
-
{title}
+
{title}
{
onClose &&
-
+
-
+
}
-
-
+
+
{ message &&
{message}
}
{
lines.length > 0 &&
@@ -103,11 +52,11 @@ const Popup = ({
}
}
- { error &&
Error }
+ { error &&
Error
}
{ error &&
{error}
}
-
-
-
+
+
+
{
leftButtons.map((btn, i) => [
i > 0 && ' ',
@@ -128,7 +77,7 @@ const Popup = ({
])
}
-
+
{
rightButtons.map((btn, i) => [
i > 0 && ' ',
@@ -150,8 +99,8 @@ const Popup = ({
}
-
-
+
+
);
const buttonType = PropTypes.shape({
diff --git a/src/components/Popup.less b/src/components/Popup.less
new file mode 100644
index 0000000000..9ef2203b5b
--- /dev/null
+++ b/src/components/Popup.less
@@ -0,0 +1,75 @@
+@import '~@gen3/ui-component/dist/css/base.less';
+
+.popup__mask {
+ z-index: 100;
+ position: fixed;
+ overflow-y: scroll;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ background: rgba(223, 223, 223, 0.47);
+ padding-top: 10em;
+}
+
+.popup__box {
+ width: 50%;
+ overflow-y: scroll;
+ background: white;
+ margin: auto;
+ overflow: hidden;
+ border-radius: 8px;
+ border: 1px solid @light_gray;
+}
+
+.popup__title {
+ width: 100%;
+ height: 70px;
+ line-height: 70px;
+ padding: 0 30px;
+ background: @blue;
+ color: #ffffff;
+ display: table;
+}
+
+.popup__icon {
+ float: left;
+ display: table-cell;
+}
+
+.popup__title-text {
+ display: inline-flex;
+}
+
+.popup__close-button {
+ float: right;
+ display: table-cell;
+ outline: none;
+}
+
+.popup__close-button:hover {
+ cursor: pointer;
+}
+
+.popup__message {
+ font-size: 1em;
+ padding: 40px 30px 18px 30px;
+}
+
+.popup__foot {
+ width: 100%;
+ padding: 0 30px 40px 30px;
+ margin-bottom: 40px;
+}
+
+.popup__left-foot {
+ float: left;
+}
+
+.popup__right-foot {
+ float: right;
+}
+
+.popup__error {
+ color: red;
+}
diff --git a/src/components/ProjectDashboard.jsx b/src/components/ProjectDashboard.jsx
index 612b7ab2d0..ef15f46d84 100644
--- a/src/components/ProjectDashboard.jsx
+++ b/src/components/ProjectDashboard.jsx
@@ -1,28 +1,18 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
-import styled from 'styled-components';
import DataSummaryCardGroup from './cards/DataSummaryCardGroup';
import ProjectTable from './tables/ProjectTable';
-
-const DashTopDiv = styled.div`
- height: 120px;
- display: flex;
-`;
-
-const Title = styled.div`
- padding-top: 10px;
- flex-basis: 460px;
-`;
+import './ProjectDashboard.less';
class ProjectDashboard extends Component {
render() {
const projectList = this.props.projectList || [];
return (
-
-
-
+
+
+
Data Submission Summary
-
+
{/*
*/}
-
+
-
+
);
}
}
diff --git a/src/components/ProjectDashboard.less b/src/components/ProjectDashboard.less
new file mode 100644
index 0000000000..c1af01319b
--- /dev/null
+++ b/src/components/ProjectDashboard.less
@@ -0,0 +1,9 @@
+.project-dashboard {
+ height: 120px;
+ display: flex;
+}
+
+.project-dashboard__title {
+ padding-top: 10px;
+ flex-basis: 460px;
+}
diff --git a/src/components/SelectComponent.jsx b/src/components/SelectComponent.jsx
index 0778ef7cde..07c1695665 100644
--- a/src/components/SelectComponent.jsx
+++ b/src/components/SelectComponent.jsx
@@ -1,32 +1,12 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
-import styled from 'styled-components';
import Select from 'react-select';
-
+import './SelectComponent.less';
const makeDefaultSelectedState = value => ({
selectedValue: value,
});
-export const SelectionDiv = styled.div`
- font-size: 15px;
- position: relative;
- vertical-align: middle;
- span {
- vertical-align: middle;
- margin-right: 10px;
- }
-
- .Select-menu-outer {
- top: auto;
- bottom: 100%;
- }
-`;
-const Dropdown = styled(Select)`
- display: inline-block;
- vertical-align: middle;
-`;
-
export default class SelectComponent extends Component {
static propTypes = {
title: PropTypes.string,
@@ -69,9 +49,10 @@ export default class SelectComponent extends Component {
const options = this.props.values.map(value => ({ value, label: value }));
return (
-
- {this.props.title}
-
+ {this.props.title}
+
+
);
}
}
diff --git a/src/components/SelectComponent.less b/src/components/SelectComponent.less
new file mode 100644
index 0000000000..0375d0f570
--- /dev/null
+++ b/src/components/SelectComponent.less
@@ -0,0 +1,16 @@
+.selection {
+ font-size: 15px;
+ position: relative;
+ vertical-align: middle;
+}
+
+.selection span,
+.selection__title {
+ margin-right: 10px;
+ vertical-align: middle;
+}
+
+.selection__select {
+ display: inline-block;
+ vertical-align: middle;
+}
diff --git a/src/components/Spinner.jsx b/src/components/Spinner.jsx
index a5b58239b8..1754c037e4 100644
--- a/src/components/Spinner.jsx
+++ b/src/components/Spinner.jsx
@@ -1,49 +1,15 @@
import React from 'react';
-import styled, { keyframes } from 'styled-components';
-
-export const LoadingSpinnerWrap = styled.div`
- width: 100%;
- padding: 50px 0;
-`;
-
-const UpAndDown = keyframes`
- 0% { opacity: 0; transform: translateY(0); }
- 25% { opacity: 1; transform: translateY(-10px); }
- 75% { opacity: 1; transform: translateY(-10px); }
- 100% { opacity: 0; transform: translateY(0); }
-`;
-
-export const LoadingSpinnerSVG = styled.svg`
- display: block;
- margin: 0 auto;
- fill: #000;
- circle {
- animation-name: ${UpAndDown};
- animation-duration: 2s;
- animation-timing-function: cubic-bezier(.05, .2, .35, 1);
- animation-iteration-count: infinite;
-
- &:nth-child(2) {
- animation-delay: .18s;
- }
-
- &:nth-child(3) {
- animation-delay: .36s;
- }
- }
-`;
+import './Spinner.less';
class Spinner extends React.Component {
render() {
return (
-
-
-
-
-
-
-
-
+
+
);
}
diff --git a/src/components/Spinner.less b/src/components/Spinner.less
new file mode 100644
index 0000000000..24b59251fd
--- /dev/null
+++ b/src/components/Spinner.less
@@ -0,0 +1,44 @@
+.spinner {
+ width: 100%;
+ padding: 50px 0;
+}
+
+.spinner__svg {
+ display: block;
+ margin: 0 auto;
+ fill: #000;
+}
+
+@keyframes jumping {
+ 0% {
+ opacity: 0;
+ transform: translateY(0);
+ }
+ 25% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 75% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateY(0);
+ }
+}
+
+.spinner__svg circle {
+ animation-name: jumping;
+ animation-duration: 2s;
+ animation-timing-function: cubic-bezier(.05, .2, .35, 1);
+ animation-iteration-count: infinite;
+}
+
+.spinner__svg circle:nth-child(2) {
+ animation-delay: .18s;
+}
+
+.spinner__svg circle:nth-child(3) {
+ animation-delay: .36s;
+}
diff --git a/src/components/Spinner.test.jsx b/src/components/Spinner.test.jsx
index 56dbe3c959..0b0a7949f1 100644
--- a/src/components/Spinner.test.jsx
+++ b/src/components/Spinner.test.jsx
@@ -6,5 +6,5 @@ import Spinner from './Spinner';
it('Spinner displaying', () => {
const spinner = mount(
);
expect(spinner.find('svg').length).toBe(1);
- expect(spinner.find('div').length).toBe(2);
+ expect(spinner.find('div').length).toBe(1);
});
diff --git a/src/components/buttons/IconicLink.jsx b/src/components/buttons/IconicLink.jsx
index 125f0ad455..b4402de972 100644
--- a/src/components/buttons/IconicLink.jsx
+++ b/src/components/buttons/IconicLink.jsx
@@ -9,7 +9,7 @@ class IconicLink extends React.Component {
let styles = {};
if (this.props.iconColor && this.props.iconColor !== '') { styles = { fill: this.props.iconColor }; }
return (
-
+
{
this.props.dictIcons !== undefined ?