{\rtf1\ansi\ansicpg1252\cocoartf2818 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} \margl1440\margr1440\vieww11520\viewh8400\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \f0\fs24 \cf0 document.addEventListener('DOMContentLoaded', () => \{\ const bookmarkForm = document.getElementById('bookmarkForm');\ const bookmarksGrid = document.getElementById('bookmarksGrid');\ \ async function loadBookmarks() \{\ try \{\ const response = await fetch('/api/bookmarks');\ if (!response.ok) throw new Error('Failed to load bookmarks');\ \ const bookmarks = await response.json();\ \ bookmarksGrid.innerHTML = bookmarks.map(bookmark => `\
\

$\{bookmark.title\}

\

$\{bookmark.description || ''\}

\ $\{bookmark.district\}\ Visit Site \uc0\u8594 \
\ `).join('');\ \} catch (error) \{\ console.error('Error loading bookmarks:', error);\ bookmarksGrid.innerHTML = '

Error loading bookmarks. Please try again later.

';\ \}\ \}\ \ bookmarkForm.addEventListener('submit', async (e) => \{\ e.preventDefault();\ \ const formData = \{\ url: document.getElementById('url').value,\ title: document.getElementById('title').value,\ description: document.getElementById('description').value,\ district: document.getElementById('district').value\ \};\ \ try \{\ const response = await fetch('/api/bookmarks', \{\ method: 'POST',\ headers: \{\ 'Content-Type': 'application/json'\ \},\ body: JSON.stringify(formData)\ \});\ \ if (!response.ok) throw new Error('Failed to add bookmark');\ \ bookmarkForm.reset();\ await loadBookmarks();\ \} catch (error) \{\ console.error('Error adding bookmark:', error);\ alert('Failed to add bookmark. Please try again.');\ \}\ \});\ \ // Load bookmarks when page loads\ loadBookmarks();\ \});}