aboutsummaryrefslogtreecommitdiff
path: root/src/components/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings')
-rw-r--r--src/components/settings/settings.js36
-rw-r--r--src/components/settings/settings.vue43
2 files changed, 79 insertions, 0 deletions
diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js
index 998aa354..b8aa876b 100644
--- a/src/components/settings/settings.js
+++ b/src/components/settings/settings.js
@@ -7,6 +7,8 @@ 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'),
+ previewfile: null,
autoLoadLocal: this.$store.state.config.autoLoad,
hoverPreviewLocal: this.$store.state.config.hoverPreview,
muteWordsString: this.$store.state.config.muteWords.join('\n')
@@ -15,6 +17,40 @@ const settings = {
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
+ /*this.$store.state.api.backendInteractor.updateAvatar({params: {img}}).then((user) => {
+ if (!user.error) {
+ this.$store.commit('addNewUsers', [user])
+ this.$store.commit('setCurrentUser', user)
+ }
+ })*/
+ }
+ reader.readAsDataURL(file)
+ },
+ submitAvatar () {
+ if (!this.previewfile)
+ return
+ const img = this.previewfile
+ this.$store.state.api.backendInteractor.updateAvatar({params: {img}}).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 })
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index af0242c4..f2442194 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -8,6 +8,18 @@
<h2>Theme</h2>
<style-switcher></style-switcher>
</div>
+ <div class="setting-item" v-if="user">
+ <h2>Avatar</h2>
+ <p>Your current avatar:</p>
+ <img :src="user.profile_image_url_original" class="old-avatar"></img>
+ <p>Set new avatar:</p>
+ <img class="new-avatar" v-bind:src="previewfile">
+ </img>
+ <div>
+ <input name="avatar-upload" id="avatar-upload" type="file" @change="uploadAvatar" ></input>
+ </div>
+ <button class="btn btn-default base05 base01-background" v-if="previewfile" @click="submitAvatar">Submit</button>
+ </div>
<div class="setting-item">
<h2>Filtering</h2>
<p>All notices containing these words will be muted, one per line</p>
@@ -52,6 +64,37 @@
width: 100%;
height: 100px;
}
+
+ .old-avatar {
+ width: 128px;
+ border-radius: 5px;
+ }
+
+ .new-avatar {
+ max-width: 100%;
+ border-radius: 5px;
+ }
+
+ .btn {
+ margin-top: 1em;
+ min-height: 28px;
+ width: 10em;
+ }
+
+ .cropper {
+ //position: absolute;
+ cursor: move;
+ width: 128px;
+ height: 128px;
+ border:1px solid #fff;
+ background-color: #000000;
+ .sub {
+ width: 100%;
+ height: 100%;
+ margin: -1px -1px -1px -1px ;
+ border:1px dashed #000;
+ }
+ }
}
.setting-list {
list-style-type: none;