浏览代码

Merge pull request #1657 from open-webui/main

dev
Timothy Jaeryang Baek 1 年之前
父节点
当前提交
83efebe06b
共有 1 个文件被更改,包括 29 次插入4 次删除
  1. 29 4
      src/lib/components/chat/ShareChatModal.svelte

+ 29 - 4
src/lib/components/chat/ShareChatModal.svelte

@@ -134,11 +134,36 @@
 							<button
 							<button
 								class=" self-center flex items-center gap-1 px-3.5 py-2 rounded-xl text-sm font-medium bg-emerald-600 hover:bg-emerald-500 text-white"
 								class=" self-center flex items-center gap-1 px-3.5 py-2 rounded-xl text-sm font-medium bg-emerald-600 hover:bg-emerald-500 text-white"
 								type="button"
 								type="button"
-								on:pointerdown={() => {
-									shareLocalChat();
-								}}
 								on:click={async () => {
 								on:click={async () => {
-									copyToClipboard(shareUrl);
+									const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
+
+									if (isSafari) {
+										// Oh, Safari, you're so special, let's give you some extra love and attention
+										console.log('isSafari');
+
+										const getUrlPromise = async () => {
+											const url = await shareLocalChat();
+											return new Blob([url], { type: 'text/plain' });
+										};
+
+										navigator.clipboard
+											.write([
+												new ClipboardItem({
+													'text/plain': getUrlPromise()
+												})
+											])
+											.then(() => {
+												console.log('Async: Copying to clipboard was successful!');
+												return true;
+											})
+											.catch((error) => {
+												console.error('Async: Could not copy text: ', error);
+												return false;
+											});
+									} else {
+										copyToClipboard(await shareLocalChat());
+									}
+
 									toast.success($i18n.t('Copied shared chat URL to clipboard!'));
 									toast.success($i18n.t('Copied shared chat URL to clipboard!'));
 									show = false;
 									show = false;
 								}}
 								}}