account refactor

This commit is contained in:
2023-10-17 18:30:41 +03:00
parent 23219ce998
commit d9736b29a4
17 changed files with 91 additions and 186 deletions
+6 -1
View File
@@ -21,5 +21,10 @@
setContext("channel", channel);
setContext("user", user);
</script>
<div class="text-center">
<h1><a class="text-decoration-none" href="{channel.lucentUrl}">{channel.name}</a></h1>
</div>
<div>
<svelte:component this={components[view]} {title} {...data}/>
</div>
<svelte:component this={components[view]} {title} {...data}/>
-1
View File
@@ -1,7 +1,6 @@
<script>
import {getContext} from "svelte";
import SpinnerButton from "../common/SpinnerButton.svelte";
import SuccessAlert from "../common/SuccessAlert.svelte";
const channel = getContext("channel");
let email = "";
+27 -9
View File
@@ -3,23 +3,25 @@
import SpinnerButton from "../common/SpinnerButton.svelte";
import Avatar from "./Avatar.svelte";
import {getContext} from "svelte";
import SuccessAlert from "../common/SuccessAlert.svelte";
const user = getContext("user");
const channel = getContext("channel");
let name = user.name;
let email = user.email;
let errorMessage = "";
let successAlert;
function saveName(e) {
e.preventDefault();
errorMessage = "";
axios
.post("/account/update-name", {
.post(channel.lucentUrl + "/account/update-name", {
name: name,
})
.then((response) => {
// window.reload();
successAlert.show();
})
.catch((error) => {
errorMessage = error.response?.data.error;
@@ -32,11 +34,11 @@
errorMessage = "";
axios
.post("/account/update-email", {
.post(channel.lucentUrl + "/account/update-email", {
email: email,
})
.then((response) => {
// window.reload();
successAlert.show();
})
.catch((error) => {
errorMessage = error.response?.data.error;
@@ -48,22 +50,38 @@
<div class="wrapper-tiny">
<ErrorAlert message={errorMessage}/>
<SuccessAlert bind:this={successAlert} />
<h3 class="header-small mb-5">
<Avatar name={user.name}/>
</h3>
<form on:submit={saveName}>
<div class="input-group mb-3">
<input
type="text"
bind:value={name}
class="form-control"
placeholder="Name"
type="text"
bind:value={name}
class="form-control"
placeholder="Name"
required
/>
<SpinnerButton label="Update"/>
</div>
</form>
<form on:submit={saveEmail}>
<div class="input-group mb-3">
<input
type="email"
bind:value={email}
class="form-control"
placeholder="Email"
required
/>
<SpinnerButton label="Update"/>
</div>
</form>
<div class="list-group">
<a class="list-group-item list-group-item-action" href="{ channel.lucentUrl }/logout">Logout from this device</a>
<a class="list-group-item list-group-item-action" href="{ channel.lucentUrl }/logout">Logout from this
device</a>
</div>
</div>
-44
View File
@@ -1,44 +0,0 @@
export function avatar(name, side = 48) {
const colors = [
"#00AA55",
"#009FD4",
"#B381B3",
"#939393",
"#E3BC00",
"#D47500",
"#DC2A2A",
"#3ede91",
"#377dd4",
"#0256b0",
"#053d82",
"#3d026e",
"#b378e3",
"#c4065c",
"#543208",
"#d97811",
"#0c6b40",
];
let initials = "";
if (name.split(" ").length > 1) {
initials =
name.split(" ")[0].charAt(0).toUpperCase() +
name.split(" ")[1].charAt(0).toUpperCase();
} else {
initials =
name.split(" ")[0].charAt(0).toUpperCase() +
name.split(" ")[0].charAt(1).toUpperCase();
}
let charIndex = name.charCodeAt(1) + name.length;
let colorIndex = charIndex % 19;
return `
<div
class="avatar"
style="background-color:${
colors[colorIndex]
};height: ${side}px;width: ${side}px; font-size:${side / 2}px">
<div class="avatar__letters">${initials}</div>
</div>
`;
}
@@ -1,6 +1,5 @@
<script>
import {getContext} from "svelte";
import Status from "./Status.svelte";
import {getStatus, getStatusList} from "./StatusText";
const channel = getContext("channel");