From a387a96a2be0e8de0c996601f1c2f0895ec53ef2 Mon Sep 17 00:00:00 2001 From: lagofernan <189474463+lagofernan@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:05:02 -0700 Subject: [PATCH 1/4] Create manifest.json --- .../Places to Visit Wishlist/manifest.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 submissions/Places to Visit Wishlist/manifest.json diff --git a/submissions/Places to Visit Wishlist/manifest.json b/submissions/Places to Visit Wishlist/manifest.json new file mode 100644 index 00000000..1c53650f --- /dev/null +++ b/submissions/Places to Visit Wishlist/manifest.json @@ -0,0 +1,16 @@ +{ + "manifest_version": 3, + "name": "Places to Visit Wishlist", + "version": "1.0", + "description": "Save and manage a wishlist of places you want to visit.", + "action": { + "default_popup": "popup.html", + "default_icon": "icon.png" + }, + "permissions": ["storage"], + "icons": { + "16": "icon.png", + "48": "icon.png", + "128": "icon.png" + } +} From 0c1b846bcc5ee50c75de0115ba1d5d15d253d30d Mon Sep 17 00:00:00 2001 From: lagofernan <189474463+lagofernan@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:05:43 -0700 Subject: [PATCH 2/4] Create popup.html --- submissions/Places to Visit Wishlist/popup.html | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 submissions/Places to Visit Wishlist/popup.html diff --git a/submissions/Places to Visit Wishlist/popup.html b/submissions/Places to Visit Wishlist/popup.html new file mode 100644 index 00000000..585fd1cb --- /dev/null +++ b/submissions/Places to Visit Wishlist/popup.html @@ -0,0 +1,15 @@ + + + + Places Wishlist + + + +

Places Wishlist

+ + + + + + + From f9b48616685d36d31524032f1de06ce1843d7ef3 Mon Sep 17 00:00:00 2001 From: lagofernan <189474463+lagofernan@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:06:28 -0700 Subject: [PATCH 3/4] Create popup.css --- .../Places to Visit Wishlist/popup.css | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 submissions/Places to Visit Wishlist/popup.css diff --git a/submissions/Places to Visit Wishlist/popup.css b/submissions/Places to Visit Wishlist/popup.css new file mode 100644 index 00000000..982a728f --- /dev/null +++ b/submissions/Places to Visit Wishlist/popup.css @@ -0,0 +1,36 @@ +body { + width: 300px; + font-family: Arial, sans-serif; + padding: 10px; +} + +h1 { + font-size: 18px; + text-align: center; +} + +input { + width: 70%; + padding: 5px; + margin-right: 5px; +} + +button { + padding: 5px 10px; +} + +ul { + list-style-type: none; + padding: 0; +} + +li { + display: flex; + justify-content: space-between; + padding: 5px 0; +} + +.delete-btn { + color: red; + cursor: pointer; +} From a6a29a646912767af87adb30c0573a08d38ec606 Mon Sep 17 00:00:00 2001 From: lagofernan <189474463+lagofernan@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:07:13 -0700 Subject: [PATCH 4/4] Create popup.js --- submissions/Places to Visit Wishlist/popup.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 submissions/Places to Visit Wishlist/popup.js diff --git a/submissions/Places to Visit Wishlist/popup.js b/submissions/Places to Visit Wishlist/popup.js new file mode 100644 index 00000000..abe755b9 --- /dev/null +++ b/submissions/Places to Visit Wishlist/popup.js @@ -0,0 +1,44 @@ +document.addEventListener('DOMContentLoaded', () => { + const placeInput = document.getElementById('placeInput'); + const addButton = document.getElementById('addButton'); + const wishlist = document.getElementById('wishlist'); + + function renderList(places) { + wishlist.innerHTML = ''; + places.forEach((place, index) => { + const li = document.createElement('li'); + li.textContent = place; + + const deleteBtn = document.createElement('span'); + deleteBtn.textContent = '❌'; + deleteBtn.className = 'delete-btn'; + deleteBtn.addEventListener('click', () => { + places.splice(index, 1); + chrome.storage.sync.set({ places }); + renderList(places); + }); + + li.appendChild(deleteBtn); + wishlist.appendChild(li); + }); + } + + chrome.storage.sync.get(['places'], (result) => { + const places = result.places || []; + renderList(places); + }); + + addButton.addEventListener('click', () => { + const newPlace = placeInput.value.trim(); + if (newPlace) { + chrome.storage.sync.get(['places'], (result) => { + const places = result.places || []; + places.push(newPlace); + chrome.storage.sync.set({ places }, () => { + renderList(places); + placeInput.value = ''; + }); + }); + } + }); +});