mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-08-10 02:33:04 +02:00
Fix some misc. frontend correctness bugs
This commit is contained in:
@@ -131,9 +131,23 @@ export function MapView({ contacts, focusedKey }: MapViewProps) {
|
||||
|
||||
// Store ref for a marker
|
||||
const setMarkerRef = useCallback((key: string, ref: LeafletCircleMarker | null) => {
|
||||
if (ref === null) {
|
||||
delete markerRefs.current[key];
|
||||
return;
|
||||
}
|
||||
|
||||
markerRefs.current[key] = ref;
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const currentKeys = new Set(mappableContacts.map((contact) => contact.public_key));
|
||||
for (const key of Object.keys(markerRefs.current)) {
|
||||
if (!currentKeys.has(key)) {
|
||||
delete markerRefs.current[key];
|
||||
}
|
||||
}
|
||||
}, [mappableContacts]);
|
||||
|
||||
// Open popup for focused contact after map is ready
|
||||
useEffect(() => {
|
||||
if (focusedContact && markerRefs.current[focusedContact.public_key]) {
|
||||
|
||||
@@ -373,7 +373,22 @@ export function MessageList({
|
||||
}
|
||||
}
|
||||
|
||||
setResendableIds(newResendable);
|
||||
setResendableIds((prev) => {
|
||||
if (prev.size === newResendable.size) {
|
||||
let changed = false;
|
||||
for (const id of newResendable) {
|
||||
if (!prev.has(id)) {
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!changed) {
|
||||
return prev;
|
||||
}
|
||||
}
|
||||
|
||||
return newResendable;
|
||||
});
|
||||
|
||||
return () => {
|
||||
for (const timer of timers.values()) clearTimeout(timer);
|
||||
|
||||
Reference in New Issue
Block a user