diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index e80ee91de..e9c79aff1 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -1,4 +1,5 @@ import merge from 'lodash/merge' +import isEqual from 'lodash/isEqual' import unescape from 'lodash/unescape' import ColorInput from 'src/components/color_input/color_input.vue' @@ -116,6 +117,7 @@ export default { newShowRole: user.show_role, newFields: user.fields?.map(field => ({ name: field.name, value: field.value })), + editingFields: false, } }, @@ -123,6 +125,21 @@ export default { this.$store.dispatch('fetchUserRelationship', this.user.id) }, computed: { + somethingToSave () { + if (this.newName !== this.user.name_unescaped) return true + if (this.newBio !== unescape(this.user.description)) return true + if (this.newAvatar !== null) return true + if (this.newBanner !== null) return true + if (this.newActorType !== this.user.actor_type) return true + if (this.newBirthday !== this.user.birthday) return true + if (this.newShowBirthday !== this.user.show_birthday) return true + if (this.newShowRole !== this.user.show_role) return true + if (!isEqual( + this.newFields, + this.user.fields?.map(field => ({ name: field.name, value: field.value })) + )) return true + return false + }, groupActorAvailable () { return this.$store.state.instance.groupActorAvailable }, diff --git a/src/components/user_card/user_card.scss b/src/components/user_card/user_card.scss index 8b224efb6..c948480ba 100644 --- a/src/components/user_card/user_card.scss +++ b/src/components/user_card/user_card.scss @@ -153,6 +153,11 @@ border-style: solid; border-color: var(--border); } + + .bottom-buttons { + display: flex; + gap: 0.5em; + } } .user-info { diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 5bb21c838..9873c0aea 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -293,34 +293,6 @@ :user="user" /> - -