diff --git a/web/src/views/UserMemoryDetail/components/PerceptualLastInfo.tsx b/web/src/views/UserMemoryDetail/components/PerceptualLastInfo.tsx index b3bbd7ba..1af50b3e 100644 --- a/web/src/views/UserMemoryDetail/components/PerceptualLastInfo.tsx +++ b/web/src/views/UserMemoryDetail/components/PerceptualLastInfo.tsx @@ -1,8 +1,8 @@ /* * @Author: ZhaoYing * @Date: 2026-02-03 18:32:23 - * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-03-17 17:02:46 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2026-03-17 17:15:14 */ import { type FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -90,10 +90,25 @@ const PerceptualLastInfo: FC<{ type: 'last_visual' | 'last_listen' | 'last_text' }) } - // const handleDownload = () => { - // if (!data.file_path) return - // window.open(data.file_path, '_blank') - // } + const handleDownload = async () => { + if (!data.file_path) return + if (data.file_path.includes('.redbearai.') || data.file_path.includes('.memorybear.')) { + try { + const res = await fetch(data.file_path) + const blob = await res.blob() + const url = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = data.file_name || 'download' + a.click() + URL.revokeObjectURL(url) + } catch { + window.open(data.file_path, '_blank') + } + } else { + window.open(data.file_path, '_blank') + } + } return ( ) : ( - {data.file_name} +
{data.file_name}
) ) : (
{t('empty.tableEmpty')}