♻️ Use paperclip to store avatar and more
This commit is contained in:
@ -5,13 +5,13 @@
|
||||
|
||||
<div class="banner-container">
|
||||
{{if gt (len .userinfo.Banner) 0}}
|
||||
<img src="/api/avatar/{{.userinfo.Banner}}" alt="Banner" class="banner">
|
||||
<img src="{{.banner}}" alt="Banner" class="banner">
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="left-part name-card">
|
||||
{{if gt (len .userinfo.Avatar) 0}}
|
||||
<img src="/api/avatar/{{.userinfo.Avatar}}" alt="Avatar" class="avatar">
|
||||
<img src="{{.avatar}}" alt="Avatar" class="avatar">
|
||||
{{else}}
|
||||
<div class="avatar empty">
|
||||
<span class="material-symbols-outlined">account_circle</span>
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
<div class="banner-container">
|
||||
{{if gt (len .userinfo.Banner) 0}}
|
||||
<img src="/api/avatar/{{.userinfo.Banner}}" alt="Banner" class="banner">
|
||||
<img src="{{.banner}}" alt="Banner" class="banner">
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="left-part name-card">
|
||||
{{if gt (len .userinfo.Avatar) 0}}
|
||||
<img src="/api/avatar/{{.userinfo.Avatar}}" alt="Avatar" class="avatar">
|
||||
<img src="{{.avatar}}" alt="Avatar" class="avatar">
|
||||
{{else}}
|
||||
<div class="avatar empty">
|
||||
<span class="material-symbols-outlined">account_circle</span>
|
||||
|
@ -9,33 +9,7 @@
|
||||
<div class="responsive-title-gap"></div>
|
||||
|
||||
<div class="personalize-actions">
|
||||
<md-filled-tonal-button class="personalize-action" data-target="avatar">
|
||||
Edit Avatar
|
||||
<span slot="icon" class="material-symbols-outlined">account_circle</span>
|
||||
</md-filled-tonal-button>
|
||||
<input
|
||||
hidden
|
||||
id="avatar-input"
|
||||
class="block-field"
|
||||
name="avatar"
|
||||
type="file"
|
||||
accept="image/*"
|
||||
placeholder="Avatar"
|
||||
>
|
||||
|
||||
<md-filled-tonal-button class="personalize-action" data-target="banner">
|
||||
Edit Banner
|
||||
<span slot="icon" class="material-symbols-outlined">background_replace</span>
|
||||
</md-filled-tonal-button>
|
||||
<input
|
||||
hidden
|
||||
id="banner-input"
|
||||
class="block-field"
|
||||
name="banner"
|
||||
type="file"
|
||||
accept="image/*"
|
||||
placeholder="Banner"
|
||||
>
|
||||
<span>We doesn't support edit avatar / banner through Hydrogen.Passport web yet. Go try our Solian App!</span>
|
||||
</div>
|
||||
|
||||
<form class="action-form" action="/users/me/personalize" method="POST">
|
||||
@ -133,35 +107,4 @@
|
||||
font-size: 20px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.querySelectorAll(".personalize-action").forEach((element) => {
|
||||
element.addEventListener("click", (_) => {
|
||||
document.getElementById(`${element.getAttribute("data-target")}-input`).click();
|
||||
})
|
||||
})
|
||||
|
||||
document.getElementById("avatar-input").addEventListener("input", (evt) => {
|
||||
if (!evt.target.files) return
|
||||
const data = new FormData();
|
||||
data.set("avatar", evt.target.files[0])
|
||||
fetch("/api/users/me/avatar", {
|
||||
method: "PUT",
|
||||
body: data,
|
||||
}).then(() => {
|
||||
location.href = "/users/me"
|
||||
})
|
||||
})
|
||||
document.getElementById("banner-input").addEventListener("input", (evt) => {
|
||||
if (!evt.target.files) return
|
||||
const data = new FormData();
|
||||
data.set("banner", evt.target.files[0])
|
||||
fetch("/api/users/me/banner", {
|
||||
method: "PUT",
|
||||
body: data,
|
||||
}).then(() => {
|
||||
location.href = "/users/me"
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</style>
|
Reference in New Issue
Block a user