mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-11 18:32:20 +08:00
415d612458
Summary: Adds the new Account preferences page. This consists of two major React components, PreferencesAccountList and PreferencesAccountDetails, both of which use EditableList. I added a bunch of fixes and updated the API for EditableList, plus a bit of refactoring for PreferencesAccount component, and a bunch of CSS so its a big diff. The detailed changelog: Updates to EditableList: - Fix bug updating selection state when arrows pressed to move selection - Add new props: - allowEmptySelection to allow the list to have no selection - createInputProps to pass aditional props to the createInput - Add scroll region for list items - Update styles and refactor render methods Other Updates: - Updates Account model to hold aliases and a label - Adds getter for label to default to email - Update accountswitcher to display label, update styles and spec - Refactor PreferencesAccounts component: - Splits it into smaller components, - Removes unused code - Splits preferences styelsheets into smaller separate stylesheet for account page. Adds some updates and fixes (scroll-region padding) - Update AccountStore to be able to perform updates on an account. - Adds new Action to update account, and an action to remove account to be consistent with Action usage - Adds components for Account list and Aliases list using EditableList Test Plan: - All specs pass, but need to write new tests! Reviewers: bengotow, evan Reviewed By: bengotow Differential Revision: https://phab.nylas.com/D2332
254 lines
5.2 KiB
Text
254 lines
5.2 KiB
Text
@import "ui-variables";
|
|
@import "ui-mixins";
|
|
|
|
@unread-count-color: fadeout(@text-color-subtle, 40%);
|
|
|
|
#account-switcher,
|
|
#account-sidebar {
|
|
order: 1;
|
|
height: 100%;
|
|
background-color: @source-list-bg;
|
|
|
|
section {
|
|
margin-bottom: @padding-base-vertical;
|
|
|
|
section {
|
|
padding-left: @padding-base-horizontal * 1.3;
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
.heading {
|
|
color: @text-color-very-subtle;
|
|
font-weight: @font-weight-semi-bold;
|
|
font-size: @font-size-smaller;
|
|
padding-left:@padding-small-horizontal;
|
|
padding-top:@padding-small-horizontal;
|
|
letter-spacing: -0.2px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.add-item-button {
|
|
display: inline-block;
|
|
margin-left: @padding-small-horizontal;
|
|
cursor: pointer;
|
|
img {background: @text-color-very-subtle; }
|
|
}
|
|
|
|
.add-item-container {
|
|
align-items: center;
|
|
|
|
.add-item-input {
|
|
order: 2;
|
|
font-size: @font-size-small;
|
|
margin-left: @padding-small-horizontal * 0.3;
|
|
height: 22px;
|
|
padding-left: 0;
|
|
text-indent: @padding-small-horizontal * 0.55;
|
|
width: 85%;
|
|
}
|
|
}
|
|
|
|
.item-container {
|
|
display:flex;
|
|
}
|
|
|
|
.item {
|
|
color: @text-color-subtle;
|
|
flex: 1;
|
|
display: flex;
|
|
img.content-mask {
|
|
background-color: @text-color-subtle;
|
|
vertical-align: text-bottom;
|
|
}
|
|
font-size: @font-size-small;
|
|
font-weight: 400;
|
|
padding-right: @spacing-standard;
|
|
line-height: @line-height-large * 1.1;
|
|
clear: both;
|
|
|
|
.icon {
|
|
flex-shrink: 0;
|
|
order: 1;
|
|
}
|
|
.name {
|
|
order: 2;
|
|
padding-left: @padding-small-horizontal * 0.85;
|
|
position:relative;
|
|
top:1px;
|
|
overflow: hidden;
|
|
padding-top: @padding-small-vertical;
|
|
padding-bottom:@padding-small-vertical;
|
|
line-height: @line-height-small;
|
|
text-overflow: ellipsis;
|
|
}
|
|
.item-count-box {
|
|
order: 3;
|
|
flex-shrink: 0;
|
|
font-weight: @font-weight-semi-bold;
|
|
color: @unread-count-color;
|
|
margin-left: @padding-small-horizontal * 0.8;
|
|
box-shadow: 0 0.5px 0 @unread-count-color, 0 -0.5px 0 @unread-count-color, 0.5px 0 0 @unread-count-color, -0.5px 0 0 @unread-count-color;
|
|
|
|
}
|
|
.item-count-box.inbox {
|
|
color: @source-list-active-bg;
|
|
background: @source-list-active-color;
|
|
box-shadow: none;
|
|
}
|
|
.item-count-box.archive,
|
|
.item-count-box.all,
|
|
.item-count-box.spam {
|
|
display: none;
|
|
}
|
|
|
|
&.selected {
|
|
background: @source-list-active-bg;
|
|
color: @source-list-active-color;
|
|
img.content-mask { background-color: @source-list-active-color; }
|
|
}
|
|
&.dropping {
|
|
background-color: lighten(@source-list-bg, 20%);
|
|
color: @source-list-active-color;
|
|
img.content-mask { background-color: @source-list-active-color; }
|
|
}
|
|
&.deleted {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
&:hover {
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
.item-divider {
|
|
color:#586870;
|
|
padding-top: 1em;
|
|
padding-bottom: 0.25em;
|
|
}
|
|
}
|
|
|
|
#account-switcher {
|
|
border-bottom: 1px solid @border-color-divider;
|
|
|
|
.primary-item {
|
|
padding-top: @padding-large-vertical;
|
|
padding-bottom: @padding-base-vertical;
|
|
padding-left: 10px;
|
|
.name {
|
|
padding-left: 7px;
|
|
}
|
|
}
|
|
|
|
.name {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.toggle {
|
|
transform: rotateX(180deg);
|
|
}
|
|
|
|
.dropdown {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transform:scale(1, 0.2);
|
|
transform-origin: top;
|
|
transition: transform 125ms cubic-bezier(0.18, 0.89, 0.32, 1.12), opacity 100ms linear;
|
|
.inner {
|
|
opacity: 0;
|
|
transition: opacity 25ms linear;
|
|
transition-delay: 0;
|
|
}
|
|
margin-top: -7px;
|
|
background: lighten(@source-list-bg, 5%);
|
|
border: 1px solid @border-color-divider;
|
|
border-radius: @border-radius-base;
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.21);
|
|
|
|
position: absolute;
|
|
top: 54px;
|
|
width: 100%;
|
|
z-index: 999;
|
|
|
|
.account .gravatar {
|
|
top: 6px;
|
|
}
|
|
}
|
|
|
|
.item {
|
|
position: relative;
|
|
margin-bottom: 0;
|
|
display:block;
|
|
.gravatar {
|
|
background-size: 28px 28px;
|
|
width: 28px;
|
|
height: 28px;
|
|
position: absolute;
|
|
z-index: 2;
|
|
border-radius: 4px;
|
|
top: -2px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
}
|
|
|
|
.secondary-item {
|
|
&:hover {
|
|
background: @list-hover-bg;
|
|
}
|
|
|
|
padding: 6px 5px 0 14px;
|
|
|
|
&:first-child {
|
|
padding-top: 8px;
|
|
border-top-left-radius: @list-border-radius;
|
|
border-top-right-radius: @list-border-radius;
|
|
}
|
|
&:last-child {
|
|
padding-bottom: 2px;
|
|
border-bottom-left-radius: @list-border-radius;
|
|
border-bottom-right-radius: @list-border-radius;
|
|
}
|
|
}
|
|
}
|
|
body.platform-win32 {
|
|
#account-switcher {
|
|
.dropdown {
|
|
border-radius: 0;
|
|
}
|
|
.item {
|
|
border-radius: 0;
|
|
}
|
|
.secondary-item {
|
|
&:first-child, &:last-child {
|
|
border-radius: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#account-switcher.open {
|
|
.dropdown {
|
|
opacity: 1;
|
|
pointer-events: initial;
|
|
transform:scale(1, 1);
|
|
transform-origin: top;
|
|
.inner {
|
|
opacity: 1;
|
|
transition: opacity 50ms linear;
|
|
transition-delay: 50ms;
|
|
}
|
|
}
|
|
.toggle {
|
|
transform: rotateX(0deg);
|
|
}
|
|
}
|
|
|
|
|
|
#account-switcher {
|
|
height: auto;
|
|
}
|