Bläddra i källkod

Render and resize new avatar selection

master
Immanuel Onyeka 1 år sedan
förälder
incheckning
b9d0da2e90
3 ändrade filer med 38 tillägg och 13 borttagningar
  1. Binär
      assets/image/empty-avatar.jpg
  2. +4
    -0
      components/app.vue
  3. +34
    -13
      components/settings.vue

Binär
assets/image/empty-avatar.jpg Visa fil

Before After
Width: 1280  |  Height: 720  |  Size: 115 KiB

+ 4
- 0
components/app.vue Visa fil

@@ -95,6 +95,10 @@ function getUser() {
}).then (result => { }).then (result => {
if (!result || !result.length) return // Exit if token is invalid if (!result || !result.length) return // Exit if token is invalid
this.user = result[0] this.user = result[0]
if (this.user.avatar) return
fetch("/assets/image/empty-avatar.jpg").then(r => r.blob()).
then(b => this.user.avatar = b)
}) })


} }


+ 34
- 13
components/settings.vue Visa fil

@@ -4,7 +4,10 @@


<section class="form inputs"> <section class="form inputs">
<h3>Avatar</h3> <h3>Avatar</h3>
<img src="/assets/image/mintberry.jpg" alt="avatar"> <canvas width="200" height="200" ref="canvas"></canvas>
<input type="file"
@change="e => changeAvatar(e.target.files[0])"
/>
<button>Upload</button> <button>Upload</button>
</section> </section>


@@ -52,25 +55,43 @@
</div> </div>
</template> </template>


<script> <script setup>
import { ref, watch } from "vue"
import Dialog from "./dialog.vue" import Dialog from "./dialog.vue"


let avatar = ref(null)
let ready = ref(false)
let avatarChanged = ref(false)
const canvas = ref(null)
const props = defineProps(['user', 'token'])

function save() { function save() {
} }


function check() { function check() {
this.ready = true ready.value = true
}

function uploadAvatar(blob) {

} }


export default { function changeAvatar(blob) {
components: { avatar.value = blob
Dialog createImageBitmap(blob,
}, {resizeWidth: 200, resizeHeight: 200, resizeQuality: 'medium'}).
methods: { then((img) => {
save, check avatar.value = img
}, canvas.value.getContext("2d").drawImage(img, 0, 0, 200, 200)
data() { canvas.value.toBlob(b => {
return { ready: false } console.log(b)
} })
})
} }



watch(props.user, () => {
changeAvatar(props.user.avatar)
})
</script> </script>

||||||
x
 
000:0
Laddar…
Avbryt
Spara