forked from open-webui/open-webui
		
	feat: delete shared chat link
This commit is contained in:
		
							parent
							
								
									dcac8a773b
								
							
						
					
					
						commit
						865c268312
					
				
					 2 changed files with 77 additions and 50 deletions
				
			
		|  | @ -226,16 +226,17 @@ async def share_chat_by_id(id: str, user=Depends(get_current_user)): | |||
| ############################ | ||||
| 
 | ||||
| 
 | ||||
| @router.delete("/{share_id}/share", response_model=Optional[bool]) | ||||
| async def delete_shared_chat_by_id(share_id: str, user=Depends(get_current_user)): | ||||
|     chat = Chats.get_chat_by_id_and_user_id(share_id, user.id) | ||||
| @router.delete("/{id}/share", response_model=Optional[bool]) | ||||
| async def delete_shared_chat_by_id(id: str, user=Depends(get_current_user)): | ||||
|     chat = Chats.get_chat_by_id_and_user_id(id, user.id) | ||||
|     if chat: | ||||
|         if not chat.share_id: | ||||
|             return False | ||||
|         result = Chats.delete_shared_chat_by_chat_id(chat.id) | ||||
|         update_result = Chats.update_chat_share_id_by_id(chat.id, None) | ||||
| 
 | ||||
|         return result and update_result | ||||
|         result = Chats.delete_shared_chat_by_chat_id(id) | ||||
|         update_result = Chats.update_chat_share_id_by_id(id, None) | ||||
| 
 | ||||
|         return result and update_result != None | ||||
|     else: | ||||
|         raise HTTPException( | ||||
|             status_code=status.HTTP_401_UNAUTHORIZED, | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| 	const { saveAs } = fileSaver; | ||||
| 
 | ||||
| 	import { toast } from 'svelte-sonner'; | ||||
| 	import { getChatById, shareChatById } from '$lib/apis/chats'; | ||||
| 	import { deleteSharedChatById, getChatById, shareChatById } from '$lib/apis/chats'; | ||||
| 	import { chatId, modelfiles } from '$lib/stores'; | ||||
| 	import { copyToClipboard } from '$lib/utils'; | ||||
| 
 | ||||
|  | @ -28,6 +28,7 @@ | |||
| 
 | ||||
| 		toast.success($i18n.t('Copied shared conversation URL to clipboard!')); | ||||
| 		copyToClipboard(chatShareUrl); | ||||
| 		chat = await getChatById(localStorage.token, $chatId); | ||||
| 	}; | ||||
| 
 | ||||
| 	const shareChat = async () => { | ||||
|  | @ -78,6 +79,7 @@ | |||
| 
 | ||||
| 	onMount(async () => { | ||||
| 		chat = await getChatById(localStorage.token, $chatId); | ||||
| 		console.log(chat); | ||||
| 	}); | ||||
| </script> | ||||
| 
 | ||||
|  | @ -105,10 +107,28 @@ | |||
| 		</div> | ||||
| 		<hr class=" dark:border-gray-800" /> | ||||
| 
 | ||||
| 		{#if chat} | ||||
| 			<div class="px-4 pt-4 pb-5 w-full flex flex-col justify-center"> | ||||
| 				<div class=" text-sm dark:text-gray-300 mb-1"> | ||||
| 				Messages you send after creating your link won't be shared. Anyone with the URL will be able | ||||
| 				to view the shared chat. | ||||
| 					{#if chat.share_id} | ||||
| 						<a href="/s/{chat.share_id}" target="_blank" | ||||
| 							>You have shared this chat <span class=" underline">before</span>.</a | ||||
| 						> | ||||
| 						Click here to | ||||
| 						<button | ||||
| 							class="underline" | ||||
| 							on:click={async () => { | ||||
| 								const res = await deleteSharedChatById(localStorage.token, $chatId); | ||||
| 
 | ||||
| 								if (res) { | ||||
| 									chat = await getChatById(localStorage.token, $chatId); | ||||
| 								} | ||||
| 							}}>delete this link</button | ||||
| 						> and create a new shared link. | ||||
| 					{:else} | ||||
| 						Messages you send after creating your link won't be shared. Anyone with the URL will be | ||||
| 						able to view the shared chat. | ||||
| 					{/if} | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="flex justify-end"> | ||||
|  | @ -134,7 +154,12 @@ | |||
| 								}} | ||||
| 							> | ||||
| 								<Link /> | ||||
| 
 | ||||
| 								{#if chat.share_id} | ||||
| 									{$i18n.t('Update and Copy Link')} | ||||
| 								{:else} | ||||
| 									{$i18n.t('Copy Link')} | ||||
| 								{/if} | ||||
| 							</button> | ||||
| 						</div> | ||||
| 						<div class="flex gap-1 mt-1.5"> | ||||
|  | @ -153,5 +178,6 @@ | |||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		{/if} | ||||
| 	</div> | ||||
| </Modal> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek