|
13 | 13 | /** @type {string} */ |
14 | 14 | export let galleryStyles = ''; |
15 | 15 |
|
16 | | - /** @type {string} */ |
17 | | - export let messageId; |
| 16 | + /** @type {any} */ |
| 17 | + export let message; |
| 18 | +
|
| 19 | + /** @type {boolean} */ |
| 20 | + export let appendImage = false; |
18 | 21 |
|
19 | 22 | /** @type {() => Promise<any>} */ |
20 | 23 | export let fetchFiles = () => Promise.resolve([]); |
|
25 | 28 | /** @type {import('$fileTypes').AudioFileModel[]} */ |
26 | 29 | let audioFiles = []; |
27 | 30 |
|
28 | | - onMount(() => { |
| 31 | + onMount(async () => { |
29 | 32 | if (fetchFiles != null && fetchFiles != undefined) { |
30 | | - fetchFiles().then(data => { |
31 | | - // @ts-ignore |
32 | | - const validFiles = data?.filter(item => !!item.file_url) || []; |
33 | | - // @ts-ignore |
34 | | - textFiles = validFiles.filter(item => !isAudio(item.file_extension)).map(item => { |
35 | | - return { |
36 | | - file_name: item.file_name, |
37 | | - file_extension: item.file_extension, |
38 | | - file_data: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`, |
39 | | - file_download_url: isExternalUrl(item.file_download_url) ? item.file_download_url : `${PUBLIC_SERVICE_URL}${item.file_download_url}?access_token=${$userStore?.token}` |
40 | | - }; |
41 | | - }); |
42 | | - // @ts-ignore |
43 | | - audioFiles = validFiles.filter(item => isAudio(item.file_extension)).map(item => { |
44 | | - return { |
45 | | - name: item.file_name, |
46 | | - cover: AUDIO_ICON, |
47 | | - artist: '', |
48 | | - url: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}` |
49 | | - }; |
50 | | - }); |
| 33 | + const res = await fetchFiles(); |
| 34 | + // @ts-ignore |
| 35 | + const validFiles = res?.filter(item => !!item.file_url) || []; |
| 36 | + // @ts-ignore |
| 37 | + textFiles = validFiles.filter(item => !isAudio(item.file_extension)).map(item => { |
| 38 | + return { |
| 39 | + file_name: item.file_name, |
| 40 | + file_extension: item.file_extension, |
| 41 | + file_data: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`, |
| 42 | + file_download_url: isExternalUrl(item.file_download_url) ? item.file_download_url : `${PUBLIC_SERVICE_URL}${item.file_download_url}?access_token=${$userStore?.token}` |
| 43 | + }; |
| 44 | + }); |
| 45 | + // @ts-ignore |
| 46 | + audioFiles = validFiles.filter(item => isAudio(item.file_extension)).map(item => { |
| 47 | + return { |
| 48 | + name: item.file_name, |
| 49 | + cover: AUDIO_ICON, |
| 50 | + artist: '', |
| 51 | + url: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}` |
| 52 | + }; |
51 | 53 | }); |
52 | 54 | } |
| 55 | +
|
| 56 | + if (appendImage && message?.data) { |
| 57 | + textFiles = [...textFiles, { |
| 58 | + file_name: 'data', |
| 59 | + file_extension: '', |
| 60 | + file_data: message?.data |
| 61 | + }]; |
| 62 | + } |
53 | 63 | }); |
54 | 64 |
|
55 | 65 | /** @param {number} idx */ |
|
71 | 81 | onDownload={idx => handleDownloadFile(idx)} |
72 | 82 | /> |
73 | 83 | <AudioGallery |
74 | | - id={messageId} |
| 84 | + id={message?.message_id} |
75 | 85 | containerClasses={galleryClasses} |
76 | 86 | containerStyles={galleryStyles} |
77 | 87 | audios={audioFiles} |
|
0 commit comments