Require explicit persisted acknowledgement of notifications
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
export function mergeServerNotifications(current,rows) {
|
||||
if(!Array.isArray(rows)||rows.some(row=>typeof row?.id!=='string'||typeof row.baslik!=='string'||typeof row.metin!=='string'))throw new Error('Bildirim listesi geçersiz.');
|
||||
const remote=rows.map(row=>({id:'server:'+row.id,serverId:row.id,title:row.baslik,text:row.metin,
|
||||
time:new Date(row.zaman).toLocaleString('tr-TR'),read:!!row.okundu,ikn:row.ikn}));
|
||||
return [...remote,...current.filter(row=>!row.serverId)].slice(0,80);
|
||||
}
|
||||
export async function acknowledgeNotifications(snapshot,request) {
|
||||
const unread=snapshot.filter(row=>!row.read),ids=unread.filter(row=>row.serverId).map(row=>row.serverId);
|
||||
if(ids.length){const result=await request(ids);if(result?.success!==true||result.okundu!==ids.length)throw new Error('Bazı bildirimler kaydedilemedi. Listeyi yenileyip tekrar deneyin.');}
|
||||
return new Set(unread.map(row=>row.id));
|
||||
}
|
||||
Reference in New Issue
Block a user