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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Danny Liu
						Danny Liu