forked from open-webui/open-webui
		
	refac
This commit is contained in:
		
							parent
							
								
									e49e04c56a
								
							
						
					
					
						commit
						7c5f6d71b3
					
				
					 3 changed files with 31 additions and 36 deletions
				
			
		|  | @ -319,7 +319,7 @@ export const updateJWTExpiresDuration = async (token: string, duration: string) | ||||||
| 	return res; | 	return res; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export const createApiKey = async (token: string) => { | export const createAPIKey = async (token: string) => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
| 
 | 
 | ||||||
| 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | ||||||
|  | @ -341,10 +341,10 @@ export const createApiKey = async (token: string) => { | ||||||
| 	if (error) { | 	if (error) { | ||||||
| 		throw error; | 		throw error; | ||||||
| 	} | 	} | ||||||
| 	return res; | 	return res.api_key; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export const getApiKey = async (token: string) => { | export const getAPIKey = async (token: string) => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
| 
 | 
 | ||||||
| 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | ||||||
|  | @ -366,10 +366,10 @@ export const getApiKey = async (token: string) => { | ||||||
| 	if (error) { | 	if (error) { | ||||||
| 		throw error; | 		throw error; | ||||||
| 	} | 	} | ||||||
| 	return res; | 	return res.api_key; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export const deleteApiKey = async (token: string) => { | export const deleteAPIKey = async (token: string) => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
| 
 | 
 | ||||||
| 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | 	const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, { | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| 	import { onMount, getContext } from 'svelte'; | 	import { onMount, getContext } from 'svelte'; | ||||||
| 
 | 
 | ||||||
| 	import { user } from '$lib/stores'; | 	import { user } from '$lib/stores'; | ||||||
| 	import { updateUserProfile, createApiKey } from '$lib/apis/auths'; | 	import { updateUserProfile, createAPIKey, getAPIKey } from '$lib/apis/auths'; | ||||||
| 
 | 
 | ||||||
| 	import UpdatePassword from './Account/UpdatePassword.svelte'; | 	import UpdatePassword from './Account/UpdatePassword.svelte'; | ||||||
| 	import { getGravatarUrl } from '$lib/apis/utils'; | 	import { getGravatarUrl } from '$lib/apis/utils'; | ||||||
|  | @ -15,11 +15,14 @@ | ||||||
| 
 | 
 | ||||||
| 	let profileImageUrl = ''; | 	let profileImageUrl = ''; | ||||||
| 	let name = ''; | 	let name = ''; | ||||||
|  | 
 | ||||||
| 	let showJWTToken = false; | 	let showJWTToken = false; | ||||||
| 	let JWTTokenCopied = false; | 	let JWTTokenCopied = false; | ||||||
| 	let showApiKey = false; | 
 | ||||||
| 	let ApiKeyCopied = false; | 	let APIKey = ''; | ||||||
| 	let localApiKey = localStorage.apiKey; | 	let showAPIKey = false; | ||||||
|  | 	let APIKeyCopied = false; | ||||||
|  | 
 | ||||||
| 	let profileImageInputElement: HTMLInputElement; | 	let profileImageInputElement: HTMLInputElement; | ||||||
| 
 | 
 | ||||||
| 	const submitHandler = async () => { | 	const submitHandler = async () => { | ||||||
|  | @ -36,20 +39,23 @@ | ||||||
| 		return false; | 		return false; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	const createApiKeyHandler = async () => { | 	const createAPIKeyHandler = async () => { | ||||||
| 		const apiKey = await createApiKey(localStorage.token); | 		APIKey = await createAPIKey(localStorage.token); | ||||||
| 		if (apiKey) { | 		if (APIKey) { | ||||||
| 			localApiKey = apiKey['api_key']; |  | ||||||
| 			localStorage.apiKey = localApiKey; |  | ||||||
| 			toast.success($i18n.t('API Key created.')); | 			toast.success($i18n.t('API Key created.')); | ||||||
| 		} else { | 		} else { | ||||||
| 			toast.error($i18n.t('Failed to create API Key.')); | 			toast.error($i18n.t('Failed to create API Key.')); | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	onMount(() => { | 	onMount(async () => { | ||||||
| 		name = $user.name; | 		name = $user.name; | ||||||
| 		profileImageUrl = $user.profile_image_url; | 		profileImageUrl = $user.profile_image_url; | ||||||
|  | 
 | ||||||
|  | 		APIKey = await getAPIKey(localStorage.token).catch((error) => { | ||||||
|  | 			console.log(error); | ||||||
|  | 			return ''; | ||||||
|  | 		}); | ||||||
| 	}); | 	}); | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
|  | @ -293,18 +299,18 @@ | ||||||
| 					<div class="flex w-full"> | 					<div class="flex w-full"> | ||||||
| 						<input | 						<input | ||||||
| 							class="w-full rounded-l-lg py-1.5 pl-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none" | 							class="w-full rounded-l-lg py-1.5 pl-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none" | ||||||
| 							type={showApiKey ? 'text' : 'password'} | 							type={showAPIKey ? 'text' : 'password'} | ||||||
| 							value={localApiKey} | 							value={APIKey} | ||||||
| 							disabled | 							disabled | ||||||
| 						/> | 						/> | ||||||
| 
 | 
 | ||||||
| 						<button | 						<button | ||||||
| 							class="px-2 transition rounded-r-lg dark:bg-gray-800" | 							class="px-2 transition rounded-r-lg dark:bg-gray-800" | ||||||
| 							on:click={() => { | 							on:click={() => { | ||||||
| 								showApiKey = !showApiKey; | 								showAPIKey = !showAPIKey; | ||||||
| 							}} | 							}} | ||||||
| 						> | 						> | ||||||
| 							{#if showApiKey} | 							{#if showAPIKey} | ||||||
| 								<svg | 								<svg | ||||||
| 									xmlns="http://www.w3.org/2000/svg" | 									xmlns="http://www.w3.org/2000/svg" | ||||||
| 									viewBox="0 0 16 16" | 									viewBox="0 0 16 16" | ||||||
|  | @ -341,14 +347,14 @@ | ||||||
| 					<button | 					<button | ||||||
| 						class="ml-1.5 px-1.5 py-1 hover:bg-gray-800 transition rounded-lg" | 						class="ml-1.5 px-1.5 py-1 hover:bg-gray-800 transition rounded-lg" | ||||||
| 						on:click={() => { | 						on:click={() => { | ||||||
| 							copyToClipboard(localApiKey); | 							copyToClipboard(APIKey); | ||||||
| 							ApiKeyCopied = true; | 							APIKeyCopied = true; | ||||||
| 							setTimeout(() => { | 							setTimeout(() => { | ||||||
| 								ApiKeyCopied = false; | 								APIKeyCopied = false; | ||||||
| 							}, 2000); | 							}, 2000); | ||||||
| 						}} | 						}} | ||||||
| 					> | 					> | ||||||
| 						{#if ApiKeyCopied} | 						{#if APIKeyCopied} | ||||||
| 							<svg | 							<svg | ||||||
| 								xmlns="http://www.w3.org/2000/svg" | 								xmlns="http://www.w3.org/2000/svg" | ||||||
| 								viewBox="0 0 20 20" | 								viewBox="0 0 20 20" | ||||||
|  | @ -385,7 +391,7 @@ | ||||||
| 					<button | 					<button | ||||||
| 						class=" px-1.5 py-1 hover:bg-gray-800 transition rounded-lg" | 						class=" px-1.5 py-1 hover:bg-gray-800 transition rounded-lg" | ||||||
| 						on:click={() => { | 						on:click={() => { | ||||||
| 							createApiKeyHandler(); | 							createAPIKeyHandler(); | ||||||
| 						}} | 						}} | ||||||
| 					> | 					> | ||||||
| 						<svg | 						<svg | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| <script> | <script> | ||||||
| 	import { goto } from '$app/navigation'; | 	import { goto } from '$app/navigation'; | ||||||
| 	import { userSignIn, userSignUp, getApiKey } from '$lib/apis/auths'; | 	import { userSignIn, userSignUp } from '$lib/apis/auths'; | ||||||
| 	import Spinner from '$lib/components/common/Spinner.svelte'; | 	import Spinner from '$lib/components/common/Spinner.svelte'; | ||||||
| 	import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants'; | 	import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants'; | ||||||
| 	import { WEBUI_NAME, config, user } from '$lib/stores'; | 	import { WEBUI_NAME, config, user } from '$lib/stores'; | ||||||
|  | @ -27,17 +27,6 @@ | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	const setApiKey = async (token) => { |  | ||||||
| 		const apiKey = await getApiKey(token).catch((error) => { |  | ||||||
| 			toast.error(error); |  | ||||||
| 			return null; |  | ||||||
| 		}); |  | ||||||
| 
 |  | ||||||
| 		if (apiKey) { |  | ||||||
| 			localStorage.apiKey = apiKey['api-key']; |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| 
 |  | ||||||
| 	const signInHandler = async () => { | 	const signInHandler = async () => { | ||||||
| 		const sessionUser = await userSignIn(email, password).catch((error) => { | 		const sessionUser = await userSignIn(email, password).catch((error) => { | ||||||
| 			toast.error(error); | 			toast.error(error); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek