aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/page-container
diff options
context:
space:
mode:
authorChi Kei Chan <chikeichan@gmail.com>2019-03-22 07:03:30 +0800
committerDan J Miller <danjm.com@gmail.com>2019-03-22 07:03:30 +0800
commit31175625b446cb5d18b17db23018bca8b14d280c (patch)
treef54e159883deef003fb281267025edf796eb8004 /ui/app/components/page-container
parent7287133e15fab22299e07704206e85bc855d1064 (diff)
downloadtangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.gz
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.zst
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.zip
Folder restructure (#6304)
* Remove ui/app/keychains/ * Remove ui/app/img/ (unused images) * Move conversion-util to helpers/utils/ * Move token-util to helpers/utils/ * Move /helpers/*.js inside /helpers/utils/ * Move util tests inside /helpers/utils/ * Renameand move confirm-transaction/util.js to helpers/utils/ * Move higher-order-components to helpers/higher-order-components/ * Move infura-conversion.json to helpers/constants/ * Move all utility functions to helpers/utils/ * Move pages directory to top-level * Move all constants to helpers/constants/ * Move metametrics inside helpers/ * Move app and root inside pages/ * Move routes inside helpers/ * Re-organize ducks/ * Move reducers to ducks/ * Move selectors inside selectors/ * Move test out of test folder * Move action, reducer, store inside store/ * Move ui components inside ui/ * Move UI components inside ui/ * Move connected components inside components/app/ * Move i18n-helper inside helpers/ * Fix unit tests * Fix unit test * Move pages components * Rename routes component * Move reducers to ducks/index * Fix bad path in unit test
Diffstat (limited to 'ui/app/components/page-container')
-rw-r--r--ui/app/components/page-container/index.js4
-rw-r--r--ui/app/components/page-container/index.scss219
-rw-r--r--ui/app/components/page-container/page-container-content.component.js18
-rw-r--r--ui/app/components/page-container/page-container-footer/index.js1
-rw-r--r--ui/app/components/page-container/page-container-footer/page-container-footer.component.js68
-rw-r--r--ui/app/components/page-container/page-container-footer/tests/page-container-footer.component.test.js79
-rw-r--r--ui/app/components/page-container/page-container-header/index.js1
-rw-r--r--ui/app/components/page-container/page-container-header/page-container-header.component.js83
-rw-r--r--ui/app/components/page-container/page-container-header/tests/page-container-header.component.test.js82
-rw-r--r--ui/app/components/page-container/page-container.component.js131
-rw-r--r--ui/app/components/page-container/tests/page-container.component.test.js0
11 files changed, 0 insertions, 686 deletions
diff --git a/ui/app/components/page-container/index.js b/ui/app/components/page-container/index.js
deleted file mode 100644
index 913b8c9c6..000000000
--- a/ui/app/components/page-container/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import PageContainerHeader from './page-container-header'
-import PageContainerFooter from './page-container-footer'
-export { default } from './page-container.component'
-export { PageContainerHeader, PageContainerFooter }
diff --git a/ui/app/components/page-container/index.scss b/ui/app/components/page-container/index.scss
deleted file mode 100644
index b71a3cb9d..000000000
--- a/ui/app/components/page-container/index.scss
+++ /dev/null
@@ -1,219 +0,0 @@
-.page-container {
- width: 408px;
- background-color: $white;
- box-shadow: 0 0 7px 0 rgba(0, 0, 0, .08);
- z-index: 25;
- display: flex;
- flex-flow: column;
- border-radius: 8px;
- overflow-y: auto;
-
- &__header {
- display: flex;
- flex-flow: column;
- border-bottom: 1px solid $geyser;
- padding: 16px;
- flex: 0 0 auto;
- position: relative;
-
- &--no-padding-bottom {
- padding-bottom: 0;
- }
- }
-
- &__header-close {
- color: $tundora;
- position: absolute;
- top: 16px;
- right: 16px;
- cursor: pointer;
- overflow: hidden;
-
- &::after {
- content: '\00D7';
- font-size: 40px;
- line-height: 20px;
- }
- }
-
- &__header-row {
- padding-bottom: 10px;
- display: flex;
- justify-content: space-between;
- }
-
- &__bottom {
- flex: 1;
- display: flex;
- flex-direction: column;
- }
-
- &__footer {
- display: flex;
- flex-flow: column;
- justify-content: center;
- border-top: 1px solid $geyser;
- flex: 0 0 auto;
-
- .btn-default,
- .btn-confirm {
- font-size: 1rem;
- }
-
- header {
- display: flex;
- flex-flow: row;
- justify-content: center;
- padding: 16px;
- flex: 0 0 auto;
- }
-
- footer {
- display: flex;
- flex-flow: row;
- justify-content: space-around;
- padding: 0 16px 16px;
- flex: 0 0 auto;
-
- a, a:hover {
- text-decoration: none;
- cursor: pointer;
- font-size: 0.75rem;
- text-transform: uppercase;
- color: #2f9ae0;
- }
- }
- }
-
- &__footer-button {
- height: 55px;
- font-size: 1rem;
- text-transform: uppercase;
- margin-right: 16px;
-
- &:last-of-type {
- margin-right: 0;
- }
- }
-
- &__back-button {
- color: #2f9ae0;
- font-size: 1rem;
- cursor: pointer;
- font-weight: 400;
- }
-
- &__title {
- color: $black;
- font-size: 2rem;
- font-weight: 500;
- line-height: 2rem;
- margin-right: 1.5rem;
- }
-
- &__subtitle {
- padding-top: .5rem;
- line-height: initial;
- font-size: .9rem;
- color: $gray;
- }
-
- &__tabs {
- display: flex;
- margin-top: 16px;
- }
-
- &__tab {
- min-width: 5rem;
- padding: 8px;
- color: $dusty-gray;
- font-family: Roboto;
- font-size: 1rem;
- text-align: center;
- cursor: pointer;
- border-bottom: none;
- margin-right: 16px;
-
- &:last-of-type {
- margin-right: 0;
- }
-
- &--selected {
- color: $curious-blue;
- border-bottom: 2px solid $curious-blue;
- }
- }
-
- &--full-width {
- width: 100% !important;
- }
-
- &--full-height {
- height: 100% !important;
- max-height: initial !important;
- min-height: initial !important;
- }
-
- &__content {
- overflow-y: auto;
- flex: 1;
- }
-
- &__warning-container {
- background: $linen;
- padding: 20px;
- display: flex;
- align-items: start;
- }
-
- &__warning-message {
- padding-left: 15px;
- }
-
- &__warning-title {
- font-weight: 500;
- }
-
- &__warning-icon {
- padding-top: 5px;
- }
-}
-
-@media screen and (max-width: 250px) {
- .page-container {
- &__footer {
- flex-flow: column-reverse;
- }
-
- &__footer-button {
- width: 100%;
- margin-bottom: 1rem;
- margin-right: 0;
-
- &:first-of-type {
- margin-bottom: 0;
- }
- }
- }
-}
-
-@media screen and (max-width: 575px) {
- .page-container {
- height: 100%;
- width: 100%;
- background-color: $white;
- border-radius: 0;
- flex: 1;
- overflow-y: auto;
- }
-}
-
-@media screen and (min-width: 576px) {
- .page-container {
- max-height: 82vh;
- min-height: 570px;
- flex: 0 0 auto;
- margin-right: auto;
- margin-left: auto;
- }
-}
diff --git a/ui/app/components/page-container/page-container-content.component.js b/ui/app/components/page-container/page-container-content.component.js
deleted file mode 100644
index a1d6988cc..000000000
--- a/ui/app/components/page-container/page-container-content.component.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import React, { Component } from 'react'
-import PropTypes from 'prop-types'
-
-export default class PageContainerContent extends Component {
-
- static propTypes = {
- children: PropTypes.node.isRequired,
- };
-
- render () {
- return (
- <div className="page-container__content">
- {this.props.children}
- </div>
- )
- }
-
-}
diff --git a/ui/app/components/page-container/page-container-footer/index.js b/ui/app/components/page-container/page-container-footer/index.js
deleted file mode 100644
index 7825c4520..000000000
--- a/ui/app/components/page-container/page-container-footer/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default } from './page-container-footer.component'
diff --git a/ui/app/components/page-container/page-container-footer/page-container-footer.component.js b/ui/app/components/page-container/page-container-footer/page-container-footer.component.js
deleted file mode 100644
index 85b16cefe..000000000
--- a/ui/app/components/page-container/page-container-footer/page-container-footer.component.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import React, { Component } from 'react'
-import PropTypes from 'prop-types'
-import Button from '../../button'
-
-export default class PageContainerFooter extends Component {
-
- static propTypes = {
- children: PropTypes.node,
- onCancel: PropTypes.func,
- cancelText: PropTypes.string,
- onSubmit: PropTypes.func,
- submitText: PropTypes.string,
- disabled: PropTypes.bool,
- submitButtonType: PropTypes.string,
- hideCancel: PropTypes.bool,
- }
-
- static contextTypes = {
- t: PropTypes.func,
- }
-
- render () {
- const {
- children,
- onCancel,
- cancelText,
- onSubmit,
- submitText,
- disabled,
- submitButtonType,
- hideCancel,
- } = this.props
-
- return (
- <div className="page-container__footer">
-
- <header>
- {!hideCancel && <Button
- type="default"
- large
- className="page-container__footer-button"
- onClick={e => onCancel(e)}
- >
- { cancelText || this.context.t('cancel') }
- </Button>}
-
- <Button
- type={submitButtonType || 'primary'}
- large
- className="page-container__footer-button"
- disabled={disabled}
- onClick={e => onSubmit(e)}
- >
- { submitText || this.context.t('next') }
- </Button>
- </header>
-
- {children && (
- <footer>
- {children}
- </footer>
- )}
-
- </div>
- )
- }
-
-}
diff --git a/ui/app/components/page-container/page-container-footer/tests/page-container-footer.component.test.js b/ui/app/components/page-container/page-container-footer/tests/page-container-footer.component.test.js
deleted file mode 100644
index 64efabab0..000000000
--- a/ui/app/components/page-container/page-container-footer/tests/page-container-footer.component.test.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import React from 'react'
-import assert from 'assert'
-import { shallow } from 'enzyme'
-import sinon from 'sinon'
-import Button from '../../../button'
-import PageFooter from '../page-container-footer.component'
-
-describe('Page Footer', () => {
- let wrapper
- const onCancel = sinon.spy()
- const onSubmit = sinon.spy()
-
- beforeEach(() => {
- wrapper = shallow(<PageFooter
- onCancel = {onCancel}
- onSubmit = {onSubmit}
- cancelText = {'Cancel'}
- submitText = {'Submit'}
- disabled = {false}
- submitButtonType = {'Test Type'}
- />)
- })
-
- it('renders page container footer', () => {
- assert.equal(wrapper.find('.page-container__footer').length, 1)
- })
-
- it('should render a footer inside page-container__footer when given children', () => {
- const wrapper = shallow(
- <PageFooter>
- <div>Works</div>
- </PageFooter>,
- { context: { t: sinon.spy((k) => `[${k}]`) } }
- )
-
- assert.equal(wrapper.find('.page-container__footer footer').length, 1)
- })
-
- it('renders two button components', () => {
- assert.equal(wrapper.find(Button).length, 2)
- })
-
- describe('Cancel Button', () => {
-
- it('has button type of default', () => {
- assert.equal(wrapper.find('.page-container__footer-button').first().prop('type'), 'default')
- })
-
- it('has children text of Cancel', () => {
- assert.equal(wrapper.find('.page-container__footer-button').first().prop('children'), 'Cancel')
- })
-
- it('should call cancel when click is simulated', () => {
- wrapper.find('.page-container__footer-button').first().prop('onClick')()
- assert.equal(onCancel.callCount, 1)
- })
-
- })
-
- describe('Submit Button', () => {
-
- it('assigns button type based on props', () => {
- assert.equal(wrapper.find('.page-container__footer-button').last().prop('type'), 'Test Type')
- })
-
- it('has disabled prop', () => {
- assert.equal(wrapper.find('.page-container__footer-button').last().prop('disabled'), false)
- })
-
- it('has children text when submitText prop exists', () => {
- assert.equal(wrapper.find('.page-container__footer-button').last().prop('children'), 'Submit')
- })
-
- it('should call submit when click is simulated', () => {
- wrapper.find('.page-container__footer-button').last().prop('onClick')()
- assert.equal(onSubmit.callCount, 1)
- })
- })
-})
diff --git a/ui/app/components/page-container/page-container-header/index.js b/ui/app/components/page-container/page-container-header/index.js
deleted file mode 100644
index b194af057..000000000
--- a/ui/app/components/page-container/page-container-header/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default } from './page-container-header.component'
diff --git a/ui/app/components/page-container/page-container-header/page-container-header.component.js b/ui/app/components/page-container/page-container-header/page-container-header.component.js
deleted file mode 100644
index 08f9c7544..000000000
--- a/ui/app/components/page-container/page-container-header/page-container-header.component.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import React, { Component } from 'react'
-import PropTypes from 'prop-types'
-import classnames from 'classnames'
-
-export default class PageContainerHeader extends Component {
- static propTypes = {
- title: PropTypes.string,
- subtitle: PropTypes.string,
- onClose: PropTypes.func,
- showBackButton: PropTypes.bool,
- onBackButtonClick: PropTypes.func,
- backButtonStyles: PropTypes.object,
- backButtonString: PropTypes.string,
- tabs: PropTypes.node,
- headerCloseText: PropTypes.string,
- }
-
- renderTabs () {
- const { tabs } = this.props
-
- return tabs && (
- <ul className="page-container__tabs">
- { tabs }
- </ul>
- )
- }
-
- renderHeaderRow () {
- const { showBackButton, onBackButtonClick, backButtonStyles, backButtonString } = this.props
-
- return showBackButton && (
- <div className="page-container__header-row">
- <span
- className="page-container__back-button"
- onClick={onBackButtonClick}
- style={backButtonStyles}
- >
- { backButtonString || 'Back' }
- </span>
- </div>
- )
- }
-
- render () {
- const { title, subtitle, onClose, tabs, headerCloseText } = this.props
-
- return (
- <div className={
- classnames(
- 'page-container__header',
- { 'page-container__header--no-padding-bottom': Boolean(tabs) }
- )
- }>
-
- { this.renderHeaderRow() }
-
- {
- title && <div className="page-container__title">
- { title }
- </div>
- }
-
- {
- subtitle && <div className="page-container__subtitle">
- { subtitle }
- </div>
- }
-
- {
- onClose && headerCloseText
- ? <div className="page-container__header-close-text" onClick={() => onClose()}>{ headerCloseText }</div>
- : onClose && <div
- className="page-container__header-close"
- onClick={() => onClose()}
- />
- }
-
- { this.renderTabs() }
- </div>
- )
- }
-
-}
diff --git a/ui/app/components/page-container/page-container-header/tests/page-container-header.component.test.js b/ui/app/components/page-container/page-container-header/tests/page-container-header.component.test.js
deleted file mode 100644
index 59304b2bd..000000000
--- a/ui/app/components/page-container/page-container-header/tests/page-container-header.component.test.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import React from 'react'
-import assert from 'assert'
-import { shallow } from 'enzyme'
-import sinon from 'sinon'
-import PageContainerHeader from '../page-container-header.component'
-
-describe('Page Container Header', () => {
- let wrapper, style, onBackButtonClick, onClose
-
- beforeEach(() => {
- style = {test: 'style'}
- onBackButtonClick = sinon.spy()
- onClose = sinon.spy()
-
- wrapper = shallow(<PageContainerHeader
- showBackButton = {true}
- onBackButtonClick = {onBackButtonClick}
- backButtonStyles = {style}
- title = {'Test Title'}
- subtitle = {'Test Subtitle'}
- tabs = {'Test Tab'}
- onClose = {onClose}
- />)
- })
-
- describe('Render Header Row', () => {
-
- it('renders back button', () => {
- assert.equal(wrapper.find('.page-container__back-button').length, 1)
- assert.equal(wrapper.find('.page-container__back-button').text(), 'Back')
- })
-
- it('ensures style prop', () => {
- assert.equal(wrapper.find('.page-container__back-button').props().style, style)
- })
-
- it('should call back button when click is simulated', () => {
- wrapper.find('.page-container__back-button').prop('onClick')()
- assert.equal(onBackButtonClick.callCount, 1)
- })
- })
-
- describe('Render', () => {
- let header, headerRow, pageTitle, pageSubtitle, pageClose, pageTab
-
- beforeEach(() => {
- header = wrapper.find('.page-container__header--no-padding-bottom')
- headerRow = wrapper.find('.page-container__header-row')
- pageTitle = wrapper.find('.page-container__title')
- pageSubtitle = wrapper.find('.page-container__subtitle')
- pageClose = wrapper.find('.page-container__header-close')
- pageTab = wrapper.find('.page-container__tabs')
- })
-
- it('renders page container', () => {
- assert.equal(header.length, 1)
- assert.equal(headerRow.length, 1)
- assert.equal(pageTitle.length, 1)
- assert.equal(pageSubtitle.length, 1)
- assert.equal(pageClose.length, 1)
- assert.equal(pageTab.length, 1)
- })
-
- it('renders title', () => {
- assert.equal(pageTitle.text(), 'Test Title')
- })
-
- it('renders subtitle', () => {
- assert.equal(pageSubtitle.text(), 'Test Subtitle')
- })
-
- it('renders tabs', () => {
- assert.equal(pageTab.text(), 'Test Tab')
- })
-
- it('should call close when click is simulated', () => {
- pageClose.prop('onClick')()
- assert.equal(onClose.callCount, 1)
- })
- })
-
-})
diff --git a/ui/app/components/page-container/page-container.component.js b/ui/app/components/page-container/page-container.component.js
deleted file mode 100644
index 45dfff517..000000000
--- a/ui/app/components/page-container/page-container.component.js
+++ /dev/null
@@ -1,131 +0,0 @@
-import React, { PureComponent } from 'react'
-import PropTypes from 'prop-types'
-
-import PageContainerHeader from './page-container-header'
-import PageContainerFooter from './page-container-footer'
-
-export default class PageContainer extends PureComponent {
- static propTypes = {
- // PageContainerHeader props
- backButtonString: PropTypes.string,
- backButtonStyles: PropTypes.object,
- headerCloseText: PropTypes.string,
- onBackButtonClick: PropTypes.func,
- onClose: PropTypes.func,
- showBackButton: PropTypes.bool,
- subtitle: PropTypes.string,
- title: PropTypes.string.isRequired,
- // Tabs-related props
- defaultActiveTabIndex: PropTypes.number,
- tabsComponent: PropTypes.node,
- // Content props
- contentComponent: PropTypes.node,
- // PageContainerFooter props
- cancelText: PropTypes.string,
- disabled: PropTypes.bool,
- hideCancel: PropTypes.bool,
- onCancel: PropTypes.func,
- onSubmit: PropTypes.func,
- submitText: PropTypes.string,
- }
-
- state = {
- activeTabIndex: this.props.defaultActiveTabIndex || 0,
- }
-
- handleTabClick (activeTabIndex) {
- this.setState({ activeTabIndex })
- }
-
- renderTabs () {
- const { tabsComponent } = this.props
-
- if (!tabsComponent) {
- return
- }
-
- const numberOfTabs = React.Children.count(tabsComponent.props.children)
-
- return React.Children.map(tabsComponent.props.children, (child, tabIndex) => {
- return child && React.cloneElement(child, {
- onClick: index => this.handleTabClick(index),
- tabIndex,
- isActive: numberOfTabs > 1 && tabIndex === this.state.activeTabIndex,
- key: tabIndex,
- className: 'page-container__tab',
- activeClassName: 'page-container__tab--selected',
- })
- })
- }
-
- renderActiveTabContent () {
- const { tabsComponent } = this.props
- let { children } = tabsComponent.props
- children = children.filter(child => child)
- const { activeTabIndex } = this.state
-
- return children[activeTabIndex]
- ? children[activeTabIndex].props.children
- : children.props.children
- }
-
- renderContent () {
- const { contentComponent, tabsComponent } = this.props
-
- if (contentComponent) {
- return contentComponent
- } else if (tabsComponent) {
- return this.renderActiveTabContent()
- } else {
- return null
- }
- }
-
- render () {
- const {
- title,
- subtitle,
- onClose,
- showBackButton,
- onBackButtonClick,
- backButtonStyles,
- backButtonString,
- onCancel,
- cancelText,
- onSubmit,
- submitText,
- disabled,
- headerCloseText,
- hideCancel,
- } = this.props
-
- return (
- <div className="page-container">
- <PageContainerHeader
- title={title}
- subtitle={subtitle}
- onClose={onClose}
- showBackButton={showBackButton}
- onBackButtonClick={onBackButtonClick}
- backButtonStyles={backButtonStyles}
- backButtonString={backButtonString}
- tabs={this.renderTabs()}
- headerCloseText={headerCloseText}
- />
- <div className="page-container__bottom">
- <div className="page-container__content">
- { this.renderContent() }
- </div>
- <PageContainerFooter
- onCancel={onCancel}
- cancelText={cancelText}
- hideCancel={hideCancel}
- onSubmit={onSubmit}
- submitText={submitText}
- disabled={disabled}
- />
- </div>
- </div>
- )
- }
-}
diff --git a/ui/app/components/page-container/tests/page-container.component.test.js b/ui/app/components/page-container/tests/page-container.component.test.js
deleted file mode 100644
index e69de29bb..000000000
--- a/ui/app/components/page-container/tests/page-container.component.test.js
+++ /dev/null