diff --git a/.eslintrc.js b/.eslintrc.js
index 8e6549e5..800f9a4f 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -11,7 +11,7 @@ module.exports = {
'html'
],
// add your custom rules here
- 'rules': {
+ rules: {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
diff --git a/package.json b/package.json
index 90bf48cf..03228133 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-lodash": "^3.2.11",
"chromatism": "^3.0.0",
+ "cropperjs": "^1.4.3",
"diff": "^3.0.1",
"karma-mocha-reporter": "^2.2.1",
"localforage": "^1.5.0",
@@ -27,6 +28,7 @@
"sass-loader": "^4.0.2",
"vue": "^2.5.13",
"vue-chat-scroll": "^1.2.1",
+ "vue-compose": "^0.7.1",
"vue-i18n": "^7.3.2",
"vue-router": "^3.0.1",
"vue-template-compiler": "^2.3.4",
diff --git a/src/App.scss b/src/App.scss
index e7784329..a0d1a804 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -181,8 +181,7 @@ input, textarea, .select {
color: $fallback--text;
color: var(--text, $fallback--text);
}
- &:disabled,
- {
+ &:disabled {
&,
& + label,
& + label::before {
@@ -629,6 +628,16 @@ nav {
color: $fallback--faint;
color: var(--faint, $fallback--faint);
}
+
+.faint-link {
+ color: $fallback--faint;
+ color: var(--faint, $fallback--faint);
+
+ &:hover {
+ text-decoration: underline;
+ }
+}
+
@media all and (min-width: 800px) {
.logo {
opacity: 1 !important;
@@ -649,10 +658,6 @@ nav {
color: var(--lightText, $fallback--lightText);
}
- .text-format {
- float: right;
- }
-
div {
padding-top: 5px;
}
@@ -666,6 +671,10 @@ nav {
border-radius: var(--inputRadius, $fallback--inputRadius);
}
+.button-icon {
+ font-size: 1.2em;
+}
+
@keyframes shakeError {
0% {
transform: translateX(0);
@@ -710,16 +719,6 @@ nav {
margin: 0.5em 0 0.5em 0;
}
- .button-icon {
- font-size: 1.2em;
- }
-
- .status .status-actions {
- div {
- max-width: 4em;
- }
- }
-
.menu-button {
display: block;
margin-right: 0.8em;
@@ -728,7 +727,7 @@ nav {
.login-hint {
text-align: center;
-
+
@media all and (min-width: 801px) {
display: none;
}
diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 7e972026..76affe2d 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -88,7 +88,7 @@
.attachment {
position: relative;
- margin: 0.5em 0.5em 0em 0em;
+ margin-top: 0.5em;
align-self: flex-start;
line-height: 0;
diff --git a/src/components/basic_user_card/basic_user_card.js b/src/components/basic_user_card/basic_user_card.js
new file mode 100644
index 00000000..a8441446
--- /dev/null
+++ b/src/components/basic_user_card/basic_user_card.js
@@ -0,0 +1,28 @@
+import UserCardContent from '../user_card_content/user_card_content.vue'
+import UserAvatar from '../user_avatar/user_avatar.vue'
+import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
+
+const BasicUserCard = {
+ props: [
+ 'user'
+ ],
+ data () {
+ return {
+ userExpanded: false
+ }
+ },
+ components: {
+ UserCardContent,
+ UserAvatar
+ },
+ methods: {
+ toggleUserExpanded () {
+ this.userExpanded = !this.userExpanded
+ },
+ userProfileLink (user) {
+ return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)
+ }
+ }
+}
+
+export default BasicUserCard
diff --git a/src/components/basic_user_card/basic_user_card.vue b/src/components/basic_user_card/basic_user_card.vue
new file mode 100644
index 00000000..77fb0aa0
--- /dev/null
+++ b/src/components/basic_user_card/basic_user_card.vue
@@ -0,0 +1,79 @@
+
+
{{$t('settings.avatar_size_instruction')}}
{{$t('settings.current_avatar')}}
- +{{$t('settings.set_new_avatar')}}
- - -{{changePasswordError}}
{{$t('settings.app_name')}} | +{{$t('settings.valid_until')}} | ++ |
---|---|---|
{{oauthToken.appName}} | +{{oauthToken.validUntil}} | ++ + | +
{{$t('settings.delete_account_description')}}
@@ -158,6 +186,12 @@