aboutsummaryrefslogtreecommitdiff
path: root/src/components/settings/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings/settings.js')
-rw-r--r--src/components/settings/settings.js46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js
index 998aa354..8d6a6713 100644
--- a/src/components/settings/settings.js
+++ b/src/components/settings/settings.js
@@ -7,14 +7,58 @@ const settings = {
hideAttachmentsLocal: this.$store.state.config.hideAttachments,
hideAttachmentsInConvLocal: this.$store.state.config.hideAttachmentsInConv,
hideNsfwLocal: this.$store.state.config.hideNsfw,
+ muteWordsString: this.$store.state.config.muteWords.join('\n'),
autoLoadLocal: this.$store.state.config.autoLoad,
hoverPreviewLocal: this.$store.state.config.hoverPreview,
- muteWordsString: this.$store.state.config.muteWords.join('\n')
+ previewfile: null
}
},
components: {
StyleSwitcher
},
+ computed: {
+ user () {
+ return this.$store.state.users.currentUser
+ }
+ },
+ methods: {
+ uploadAvatar ({target}) {
+ const file = target.files[0]
+ // eslint-disable-next-line no-undef
+ const reader = new FileReader()
+ reader.onload = ({target}) => {
+ const img = target.result
+ this.previewfile = img
+ }
+ reader.readAsDataURL(file)
+ },
+ submitAvatar () {
+ if (!this.previewfile) { return }
+
+ const img = this.previewfile
+ // eslint-disable-next-line no-undef
+ let imginfo = new Image()
+ let cropX, cropY, cropW, cropH
+ imginfo.src = this.previewfile
+ if (imginfo.height > imginfo.width) {
+ cropX = 0
+ cropW = imginfo.width
+ cropY = Math.floor((imginfo.height - imginfo.width) / 2)
+ cropH = imginfo.width
+ } else {
+ cropY = 0
+ cropH = imginfo.height
+ cropX = Math.floor((imginfo.width - imginfo.height) / 2)
+ cropW = imginfo.height
+ }
+ this.$store.state.api.backendInteractor.updateAvatar({params: {img, cropX, cropY, cropW, cropH}}).then((user) => {
+ if (!user.error) {
+ this.$store.commit('addNewUsers', [user])
+ this.$store.commit('setCurrentUser', user)
+ }
+ })
+ }
+ },
watch: {
hideAttachmentsLocal (value) {
this.$store.dispatch('setOption', { name: 'hideAttachments', value })