Skip to content

Commit b4c6c41

Browse files
committed
Implement save settings functionality to persist a user preference for repo structure
1 parent d7ac397 commit b4c6c41

3 files changed

Lines changed: 26 additions & 5 deletions

File tree

css/welcome.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ footer {
337337
text-align: right;
338338
}
339339

340-
.save-btn {
340+
#save-settings-btn {
341341
background-color: rgb(76, 190, 228);
342342
color: white;
343343
border: none;
@@ -349,7 +349,7 @@ footer {
349349
font-weight: bold;
350350
}
351351

352-
.save-btn:hover {
352+
#save-settings-btn:hover {
353353
background-color: rgb(56, 170, 208);
354354
transform: scale(1.05);
355355
}

scripts/welcome.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,21 @@ const aTagforUnlinkRepo = document.querySelector("#unlink-repo");
1010
const starCodeHubButton = document.querySelector("#star-repo-button");
1111
const settingsIcon = document.querySelector("#settings-icon");
1212
const settingsModal = document.querySelector("#settings-modal");
13+
const saveSettingsBtn = document.querySelector("#save-settings-btn");
1314
const closeModal = document.querySelector(".close");
1415

16+
document.addEventListener("DOMContentLoaded", () => {
17+
chrome.storage.local.get("folderStructure", (result) => {
18+
const saved = result.folderStructure || "level-problem-language";
19+
const radio = document.querySelector(
20+
`input[name="folder-structure"][value="${saved}"]`
21+
);
22+
if (radio) {
23+
radio.checked = true;
24+
}
25+
});
26+
});
27+
1528
authButton.addEventListener("click", () => {
1629
chrome.runtime.sendMessage({ action: "authenticateUser" });
1730
});
@@ -28,6 +41,16 @@ settingsIcon.addEventListener("click", () => {
2841
settingsModal.style.display = "block";
2942
});
3043

44+
saveSettingsBtn.addEventListener("click", () => {
45+
console.log("save settings btn clicked!!!");
46+
const selected = document.querySelector(
47+
'input[name="folder-structure"]:checked'
48+
).value;
49+
chrome.storage.local.set({ folderStructure: selected }, () => {
50+
settingsModal.style.display = "none";
51+
});
52+
});
53+
3154
closeModal.addEventListener("click", () => {
3255
settingsModal.style.display = "none";
3356
});

welcome.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ <h3>Folder Structure Organization</h3>
140140
Choose how you want CodeHub to organize your solutions in your
141141
GitHub repository:
142142
</p>
143-
144143
<div class="folder-option">
145144
<input
146145
type="radio"
@@ -170,7 +169,6 @@ <h3>Folder Structure Organization</h3>
170169
</div>
171170
</label>
172171
</div>
173-
174172
<div class="folder-option">
175173
<input
176174
type="radio"
@@ -187,7 +185,7 @@ <h3>Folder Structure Organization</h3>
187185
</div>
188186
</div>
189187
<div class="modal-footer">
190-
<button id="save-settings" class="save-btn">Save Settings</button>
188+
<button id="save-settings-btn">Save Settings</button>
191189
</div>
192190
</div>
193191
</div>

0 commit comments

Comments
 (0)