handy online tools for AT Protocol boat.kelinci.net
atproto bluesky atcute typescript solidjs
20
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: don't make use of some newer js features

Mary 38611b0f c6dc03c7

+21 -3
+21 -3
src/views/identity/plc-oplogs.tsx
··· 100 100 {(plcLogs) => { 101 101 const lastActiveEntry = plcLogs.findLast((entry) => !entry.nullified); 102 102 103 - const grouped = Map.groupBy(createOperationHistory(plcLogs).reverse(), (item) => item.orig) 104 - .entries() 105 - .toArray(); 103 + const opHistory = createOperationHistory(plcLogs).reverse(); 104 + const grouped = Array.from(groupBy(opHistory, (item) => item.orig)); 106 105 107 106 const renderDiffItem = (diff: DiffEntry) => { 108 107 const nullified = diff.orig.nullified; ··· 312 311 }; 313 312 314 313 export default PlcOperationLogPage; 314 + 315 + const groupBy = <K, T>(items: T[], keyFn: (item: T, index: number) => K): Map<K, T[]> => { 316 + const map = new Map<K, T[]>(); 317 + 318 + for (let idx = 0, len = items.length; idx < len; idx++) { 319 + const val = items[idx]; 320 + const key = keyFn(val, idx); 321 + 322 + const list = map.get(key); 323 + 324 + if (list !== undefined) { 325 + list.push(val); 326 + } else { 327 + map.set(key, [val]); 328 + } 329 + } 330 + 331 + return map; 332 + }; 315 333 316 334 type DiffEntry = 317 335 | {