Skip to content

Commit 3a67039

Browse files
committed
Fix release notes loading
1 parent 88f5c2c commit 3a67039

File tree

2 files changed

+25
-17
lines changed

2 files changed

+25
-17
lines changed

components/targets/ReleaseNotes.vue

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,30 @@ const firmwareStore = useFirmwareStore()
2929
3030
const releaseNotes = ref<string | undefined>(undefined)
3131
32-
watch(() => firmwareStore.selectedFirmware, async () => {
32+
const renderReleaseNotes = async () => {
3333
const notes = firmwareStore.selectedFirmware?.release_notes || ''
34-
if (notes.length < 1) {
34+
if (!notes || notes.trim().length < 1) {
3535
releaseNotes.value = undefined
36-
console.log('No release notes')
36+
return
3737
}
38-
else {
39-
console.log('Parsing release notes markdown')
40-
const output = await marked(notes)
41-
releaseNotes.value = output
42-
.replaceAll('<p>', '<blockquote class="p-4 my-4 border-s-4 border-meshtastic bg-gray-800">')
43-
.replaceAll('</p>', '</blockquote>')
44-
.replaceAll('<br>', '')
45-
.replaceAll('[!CAUTION]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
46-
.replaceAll('[!IMPORTANT]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
47-
.replaceAll('[!WARNING]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
48-
.replaceAll('[!NOTE]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" /></svg>')
49-
}
50-
})
38+
39+
const output = await marked(notes)
40+
releaseNotes.value = output
41+
.replaceAll('<p>', '<blockquote class="p-4 my-4 border-s-4 border-meshtastic bg-gray-800">')
42+
.replaceAll('</p>', '</blockquote>')
43+
.replaceAll('<br>', '')
44+
.replaceAll('[!CAUTION]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
45+
.replaceAll('[!IMPORTANT]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
46+
.replaceAll('[!WARNING]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>')
47+
.replaceAll('[!NOTE]', '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" /></svg>')
48+
}
49+
50+
// Re-render whenever the selected firmware or its release_notes change
51+
watch(
52+
() => firmwareStore.selectedFirmware?.release_notes,
53+
() => { renderReleaseNotes() },
54+
{ immediate: true },
55+
)
5156
</script>
5257

5358
<style scoped>

stores/firmwareStore.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,10 @@ export const useFirmwareStore = defineStore('firmware', {
166166
// Fetch release notes for each firmware version from meshtastic.github.io
167167
const fetchReleaseNotesForList = async (releases: FirmwareResource[]) => {
168168
for (const release of releases) {
169-
release.release_notes = await fetchReleaseNotes(release.id)
169+
// Only fetch if we don't already have release notes from the API
170+
if (!release.release_notes || release.release_notes.trim().length === 0) {
171+
release.release_notes = await fetchReleaseNotes(release.id)
172+
}
170173
}
171174
}
172175

0 commit comments

Comments
 (0)