Organize style rules of AccessSecretStorageDialog to avoid visual bugs (#8395)

* .mx_AccessSecretStorageDialog

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* .mx_AccessSecretStorageDialog_primaryContainer

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* .mx_AccessSecretStorageDialog_titleWithIcon

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Adopt BEM style

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* yarn run lint:style --fix

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
This commit is contained in:
Suguru Hirahara 2022-06-15 15:47:25 +00:00 committed by GitHub
parent 78ba5e35a3
commit 1b426ce0c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 109 additions and 103 deletions

View file

@ -14,7 +14,9 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
.mx_AccessSecretStorageDialog_titleWithIcon::before {
.mx_AccessSecretStorageDialog {
.mx_AccessSecretStorageDialog_titleWithIcon {
&::before {
content: '';
display: inline-block;
width: 24px;
@ -25,35 +27,36 @@ limitations under the License.
background-color: $primary-content;
}
.mx_AccessSecretStorageDialog_resetBadge::before {
&.mx_AccessSecretStorageDialog_resetBadge::before {
// The image isn't capable of masking, so we use a background instead.
background-image: url("$(res)/img/element-icons/warning-badge.svg");
background-size: 24px;
background-color: transparent;
}
.mx_AccessSecretStorageDialog_secureBackupTitle::before {
&.mx_AccessSecretStorageDialog_secureBackupTitle::before {
mask-image: url('$(res)/img/feather-customised/secure-backup.svg');
}
.mx_AccessSecretStorageDialog_securePhraseTitle::before {
&.mx_AccessSecretStorageDialog_securePhraseTitle::before {
mask-image: url('$(res)/img/feather-customised/secure-phrase.svg');
}
.mx_AccessSecretStorageDialog_keyStatus {
height: 30px;
}
.mx_AccessSecretStorageDialog_primaryContainer {
.mx_AccessSecretStorageDialog_passPhraseInput {
width: 300px;
border: 1px solid $accent;
border-radius: 5px;
}
.mx_AccessSecretStorageDialog_keyStatus {
height: 30px;
}
.mx_AccessSecretStorageDialog_recoveryKeyEntry {
display: flex;
align-items: center;
}
.mx_AccessSecretStorageDialog_recoveryKeyEntry_textInput {
flex-grow: 1;
@ -63,6 +66,11 @@ limitations under the License.
margin: $spacing-16;
}
.mx_AccessSecretStorageDialog_recoveryKeyEntry_fileInput {
display: none;
}
}
.mx_AccessSecretStorageDialog_recoveryKeyFeedback {
&::before {
content: "";
@ -75,29 +83,26 @@ limitations under the License.
mask-size: 20px;
margin-inline-end: 5px; // TODO: spacing variable
}
}
.mx_AccessSecretStorageDialog_recoveryKeyFeedback_valid {
&.mx_AccessSecretStorageDialog_recoveryKeyFeedback--valid {
color: $accent;
&::before {
mask-image: url('$(res)/img/feather-customised/check.svg');
background-color: $accent;
}
}
.mx_AccessSecretStorageDialog_recoveryKeyFeedback_invalid {
&.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid {
color: $alert;
&::before {
mask-image: url('$(res)/img/feather-customised/x.svg');
background-color: $alert;
}
}
.mx_AccessSecretStorageDialog_recoveryKeyEntry_fileInput {
display: none;
}
.mx_AccessSecretStorageDialog_primaryContainer {
.mx_Dialog_buttons {
$spacingStart: $spacing-24; // 16px icon + 8px padding
@ -137,3 +142,4 @@ limitations under the License.
}
}
}
}

View file

@ -366,8 +366,8 @@ export default class AccessSecretStorageDialog extends React.PureComponent<IProp
const feedbackClasses = classNames({
'mx_AccessSecretStorageDialog_recoveryKeyFeedback': true,
'mx_AccessSecretStorageDialog_recoveryKeyFeedback_valid': this.state.recoveryKeyCorrect === true,
'mx_AccessSecretStorageDialog_recoveryKeyFeedback_invalid': this.state.recoveryKeyCorrect === false,
'mx_AccessSecretStorageDialog_recoveryKeyFeedback--valid': this.state.recoveryKeyCorrect === true,
'mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid': this.state.recoveryKeyCorrect === false,
});
const recoveryKeyFeedback = <div className={feedbackClasses}>
{ this.getKeyValidationText() }