mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-11 18:32:20 +08:00
af67597f0b
Summary: Originally, this was going to be a totally independent package, but I wasn't able to isolate the functionality and get it tied in to the delta-stream consumption. Here's how it currently works: - The preferences package has a new tab which allows you to edit mail filters. Filters are saved in a new core store, and a new stock component (ScenarioEditor) renders the editor. The editor takes a set of templates that define a value space, and outputs a valid set of values. - A new MailFilterProcessor takes messages and creates tasks to apply the actions from the MailFiltersStore. - The worker-sync package now uses the MailFilterProcessor to apply filters /before/ it calls didPassivelyReceiveNewModels, so filtrs are applied before any notifications are created. - A new task, ReprocessMailFiltersTask allows you to run filters on all of your existing mail. It leverages the existing TaskQueue architecture to: a) resume where it left off if you quit midway, b) be queryable (for status) from all windows and c) cancelable. The TaskQueue is a bit strange because it runs performLocal and performRemote very differently, and I had to use `performRemote`. (todo refactor soon.) This diff also changes the EditableList a bit to behave like a controlled component and render focused / unfocused states. Test Plan: Run tests, only for actual filter processing atm. Reviewers: juan, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D2379
64 lines
1.3 KiB
Text
64 lines
1.3 KiB
Text
@import "ui-variables";
|
|
@import "ui-mixins";
|
|
|
|
input[type="text"],
|
|
input[type="email"],
|
|
input[type="date"],
|
|
input[type="datetime"],
|
|
input[type="datetime-local"],
|
|
input[type="month"],
|
|
input[type="number"],
|
|
input[type="password"],
|
|
input[type="range"],
|
|
input[type="search"],
|
|
input[type="tel"],
|
|
input[type="time"],
|
|
input[type="url"] {
|
|
width: 100%;
|
|
padding-left: @padding-xs-horizontal;
|
|
padding-right: @padding-xs-horizontal;
|
|
line-height: @line-height-computed;
|
|
font-weight:400;
|
|
background: @input-bg;
|
|
color: @text-color;
|
|
|
|
border-radius: @border-radius-base;
|
|
border: 1px solid @input-border;
|
|
|
|
&:disabled {
|
|
background: fadeout(@input-bg, 40%);
|
|
}
|
|
}
|
|
|
|
textarea,
|
|
input[type="text"],
|
|
input[type="email"] {
|
|
&:focus {
|
|
border: 1px solid @accent-primary;
|
|
box-shadow: 0 0 1.5px @accent-primary;
|
|
}
|
|
}
|
|
|
|
body.platform-win32 {
|
|
input[type="text"],
|
|
input[type="email"],
|
|
input[type="date"],
|
|
input[type="datetime"],
|
|
input[type="datetime-local"],
|
|
input[type="month"],
|
|
input[type="number"],
|
|
input[type="password"],
|
|
input[type="range"],
|
|
input[type="search"],
|
|
input[type="tel"],
|
|
input[type="time"],
|
|
input[type="url"] {
|
|
border: 2px solid @input-border;
|
|
border-radius: 0;
|
|
|
|
&:focus {
|
|
box-shadow: 0 0 0;
|
|
border: 2px solid darken(@input-border, 20%);
|
|
}
|
|
}
|
|
}
|