enh: model url search param
This commit is contained in:
		
							parent
							
								
									81f62d5bff
								
							
						
					
					
						commit
						ce917eba81
					
				|  | @ -85,6 +85,8 @@ | |||
| 	let processing = ''; | ||||
| 	let messagesContainerElement: HTMLDivElement; | ||||
| 
 | ||||
| 	let navbarElement; | ||||
| 
 | ||||
| 	let showEventConfirmation = false; | ||||
| 	let eventConfirmationTitle = ''; | ||||
| 	let eventConfirmationMessage = ''; | ||||
|  | @ -437,7 +439,29 @@ | |||
| 		if ($page.url.searchParams.get('models')) { | ||||
| 			selectedModels = $page.url.searchParams.get('models')?.split(','); | ||||
| 		} else if ($page.url.searchParams.get('model')) { | ||||
| 			selectedModels = $page.url.searchParams.get('model')?.split(','); | ||||
| 			const urlModels = $page.url.searchParams.get('model')?.split(','); | ||||
| 
 | ||||
| 			if (urlModels.length === 1) { | ||||
| 				const m = $models.find((m) => m.id === urlModels[0]); | ||||
| 				if (!m) { | ||||
| 					const modelSelectorButton = document.getElementById('model-selector-0-button'); | ||||
| 					if (modelSelectorButton) { | ||||
| 						modelSelectorButton.click(); | ||||
| 						await tick(); | ||||
| 
 | ||||
| 						const modelSelectorInput = document.getElementById('model-search-input'); | ||||
| 						if (modelSelectorInput) { | ||||
| 							modelSelectorInput.focus(); | ||||
| 							modelSelectorInput.value = urlModels[0]; | ||||
| 							modelSelectorInput.dispatchEvent(new Event('input')); | ||||
| 						} | ||||
| 					} | ||||
| 				} else { | ||||
| 					selectedModels = urlModels; | ||||
| 				} | ||||
| 			} else { | ||||
| 				selectedModels = urlModels; | ||||
| 			} | ||||
| 		} else if ($settings?.models) { | ||||
| 			selectedModels = $settings?.models; | ||||
| 		} else if ($config?.default_models) { | ||||
|  | @ -2051,6 +2075,7 @@ | |||
| 		{/if} | ||||
| 
 | ||||
| 		<Navbar | ||||
| 			bind:this={navbarElement} | ||||
| 			chat={{ | ||||
| 				id: $chatId, | ||||
| 				chat: { | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ | |||
| 			<div class="overflow-hidden w-full"> | ||||
| 				<div class="mr-1 max-w-full"> | ||||
| 					<Selector | ||||
| 						id={`${selectedModelIdx}`} | ||||
| 						placeholder={$i18n.t('Select a model')} | ||||
| 						items={$models.map((model) => ({ | ||||
| 							value: model.id, | ||||
|  |  | |||
|  | @ -25,6 +25,7 @@ | |||
| 	const i18n = getContext('i18n'); | ||||
| 	const dispatch = createEventDispatcher(); | ||||
| 
 | ||||
| 	export let id = ''; | ||||
| 	export let value = ''; | ||||
| 	export let placeholder = 'Select a model'; | ||||
| 	export let searchEnabled = true; | ||||
|  | @ -229,7 +230,11 @@ | |||
| 	}} | ||||
| 	closeFocus={false} | ||||
| > | ||||
| 	<DropdownMenu.Trigger class="relative w-full font-primary" aria-label={placeholder}> | ||||
| 	<DropdownMenu.Trigger | ||||
| 		class="relative w-full font-primary" | ||||
| 		aria-label={placeholder} | ||||
| 		id="model-selector-{id}-button" | ||||
| 	> | ||||
| 		<div | ||||
| 			class="flex w-full text-left px-0.5 outline-none bg-transparent truncate text-lg font-medium placeholder-gray-400 focus:outline-none" | ||||
| 		> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue