fix: 解析 ICS 时缺失 UID 导致全部日程被同时选中

ical-io.js 中 UID 缺失时回退为空字符串, 导致所有事件共享 uid='',
EventList 的 active 判断和 selectedEvent 的 find() 全部命中第一个事件。
改为缺失时调用 genUUID() 生成唯一 UID。
This commit is contained in:
zikai
2026-07-22 04:02:43 +00:00
parent 84dbaf9cd2
commit a475315eb7

View File

@@ -1,5 +1,6 @@
import ICAL from 'ical.js' import ICAL from 'ical.js'
import { pad2, parseISODate } from './date.js' import { pad2, parseISODate } from './date.js'
import { genUUID } from './uuid.js'
// ------------------------------------------------------------------ // // ------------------------------------------------------------------ //
// 时区注册 (ical.js 不内置 IANA 时区) // 时区注册 (ical.js 不内置 IANA 时区)
@@ -77,7 +78,7 @@ function parseEvent(veventComp) {
if (dtstamp) _raw.dtstamp = dtstamp.toICALString() if (dtstamp) _raw.dtstamp = dtstamp.toICALString()
return { return {
uid: veventComp.getFirstPropertyValue('uid') || '', uid: veventComp.getFirstPropertyValue('uid') || genUUID(),
summary: veventComp.getFirstPropertyValue('summary') || '', summary: veventComp.getFirstPropertyValue('summary') || '',
location: veventComp.getFirstPropertyValue('location') || '', location: veventComp.getFirstPropertyValue('location') || '',
description: veventComp.getFirstPropertyValue('description') || '', description: veventComp.getFirstPropertyValue('description') || '',