1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 00:28:06 +01:00
metamask-extension/ui/app/css/itcss/components/send.scss

1167 lines
20 KiB
SCSS
Raw Normal View History

2017-08-22 01:59:00 +02:00
.send-screen-wrapper {
display: flex;
2017-09-14 10:32:24 +02:00
flex-flow: column nowrap;
z-index: 25;
2017-10-13 00:46:09 +02:00
font-family: Roboto;
@media screen and (max-width: $break-small) {
2017-09-14 18:56:40 +02:00
width: 100%;
overflow-y: auto;
}
2017-09-14 18:56:40 +02:00
section {
flex: 0 0 auto;
}
2017-08-22 01:59:00 +02:00
}
.send-screen-card {
2017-09-14 10:32:24 +02:00
background-color: #fff;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
2017-09-14 10:32:24 +02:00
padding: 46px 40.5px 26px;
position: relative;
2017-10-13 00:46:09 +02:00
// top: -26px;
2017-09-14 10:32:24 +02:00
align-items: center;
display: flex;
flex-flow: column nowrap;
width: 498px;
flex: 1 0 auto;
2017-09-14 18:56:40 +02:00
@media screen and (max-width: $break-small) {
top: 0;
width: 100%;
box-shadow: none;
padding: 12px;
}
2017-08-22 01:59:00 +02:00
}
/* Send Screen */
.send-screen section {
margin: 4px 16px;
}
.send-screen input {
width: 100%;
font-size: 12px;
}
.send-eth-icon {
2017-09-14 10:32:24 +02:00
border-radius: 50%;
width: 70px;
height: 70px;
border: 1px solid $alto;
2017-09-14 10:32:24 +02:00
box-shadow: 0 0 4px 0 rgba(0, 0, 0, .2);
position: absolute;
top: -35px;
z-index: 25;
padding: 4px;
background-color: $white;
2017-09-14 18:56:40 +02:00
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
}
}
.send-screen-input-wrapper {
width: 95%;
2017-08-24 18:24:48 +02:00
position: relative;
2017-09-12 08:18:54 +02:00
2017-09-14 10:32:24 +02:00
.fa-bolt {
padding-right: 4px;
}
.large-input {
border: 1px solid $dusty-gray;
border-radius: 4px;
margin: 4px 0 20px;
font-size: 16px;
line-height: 22.4px;
2017-10-13 00:46:09 +02:00
font-family: Roboto;
2017-09-14 10:32:24 +02:00
}
.send-screen-gas-input {
border: 1px solid transparent;
}
2017-09-12 08:18:54 +02:00
&__error-message {
display: none;
}
&--error {
input,
.send-screen-gas-input {
border-color: $red !important;
}
.send-screen-input-wrapper__error-message {
display: block;
position: absolute;
bottom: 4px;
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
}
.send-screen-input-wrapper__error-message {
display: block;
position: absolute;
bottom: 4px;
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
}
.send-screen-input {
width: 100%;
}
.send-screen-gas-input {
width: 100%;
height: 41px;
border-radius: 3px;
background-color: #f3f3f3;
border-width: 0;
border-style: none;
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 10px;
padding-right: 12px;
2017-08-28 19:14:01 +02:00
font-size: 16px;
color: $scorpion;
}
.send-screen-amount-labels {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.send-screen-gas-labels {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.currency-toggle {
&__item {
color: $curious-blue;
cursor: pointer;
&--selected {
color: $black;
cursor: default;
}
}
}
2017-08-24 18:24:48 +02:00
.send-screen-gas-input-customize {
color: $curious-blue;
2017-08-24 18:24:48 +02:00
font-size: 12px;
cursor: pointer;
2017-08-24 21:55:03 +02:00
}
.gas-tooltip-close-area {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
}
.customize-gas-tooltip-container {
position: absolute;
bottom: 50px;
2017-08-24 21:55:03 +02:00
width: 237px;
height: 307px;
background-color: $white;
2017-08-24 21:55:03 +02:00
opacity: 1;
box-shadow: $alto 0 0 5px;
2017-08-24 21:55:03 +02:00
z-index: 1050;
padding: 13px 19px;
font-size: 16px;
border-radius: 4px;
font-family: "Lato";
font-weight: 500;
}
.gas-tooltip-arrow {
height: 25px;
width: 25px;
z-index: 1200;
background: $white;
position: absolute;
transform: rotate(45deg);
left: 107px;
top: 294px;
box-shadow: 2px 2px 2px $alto;
}
.customize-gas-tooltip-container input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
.customize-gas-tooltip-container input[type="number"]:hover::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
.customize-gas-tooltip {
position: relative;
}
2017-08-29 20:39:56 +02:00
.gas-tooltip {
display: flex;
justify-content: center;
}
.gas-tooltip-label {
font-size: 16px;
color: $tundora;
}
.gas-tooltip-header {
padding-bottom: 12px;
}
.gas-tooltip-input-label {
margin-bottom: 5px;
}
.gas-tooltip-input-label i {
color: $silver-chalice;
margin-left: 6px;
}
.customize-gas-input {
width: 178px;
height: 28px;
border: 1px solid $alto;
font-size: 16px;
color: $nile-blue;
padding-left: 8px;
}
.customize-gas-input-wrapper {
position: relative;
}
.gas-tooltip-input-detail {
position: absolute;
top: 4px;
right: 26px;
font-size: 12px;
color: $silver-chalice;
}
.gas-tooltip-input-arrows {
position: absolute;
top: 0;
right: 4px;
width: 17px;
height: 28px;
border: 1px solid #dadada;
border-left: 0;
display: flex;
flex-direction: column;
color: #9b9b9b;
font-size: .8em;
padding: 1px 4px;
2017-10-25 10:08:14 +02:00
cursor: pointer;
}
2017-09-07 13:24:03 +02:00
2017-09-13 10:25:39 +02:00
.token-gas {
&__amount {
display: inline-block;
margin-right: 4px;
}
&__symbol {
display: inline-block;
}
}
2017-09-14 10:32:24 +02:00
.send-screen {
&__title {
color: $scorpion;
font-size: 18px;
line-height: 29px;
}
&__subtitle {
margin: 10px 0 20px;
font-size: 14px;
line-height: 24px;
}
&__send-button,
&__cancel-button {
width: 163px;
text-align: center;
}
&__send-button__disabled {
opacity: .5;
cursor: auto;
}
2017-09-14 10:32:24 +02:00
}
2017-09-07 13:24:03 +02:00
.send-token {
display: flex;
flex-flow: column nowrap;
z-index: 25;
2017-10-13 00:46:09 +02:00
font-family: Roboto;
2017-09-07 13:24:03 +02:00
&__content {
width: 498px;
height: 605px;
background-color: #fff;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
padding: 46px 40.5px 26px;
position: relative;
2017-10-13 00:46:09 +02:00
// top: -26px;
align-items: center;
display: flex;
flex-flow: column nowrap;
flex: 1 0 auto;
@media screen and (max-width: $break-small) {
top: 0;
width: 100%;
box-shadow: none;
padding: 12px;
}
}
2017-09-07 13:24:03 +02:00
.identicon {
position: absolute;
top: -35px;
z-index: 25;
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
flex: 0 0 auto;
}
2017-09-07 13:24:03 +02:00
}
&__title {
color: $scorpion;
2017-09-07 13:26:29 +02:00
font-size: 18px;
2017-09-07 13:24:03 +02:00
line-height: 29px;
}
&__description,
&__balance-text,
&__token-symbol {
margin-top: 10px;
2017-09-07 13:26:29 +02:00
font-size: 14px;
2017-09-07 13:24:03 +02:00
line-height: 24px;
text-align: center;
2017-09-07 13:24:03 +02:00
}
&__token-balance {
2017-09-07 13:26:29 +02:00
font-size: 40px;
2017-09-07 13:24:03 +02:00
line-height: 40px;
margin-top: 13px;
.token-balance__amount {
padding-right: 12px;
}
2017-09-07 13:24:03 +02:00
}
2017-09-11 09:45:06 +02:00
&__button-group {
display: flex;
flex-flow: column nowrap;
align-items: center;
flex: 0 0 auto;
@media screen and (max-width: $break-small) {
margin-top: 24px;
}
button {
width: 163px;
}
}
2017-09-07 13:24:03 +02:00
}
2017-09-22 23:34:56 +02:00
.confirm-send-token {
&__hero-amount-wrapper {
width: 100%;
}
}
.send-v2 {
&__container {
2017-10-25 07:43:49 +02:00
// height: 701px;
width: 380px;
border-radius: 8px;
background-color: $white;
2017-10-13 00:46:09 +02:00
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
display: flex;
flex-flow: column nowrap;
z-index: 25;
align-items: center;
font-family: Roboto;
position: relative;
@media screen and (max-width: $break-small) {
width: 100%;
top: 0;
box-shadow: none;
2017-10-25 07:43:49 +02:00
flex: 1 1 auto;
}
}
&__send-header-icon-container {
z-index: 25;
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
}
}
&__send-header-icon {
border-radius: 50%;
width: 48px;
height: 48px;
border: 1px solid $alto;
z-index: 25;
padding: 4px;
background-color: $white;
}
&__send-arrow-icon {
color: #f28930;
transform: rotate(-45deg);
position: absolute;
top: -2px;
left: 0;
font-size: 1.12em;
}
&__arrow-background {
background-color: $white;
height: 14px;
width: 14px;
position: absolute;
top: 52px;
left: 199px;
border-radius: 50%;
z-index: 100;
2017-10-19 19:53:56 +02:00
@media screen and (max-width: $break-small) {
top: 36px;
}
}
&__header {
height: 88px;
width: 380px;
background-color: $athens-grey;
position: relative;
display: flex;
justify-content: center;
align-items: center;
2017-10-19 19:53:56 +02:00
@media screen and (max-width: $break-small) {
height: 59px;
2017-10-25 10:08:14 +02:00
width: 100vw;
2017-10-19 19:53:56 +02:00
}
}
&__header-tip {
height: 25px;
width: 25px;
background: $athens-grey;
position: absolute;
transform: rotate(45deg);
left: 178px;
2017-10-25 10:08:14 +02:00
top: 75px;
2017-10-19 19:53:56 +02:00
@media screen and (max-width: $break-small) {
top: 46px;
2017-10-25 10:08:14 +02:00
left: 0;
right: 0;
margin: 0 auto;
2017-10-19 19:53:56 +02:00
}
}
&__title {
color: $scorpion;
font-size: 22px;
line-height: 29px;
text-align: center;
margin-top: 25px;
}
&__copy {
color: $gray;
font-size: 14px;
line-height: 19px;
text-align: center;
margin-top: 10px;
width: 287px;
}
2017-10-17 22:13:20 +02:00
&__error {
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
&__error-amount {
margin-top: 5px;
}
2019-01-23 19:09:56 +01:00
&__warning {
font-size: 12px;
line-height: 12px;
left: 8px;
color: $orange;
}
2017-10-17 22:13:20 +02:00
&__error-border {
color: $red;
}
&__form {
2017-10-19 19:53:56 +02:00
@media screen and (max-width: $break-small) {
2017-10-25 07:43:49 +02:00
margin: 0;
2017-10-19 23:08:52 +02:00
flex: 1 1 auto;
2017-10-19 19:53:56 +02:00
}
}
2017-10-25 07:43:49 +02:00
&__form-header,
&__form-header-copy {
2017-10-19 19:53:56 +02:00
width: 100%;
display: flex;
flex-flow: column;
align-items: center;
}
&__form-row {
Address book send plus contact list (#6914) * Style Send Header * Move Send to-row to send view and restyle * Add "Recents" group to select recipient view * Rename SendToRow to AddRecipient * Basic UI and Layout * New ENSInput component * wip - fuzzy search for input * small refactor * Add Dialog * contact list initial * initial error on invalid address * clean up edit * Click to open modal * Create AddToAddressBookModal component * Modal styling and layout * modal i18n * Add to Addressbook * ens wip * ens wip * ENS Resolution * Reset input * Send to explicit address * Happy Path Complete * Add back error checking * Reset send-to when emptying input * Add back warning object * Fix linter * Fix unit test #1 - fix import paths * Remove dead tests * One more to go * Fix all unit tests * add unit test for reducers and actions * test rendering AddRecipient * Add tests for dialog boxes in AddRecipient * Add test for validating * Fix linter * Fix e2e tests * Token send e2e fix * Style View Contact * Style edit-contact * Fix e2e * Fix from-import-beta-ui e2e spec * Make section header say "add recipient” by default * Auto-focus add recipient input * Update placeholder text * Update input title font size * Auto advance to next step if user paste a valid address * Ellipsify address when recipient is selected * Fix app header background color on desktop * Give each form row a margin of 16px * Use .container/.component naming pattern for ens-input * Auto-focus on input when add to addressbook modal is opened; Save on Enter * Fix and add unit test * Fix selectors name in e2e tests * Correct e2e test token amount for address-book-send changes * Adds e2e test for editing a transaction * Delete test/integration/lib/send-new-ui.js * Add tests for amount max button and high value error on send screen to test/e2e/metamask-ui.spec.js * lint and revert to address as object keys * add chainId based on current network to address book entry * fix test * only display contacts for the current network * Improve ENS message when not found on current network * Add error to indicate when network does not support ENS * bump gaba * address book, resolve comments * Move contact-list to its own component * De-duplicate getaddressbook selector and refactor name selection logic in contact-list-tab/ * Use contact-list component in contact-list-tab.component (i.e. in settings) * Improve/fix settings headers for popup and browser views * Lint fixes related to address book updates * Add 'My accounts' page to settings address book * Update add new contact button in settings to match floating circular design * Improve styles of view contact page * Improve styles and labels of the add-contact.component * Further lint fixes related to address book updates * Update unit tests as per address book updates * Ensure that contact list groups are sorted alphabetically * Refactor settings component to use a container for connection to redux; allow display of addressbook name in settings header * Decouple ens-input.component from send context * Add ens resolution to add contact screen in settings * Switching networks when an ens address is shown on send form removes the ens address. * Resolve send screen search for ensAddress to matching address book entry if it exists * Show resolved ens icon and address if exists (settings: add-contact.component) * Make the displayed and copied address in view-contact.component the checksummed address * Default alias state prop in AddToAddressBookModal to empty string * Use keyCode to detect enter key in AddToAddressBookModal * Ensure add-contact component properly updates after QR code detection * Fix display of all recents after clicking 'Load More' in contact list * Fix send screen contact searching after network switching * Code cleanup related to address book changes * Update unit tests for address book changes * Update ENS name not found on network message * Add ens registration error message * Cancel on edit mode takes user back to view screen * Adds support for memo to settings contact list view and edit screens * Modify designs of edit and view contact in popup environment * Update settings content list UX to show split columns in fullscreen and proper internal navigation * Correct background address book API usages in UI
2019-07-31 21:56:44 +02:00
margin: 1rem 1rem 0px;
position: relative;
2017-10-19 19:53:56 +02:00
display: flex;
flex-flow: row;
flex: 1 0 auto;
justify-content: space-between;
}
&__form-field-container {
display: flex;
flex-direction: column;
width: 277px;
}
2017-10-19 19:53:56 +02:00
&__form-field {
flex: 1 1 auto;
min-width: 0;
2018-02-13 07:39:15 +01:00
.currency-display {
color: $tundora;
&__currency-symbol {
color: $tundora;
}
&__converted-value,
&__converted-currency {
color: $tundora;
}
}
.account-list-item {
&__account-secondary-balance {
color: $tundora;
}
}
2017-10-19 19:53:56 +02:00
}
&__form-label {
color: $scorpion;
font-family: Roboto;
font-size: 16px;
line-height: 22px;
width: 95px;
2018-02-13 07:39:15 +01:00
font-weight: 400;
flex: 0 0 auto;
}
&__from-dropdown,
&__asset-dropdown {
2017-10-19 19:53:56 +02:00
width: 100%;
border: 1px solid $alto;
border-radius: 4px;
background-color: $white;
font-family: Roboto;
line-height: 16px;
font-size: 12px;
color: $tundora;
position: relative;
&__close-area {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
}
&__list {
z-index: 1050;
position: absolute;
height: 220px;
width: 100%;
border: 1px solid $geyser;
border-radius: 4px;
background-color: $white;
box-shadow: 0 3px 6px 0 rgba(0 ,0 ,0 ,.11);
margin-top: 11px;
margin-left: -1px;
overflow-y: scroll;
}
}
&__from-dropdown {
height: 73px;
}
&__asset-dropdown {
height: 54px;
border: none;
&__single-asset {
display: flex;
flex-flow: row nowrap;
align-items: center;
padding: 8px 8px;
&:hover {
background-color: rgba($alto, 0.2);
}
}
&__asset {
display: flex;
flex-flow: row nowrap;
align-items: center;
padding: 0 8px;
cursor: pointer;
&:hover {
background-color: rgba($alto, 0.2);
}
}
&__asset-icon {
.identicon {
border: 1px solid $alto;
}
}
&__asset-data {
display: flex;
flex-flow: column nowrap;
margin-left: 8px;
}
&__symbol {
font-size: 16px;
margin-bottom: 2px;
}
&__name {
display: flex;
flex-flow: row nowrap;
font-size: 12px;
&__label {
margin-right: .25rem;
}
}
&__close-area {
z-index: 2000;
}
&__list {
z-index: 2050;
position: absolute;
height: 220px;
width: 100%;
border: 1px solid $geyser;
border-radius: 4px;
background-color: $white;
box-shadow: 0 3px 6px 0 rgba(0 ,0 ,0 ,.11);
top: 65px;
left: 0;
box-sizing: content-box;
overflow-y: scroll;
margin-top: 0;
padding: 4px 0;
.send-v2__asset-dropdown__asset {
padding: 8px;
}
}
&__input-wrapper {
border: 1px solid $alto;
border-radius: 4px;
height: 100%;
&--opened {
position: relative;
z-index: 2050;
}
.send-v2__asset-dropdown__asset {
height: 100%;
&:hover {
background-color: $white;
}
}
}
&__input {
z-index: 1025;
position: relative;
height: 54px;
width: 100%;
border: none;
border-radius: 4px;
background-color: $white;
color: $tundora;
padding: 10px;
font-family: Roboto;
font-size: 16px;
line-height: 21px;
}
}
2017-10-23 18:24:47 +02:00
&__to-autocomplete {
position: relative;
&__qr-code {
2018-09-14 01:23:04 +02:00
z-index: 1026;
2018-08-04 00:57:23 +02:00
top: 13px;
right: 33px;
2018-07-25 04:34:15 +02:00
cursor: pointer;
2018-08-04 00:57:23 +02:00
padding: 8px 5px 5px;
border-radius: 4px;
}
&__qr-code:hover {
background: #f1f1f1;
}
Address book send plus contact list (#6914) * Style Send Header * Move Send to-row to send view and restyle * Add "Recents" group to select recipient view * Rename SendToRow to AddRecipient * Basic UI and Layout * New ENSInput component * wip - fuzzy search for input * small refactor * Add Dialog * contact list initial * initial error on invalid address * clean up edit * Click to open modal * Create AddToAddressBookModal component * Modal styling and layout * modal i18n * Add to Addressbook * ens wip * ens wip * ENS Resolution * Reset input * Send to explicit address * Happy Path Complete * Add back error checking * Reset send-to when emptying input * Add back warning object * Fix linter * Fix unit test #1 - fix import paths * Remove dead tests * One more to go * Fix all unit tests * add unit test for reducers and actions * test rendering AddRecipient * Add tests for dialog boxes in AddRecipient * Add test for validating * Fix linter * Fix e2e tests * Token send e2e fix * Style View Contact * Style edit-contact * Fix e2e * Fix from-import-beta-ui e2e spec * Make section header say "add recipient” by default * Auto-focus add recipient input * Update placeholder text * Update input title font size * Auto advance to next step if user paste a valid address * Ellipsify address when recipient is selected * Fix app header background color on desktop * Give each form row a margin of 16px * Use .container/.component naming pattern for ens-input * Auto-focus on input when add to addressbook modal is opened; Save on Enter * Fix and add unit test * Fix selectors name in e2e tests * Correct e2e test token amount for address-book-send changes * Adds e2e test for editing a transaction * Delete test/integration/lib/send-new-ui.js * Add tests for amount max button and high value error on send screen to test/e2e/metamask-ui.spec.js * lint and revert to address as object keys * add chainId based on current network to address book entry * fix test * only display contacts for the current network * Improve ENS message when not found on current network * Add error to indicate when network does not support ENS * bump gaba * address book, resolve comments * Move contact-list to its own component * De-duplicate getaddressbook selector and refactor name selection logic in contact-list-tab/ * Use contact-list component in contact-list-tab.component (i.e. in settings) * Improve/fix settings headers for popup and browser views * Lint fixes related to address book updates * Add 'My accounts' page to settings address book * Update add new contact button in settings to match floating circular design * Improve styles of view contact page * Improve styles and labels of the add-contact.component * Further lint fixes related to address book updates * Update unit tests as per address book updates * Ensure that contact list groups are sorted alphabetically * Refactor settings component to use a container for connection to redux; allow display of addressbook name in settings header * Decouple ens-input.component from send context * Add ens resolution to add contact screen in settings * Switching networks when an ens address is shown on send form removes the ens address. * Resolve send screen search for ensAddress to matching address book entry if it exists * Show resolved ens icon and address if exists (settings: add-contact.component) * Make the displayed and copied address in view-contact.component the checksummed address * Default alias state prop in AddToAddressBookModal to empty string * Use keyCode to detect enter key in AddToAddressBookModal * Ensure add-contact component properly updates after QR code detection * Fix display of all recents after clicking 'Load More' in contact list * Fix send screen contact searching after network switching * Code cleanup related to address book changes * Update unit tests for address book changes * Update ENS name not found on network message * Add ens registration error message * Cancel on edit mode takes user back to view screen * Adds support for memo to settings contact list view and edit screens * Modify designs of edit and view contact in popup environment * Update settings content list UX to show split columns in fullscreen and proper internal navigation * Correct background address book API usages in UI
2019-07-31 21:56:44 +02:00
}
Address book send plus contact list (#6914) * Style Send Header * Move Send to-row to send view and restyle * Add "Recents" group to select recipient view * Rename SendToRow to AddRecipient * Basic UI and Layout * New ENSInput component * wip - fuzzy search for input * small refactor * Add Dialog * contact list initial * initial error on invalid address * clean up edit * Click to open modal * Create AddToAddressBookModal component * Modal styling and layout * modal i18n * Add to Addressbook * ens wip * ens wip * ENS Resolution * Reset input * Send to explicit address * Happy Path Complete * Add back error checking * Reset send-to when emptying input * Add back warning object * Fix linter * Fix unit test #1 - fix import paths * Remove dead tests * One more to go * Fix all unit tests * add unit test for reducers and actions * test rendering AddRecipient * Add tests for dialog boxes in AddRecipient * Add test for validating * Fix linter * Fix e2e tests * Token send e2e fix * Style View Contact * Style edit-contact * Fix e2e * Fix from-import-beta-ui e2e spec * Make section header say "add recipient” by default * Auto-focus add recipient input * Update placeholder text * Update input title font size * Auto advance to next step if user paste a valid address * Ellipsify address when recipient is selected * Fix app header background color on desktop * Give each form row a margin of 16px * Use .container/.component naming pattern for ens-input * Auto-focus on input when add to addressbook modal is opened; Save on Enter * Fix and add unit test * Fix selectors name in e2e tests * Correct e2e test token amount for address-book-send changes * Adds e2e test for editing a transaction * Delete test/integration/lib/send-new-ui.js * Add tests for amount max button and high value error on send screen to test/e2e/metamask-ui.spec.js * lint and revert to address as object keys * add chainId based on current network to address book entry * fix test * only display contacts for the current network * Improve ENS message when not found on current network * Add error to indicate when network does not support ENS * bump gaba * address book, resolve comments * Move contact-list to its own component * De-duplicate getaddressbook selector and refactor name selection logic in contact-list-tab/ * Use contact-list component in contact-list-tab.component (i.e. in settings) * Improve/fix settings headers for popup and browser views * Lint fixes related to address book updates * Add 'My accounts' page to settings address book * Update add new contact button in settings to match floating circular design * Improve styles of view contact page * Improve styles and labels of the add-contact.component * Further lint fixes related to address book updates * Update unit tests as per address book updates * Ensure that contact list groups are sorted alphabetically * Refactor settings component to use a container for connection to redux; allow display of addressbook name in settings header * Decouple ens-input.component from send context * Add ens resolution to add contact screen in settings * Switching networks when an ens address is shown on send form removes the ens address. * Resolve send screen search for ensAddress to matching address book entry if it exists * Show resolved ens icon and address if exists (settings: add-contact.component) * Make the displayed and copied address in view-contact.component the checksummed address * Default alias state prop in AddToAddressBookModal to empty string * Use keyCode to detect enter key in AddToAddressBookModal * Ensure add-contact component properly updates after QR code detection * Fix display of all recents after clicking 'Load More' in contact list * Fix send screen contact searching after network switching * Code cleanup related to address book changes * Update unit tests for address book changes * Update ENS name not found on network message * Add ens registration error message * Cancel on edit mode takes user back to view screen * Adds support for memo to settings contact list view and edit screens * Modify designs of edit and view contact in popup environment * Update settings content list UX to show split columns in fullscreen and proper internal navigation * Correct background address book API usages in UI
2019-07-31 21:56:44 +02:00
&__to-autocomplete {
display: flex;
flex-direction: row;
z-index: 1025;
position: relative;
height: 54px;
width: 100%;
border: 1px solid $Grey-100;
border-radius: 8px;
background-color: $white;
color: $tundora;
padding: 0 10px;
font-family: Roboto;
line-height: 21px;
align-items: center;
&__input {
font-size: 16px;
height: 100%;
border: none;
flex: 1 1 auto;
width: 0;
&::placeholder {
color: #A1A5B3;
}
}
&__resolved {
font-size: 12px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
height: 30px;
cursor: pointer;
+ .send-v2__to-autocomplete__qr-code {
top: 2px;
right: 0;
}
}
2017-10-23 18:24:47 +02:00
}
Address book send plus contact list (#6914) * Style Send Header * Move Send to-row to send view and restyle * Add "Recents" group to select recipient view * Rename SendToRow to AddRecipient * Basic UI and Layout * New ENSInput component * wip - fuzzy search for input * small refactor * Add Dialog * contact list initial * initial error on invalid address * clean up edit * Click to open modal * Create AddToAddressBookModal component * Modal styling and layout * modal i18n * Add to Addressbook * ens wip * ens wip * ENS Resolution * Reset input * Send to explicit address * Happy Path Complete * Add back error checking * Reset send-to when emptying input * Add back warning object * Fix linter * Fix unit test #1 - fix import paths * Remove dead tests * One more to go * Fix all unit tests * add unit test for reducers and actions * test rendering AddRecipient * Add tests for dialog boxes in AddRecipient * Add test for validating * Fix linter * Fix e2e tests * Token send e2e fix * Style View Contact * Style edit-contact * Fix e2e * Fix from-import-beta-ui e2e spec * Make section header say "add recipient” by default * Auto-focus add recipient input * Update placeholder text * Update input title font size * Auto advance to next step if user paste a valid address * Ellipsify address when recipient is selected * Fix app header background color on desktop * Give each form row a margin of 16px * Use .container/.component naming pattern for ens-input * Auto-focus on input when add to addressbook modal is opened; Save on Enter * Fix and add unit test * Fix selectors name in e2e tests * Correct e2e test token amount for address-book-send changes * Adds e2e test for editing a transaction * Delete test/integration/lib/send-new-ui.js * Add tests for amount max button and high value error on send screen to test/e2e/metamask-ui.spec.js * lint and revert to address as object keys * add chainId based on current network to address book entry * fix test * only display contacts for the current network * Improve ENS message when not found on current network * Add error to indicate when network does not support ENS * bump gaba * address book, resolve comments * Move contact-list to its own component * De-duplicate getaddressbook selector and refactor name selection logic in contact-list-tab/ * Use contact-list component in contact-list-tab.component (i.e. in settings) * Improve/fix settings headers for popup and browser views * Lint fixes related to address book updates * Add 'My accounts' page to settings address book * Update add new contact button in settings to match floating circular design * Improve styles of view contact page * Improve styles and labels of the add-contact.component * Further lint fixes related to address book updates * Update unit tests as per address book updates * Ensure that contact list groups are sorted alphabetically * Refactor settings component to use a container for connection to redux; allow display of addressbook name in settings header * Decouple ens-input.component from send context * Add ens resolution to add contact screen in settings * Switching networks when an ens address is shown on send form removes the ens address. * Resolve send screen search for ensAddress to matching address book entry if it exists * Show resolved ens icon and address if exists (settings: add-contact.component) * Make the displayed and copied address in view-contact.component the checksummed address * Default alias state prop in AddToAddressBookModal to empty string * Use keyCode to detect enter key in AddToAddressBookModal * Ensure add-contact component properly updates after QR code detection * Fix display of all recents after clicking 'Load More' in contact list * Fix send screen contact searching after network switching * Code cleanup related to address book changes * Update unit tests for address book changes * Update ENS name not found on network message * Add ens registration error message * Cancel on edit mode takes user back to view screen * Adds support for memo to settings contact list view and edit screens * Modify designs of edit and view contact in popup environment * Update settings content list UX to show split columns in fullscreen and proper internal navigation * Correct background address book API usages in UI
2019-07-31 21:56:44 +02:00
&__memo-text-area, &__hex-data {
2017-10-06 12:30:45 +02:00
&__input {
2018-09-14 01:23:04 +02:00
z-index: 1025;
position: relative;
2017-10-06 12:30:45 +02:00
height: 54px;
2017-10-19 19:53:56 +02:00
width: 100%;
2017-10-06 12:30:45 +02:00
border: 1px solid $alto;
border-radius: 4px;
background-color: $white;
2018-02-13 07:39:15 +01:00
color: $tundora;
2017-10-06 12:30:45 +02:00
padding: 10px;
font-family: Roboto;
font-size: 16px;
line-height: 21px;
}
}
2017-10-26 18:43:12 +02:00
&__amount-max {
font-family: Roboto;
font-size: 12px;
position: relative;
display: inline-block;
width: 56px;
height: 20px;
margin-top: 5px;
&__button {
width: 56px;
height: 20px;
position: absolute;
border: 2px solid #B0D7F2;
border-radius: 6px;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
color: #2f9ae0;
&__disabled {
color: #B0D7F2;
cursor: auto;
}
}
input:checked + &__button {
background-color: #037DD6;
border: 2px solid #037DD6;
color: #fff;
}
}
&__amount-max input {
opacity: 0;
width: 0;
height: 0;
2017-10-26 18:43:12 +02:00
}
2017-10-19 19:53:56 +02:00
&__gas-fee-display {
width: 100%;
position: relative;
.currency-display--message {
padding: 8px 38px 8px 10px;
display: flex;
align-items: center;
}
2017-10-19 19:53:56 +02:00
}
&__sliders-icon-container {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
width: 24px;
border: 1px solid $curious-blue;
border-radius: 4px;
background-color: $white;
position: absolute;
right: 15px;
top: 14px;
cursor: pointer;
font-size: 1em;
}
&__sliders-icon {
color: $curious-blue;
}
&__memo-text-area {
&__input {
padding: 6px 10px;
}
}
&__footer {
height: 92px;
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
border-top: 1px solid $alto;
2017-10-19 19:53:56 +02:00
background: $white;
2017-10-19 23:08:52 +02:00
padding: 0 12px;
flex-shrink: 0;
}
&__next-btn,
&__cancel-btn {
width: 163px;
2017-10-24 10:19:00 +02:00
margin: 0 4px;
}
&__customize-gas {
border: 1px solid #D8D8D8;
border-radius: 4px;
background-color: #FFFFFF;
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.14);
font-family: Roboto;
display: flex;
flex-flow: column;
@media screen and (max-width: $break-small) {
2017-10-25 10:08:14 +02:00
width: 100vw;
height: 100vh;
}
&__header {
height: 52px;
border-bottom: 1px solid $alto;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22px;
2017-10-25 10:08:14 +02:00
@media screen and (max-width: $break-small) {
flex: 0 0 auto;
}
}
&__title {
margin-left: 19.25px;
}
&__close::after {
content: '\00D7';
font-size: 1.8em;
color: $dusty-gray;
font-family: sans-serif;
cursor: pointer;
margin-right: 19.25px;
}
2017-10-25 10:08:14 +02:00
&__content {
display: flex;
flex-flow: column nowrap;
height: 100%;
}
&__body {
display: flex;
2017-10-25 10:08:14 +02:00
margin-bottom: 24px;
@media screen and (max-width: $break-small) {
flex-flow: column;
2017-10-25 10:08:14 +02:00
flex: 1 1 auto;
}
}
&__footer {
height: 75px;
border-top: 1px solid $alto;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22px;
position: relative;
2017-10-25 10:08:14 +02:00
@media screen and (max-width: $break-small) {
flex: 0 0 auto;
}
}
&__buttons {
display: flex;
justify-content: space-between;
margin-right: 21.25px;
}
&__revert, &__cancel, &__save, &__save__error {
display: flex;
justify-content: center;
align-items: center;
padding: 0 3px;
cursor: pointer;
}
&__revert {
color: $silver-chalice;
font-size: 16px;
margin-left: 21.25px;
}
&__cancel, &__save, &__save__error {
width: 85.74px;
2018-03-26 07:19:42 +02:00
min-width: initial;
}
&__save__error {
opacity: 0.5;
cursor: auto;
}
&__error-message {
display: block;
position: absolute;
top: -18px;
right: 0;
font-size: 12px;
line-height: 12px;
color: $red;
width: 100%;
text-align: center;
}
&__cancel {
margin-right: 10px;
}
}
&__gas-modal-card {
width: 360px;
display: flex;
flex-flow: column;
align-items: flex-start;
padding-left: 20px;
&__title {
height: 26px;
color: $tundora;
font-family: Roboto;
font-size: 20px;
line-height: 26px;
margin-top: 17px;
}
&__copy {
height: 38px;
width: 314px;
color: $tundora;
font-family: Roboto;
font-size: 14px;
line-height: 19px;
margin-top: 17px;
}
.customize-gas-input-wrapper {
margin-top: 17px;
}
.customize-gas-input {
height: 54px;
width: 315px;
border: 1px solid $geyser;
background-color: $white;
padding-left: 15px;
}
.gas-tooltip-input-arrows {
width: 32px;
height: 54px;
border-left: 1px solid #dadada;
font-size: 18px;
color: $tundora;
right: 0px;
padding: 0;
display: flex;
justify-content: space-around;
align-items: center;
}
.gas-tooltip-input-arrow-wrapper {
align-items: center;
align-self: stretch;
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
}
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
input[type="number"]:hover::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
}
}
.advanced-gas-options-btn {
display: flex;
justify-content: flex-end;
font-size: 14px;
color: #2f9ae0;
cursor: pointer;
margin-top: 5px;
}
.sliders-icon-container {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
width: 24px;
border: 1px solid $curious-blue;
border-radius: 4px;
background-color: $white;
position: absolute;
right: 15px;
top: 14px;
cursor: pointer;
font-size: 1em;
}
.gas-fee-reset {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
border-radius: 4px;
background-color: #fff;
position: absolute;
right: 12px;
top: 14px;
cursor: pointer;
font-size: 1em;
font-size: 14px;
color: #2f9ae0;
font-family: Roboto;
}
.sliders-icon {
color: $curious-blue;
2018-07-16 22:51:02 +02:00
}