diff --git a/src/lib/Firebase/messages.js b/src/lib/Firebase/messages.js index d834fb8..58d2d0e 100644 --- a/src/lib/Firebase/messages.js +++ b/src/lib/Firebase/messages.js @@ -14,9 +14,23 @@ export async function getNearbyMessages(lat, lng) { ); const snapshot = await getDocs(q); - return snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() })); + const all = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() })); + + // we filter out messages which have already expired (past their echo date) + const now = Date.now(); + const active = all.filter(message => { + const echoTime = message.lastEchoAt?.toMillis() ?? message.createdAt.toMillis(); + const daysSinceEcho = (now - echoTime) / (1000 * 60 * 60 * 24); + + //console.log(message.text.slice(0, 20), '→ days since echo:', daysSinceEcho); + + return daysSinceEcho < 30; // less than 30 means it lives / is active + }); + + return active; } + export async function echoMessage(messageId) { const ref = doc(db, 'messages', messageId); await updateDoc(ref, { diff --git a/src/lib/components/MapView.Svelte b/src/lib/components/MapView.Svelte index 4796fc2..9f3e55f 100644 --- a/src/lib/components/MapView.Svelte +++ b/src/lib/components/MapView.Svelte @@ -12,6 +12,7 @@ let mapDiv; let markers = []; // keep track of pins on map + let userMarker; /** Jisu Legacy - 내 위치 마커 (메시지 핀과 구분되는 파란 점) */