Browse Source

Merge pull request #17851 from Classic298/feat-toggle-chat-title-in-browser-tab

feat: add toggle to show/hide chat title in browser tab
Tim Jaeryang Baek 1 week ago
parent
commit
11fd0735d1

+ 1 - 1
src/lib/components/chat/Chat.svelte

@@ -2230,7 +2230,7 @@
 
 
 <svelte:head>
 <svelte:head>
 	<title>
 	<title>
-		{$chatTitle
+		{$settings.useChatTitleAsTabTitle !== false && $chatTitle
 			? `${$chatTitle.length > 30 ? `${$chatTitle.slice(0, 30)}...` : $chatTitle} • ${$WEBUI_NAME}`
 			? `${$chatTitle.length > 30 ? `${$chatTitle.slice(0, 30)}...` : $chatTitle} • ${$WEBUI_NAME}`
 			: `${$WEBUI_NAME}`}
 			: `${$WEBUI_NAME}`}
 	</title>
 	</title>

+ 21 - 0
src/lib/components/chat/Settings/Interface.svelte

@@ -66,6 +66,7 @@
 	let chatFadeStreamingText = true;
 	let chatFadeStreamingText = true;
 	let collapseCodeBlocks = false;
 	let collapseCodeBlocks = false;
 	let expandDetails = false;
 	let expandDetails = false;
+	let useChatTitleAsTabTitle = true;
 
 
 	let showFloatingActionButtons = true;
 	let showFloatingActionButtons = true;
 	let floatingActionButtons = null;
 	let floatingActionButtons = null;
@@ -224,6 +225,7 @@
 		temporaryChatByDefault = $settings?.temporaryChatByDefault ?? false;
 		temporaryChatByDefault = $settings?.temporaryChatByDefault ?? false;
 		chatDirection = $settings?.chatDirection ?? 'auto';
 		chatDirection = $settings?.chatDirection ?? 'auto';
 		userLocation = $settings?.userLocation ?? false;
 		userLocation = $settings?.userLocation ?? false;
+		useChatTitleAsTabTitle = $settings?.useChatTitleAsTabTitle ?? true;
 
 
 		notificationSound = $settings?.notificationSound ?? true;
 		notificationSound = $settings?.notificationSound ?? true;
 		notificationSoundAlways = $settings?.notificationSoundAlways ?? false;
 		notificationSoundAlways = $settings?.notificationSoundAlways ?? false;
@@ -329,6 +331,25 @@
 				</div>
 				</div>
 			</div>
 			</div>
 
 
+			<div>
+				<div class=" py-0.5 flex w-full justify-between">
+					<div id="use-chat-title-as-tab-title-label" class=" self-center text-xs">
+						{$i18n.t("Use the chat title as the browser's tab title")}
+					</div>
+
+					<div class="flex items-center gap-2 p-1">
+						<Switch
+							ariaLabelledbyId="use-chat-title-as-tab-title-label"
+							tooltip={true}
+							bind:state={useChatTitleAsTabTitle}
+							on:change={() => {
+								saveSettings({ useChatTitleAsTabTitle });
+							}}
+						/>
+					</div>
+				</div>
+			</div>
+
 			<div>
 			<div>
 				<div class="py-0.5 flex w-full justify-between">
 				<div class="py-0.5 flex w-full justify-between">
 					<div id="notification-sound-label" class=" self-center text-xs">
 					<div id="notification-sound-label" class=" self-center text-xs">

+ 1 - 0
src/lib/stores/index.ts

@@ -184,6 +184,7 @@ type Settings = {
 	notificationEnabled?: boolean;
 	notificationEnabled?: boolean;
 	highContrastMode?: boolean;
 	highContrastMode?: boolean;
 	title?: TitleSettings;
 	title?: TitleSettings;
+	useChatTitleAsTabTitle?: boolean;
 	splitLargeDeltas?: boolean;
 	splitLargeDeltas?: boolean;
 	chatDirection?: 'LTR' | 'RTL' | 'auto';
 	chatDirection?: 'LTR' | 'RTL' | 'auto';
 	ctrlEnterToSend?: boolean;
 	ctrlEnterToSend?: boolean;