forked from open-webui/open-webui
refac: move generateInitialsImage function to utils
This commit is contained in:
parent
4195af4942
commit
0c43897f3d
3 changed files with 25 additions and 24 deletions
|
@ -6,7 +6,7 @@
|
||||||
import { updateUserProfile } from '$lib/apis/auths';
|
import { updateUserProfile } from '$lib/apis/auths';
|
||||||
|
|
||||||
import UpdatePassword from './Account/UpdatePassword.svelte';
|
import UpdatePassword from './Account/UpdatePassword.svelte';
|
||||||
import { getGravatarUrl } from '$lib/apis/utils';
|
import { generateInitialsImage } from '$lib/utils';
|
||||||
import { copyToClipboard } from '$lib/utils';
|
import { copyToClipboard } from '$lib/utils';
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
@ -19,28 +19,6 @@
|
||||||
let JWTTokenCopied = false;
|
let JWTTokenCopied = false;
|
||||||
let profileImageInputElement: HTMLInputElement;
|
let profileImageInputElement: HTMLInputElement;
|
||||||
|
|
||||||
const generateInitialsImage = (name) => {
|
|
||||||
const canvas = document.createElement('canvas');
|
|
||||||
const ctx = canvas.getContext('2d');
|
|
||||||
canvas.width = 100;
|
|
||||||
canvas.height = 100;
|
|
||||||
|
|
||||||
ctx.fillStyle = '#F39C12';
|
|
||||||
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
||||||
|
|
||||||
ctx.fillStyle = '#FFFFFF';
|
|
||||||
ctx.font = '40px Helvetica';
|
|
||||||
ctx.textAlign = 'center';
|
|
||||||
ctx.textBaseline = 'middle';
|
|
||||||
const initials = name
|
|
||||||
.split(' ')
|
|
||||||
.map((word) => word[0])
|
|
||||||
.join('');
|
|
||||||
ctx.fillText(initials.toUpperCase(), canvas.width / 2, canvas.height / 2);
|
|
||||||
|
|
||||||
return canvas.toDataURL();
|
|
||||||
};
|
|
||||||
|
|
||||||
const submitHandler = async () => {
|
const submitHandler = async () => {
|
||||||
const isInitialsImage: boolean =
|
const isInitialsImage: boolean =
|
||||||
profileImageUrl === generateInitialsImage($user.name) || profileImageUrl === '';
|
profileImageUrl === generateInitialsImage($user.name) || profileImageUrl === '';
|
||||||
|
|
|
@ -96,6 +96,28 @@ export const getGravatarURL = (email) => {
|
||||||
return `https://www.gravatar.com/avatar/${hash}`;
|
return `https://www.gravatar.com/avatar/${hash}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const generateInitialsImage = (name) => {
|
||||||
|
const canvas = document.createElement('canvas');
|
||||||
|
const ctx = canvas.getContext('2d');
|
||||||
|
canvas.width = 100;
|
||||||
|
canvas.height = 100;
|
||||||
|
|
||||||
|
ctx.fillStyle = '#F39C12';
|
||||||
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
||||||
|
|
||||||
|
ctx.fillStyle = '#FFFFFF';
|
||||||
|
ctx.font = '40px Helvetica';
|
||||||
|
ctx.textAlign = 'center';
|
||||||
|
ctx.textBaseline = 'middle';
|
||||||
|
const initials = name
|
||||||
|
.split(' ')
|
||||||
|
.map((word) => word[0])
|
||||||
|
.join('');
|
||||||
|
ctx.fillText(initials.toUpperCase(), canvas.width / 2, canvas.height / 2);
|
||||||
|
|
||||||
|
return canvas.toDataURL();
|
||||||
|
};
|
||||||
|
|
||||||
export const copyToClipboard = (text) => {
|
export const copyToClipboard = (text) => {
|
||||||
if (!navigator.clipboard) {
|
if (!navigator.clipboard) {
|
||||||
const textArea = document.createElement('textarea');
|
const textArea = document.createElement('textarea');
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
import { WEBUI_NAME, config, user } from '$lib/stores';
|
import { WEBUI_NAME, config, user } from '$lib/stores';
|
||||||
import { onMount, getContext } from 'svelte';
|
import { onMount, getContext } from 'svelte';
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
|
import { generateInitialsImage } from '$lib/utils';
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const signUpHandler = async () => {
|
const signUpHandler = async () => {
|
||||||
const sessionUser = await userSignUp(name, email, password).catch((error) => {
|
const sessionUser = await userSignUp(name, email, password, generateInitialsImage(name)).catch((error) => {
|
||||||
toast.error(error);
|
toast.error(error);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue