diff --git a/index.html b/index.html
index 477a47a..c12d6b8 100644
--- a/index.html
+++ b/index.html
@@ -47,9 +47,18 @@
Sort by:
-
-
-
+
+
+
diff --git a/src/js/snippet-manager.js b/src/js/snippet-manager.js
index ba44f3e..ae7b927 100644
--- a/src/js/snippet-manager.js
+++ b/src/js/snippet-manager.js
@@ -264,32 +264,60 @@ function renderSnippetList(searchQuery = null) {
function initializeSortControls() {
const sortButtons = document.querySelectorAll('.sort-btn');
const currentSort = AppSettings.get('sortBy');
+ const currentOrder = AppSettings.get('sortOrder');
- // Update active button based on settings
+ // Update active button and arrow based on settings
sortButtons.forEach(button => {
button.classList.remove('active');
if (button.dataset.sort === currentSort) {
button.classList.add('active');
+ updateSortArrow(button, currentOrder);
+ } else {
+ updateSortArrow(button, 'desc'); // Default to desc for inactive buttons
}
// Add click handler
button.addEventListener('click', function() {
- const newSort = this.dataset.sort;
- changeSortBy(newSort);
+ const sortType = this.dataset.sort;
+ toggleSort(sortType);
});
});
}
-// Change sort method
-function changeSortBy(sortBy) {
- // Save to settings
- AppSettings.set('sortBy', sortBy);
+// Update sort arrow display
+function updateSortArrow(button, direction) {
+ const arrow = button.querySelector('.sort-arrow');
+ if (arrow) {
+ arrow.textContent = direction === 'desc' ? '⬇' : '⬆';
+ }
+}
- // Update button states
+// Toggle sort method and direction
+function toggleSort(sortType) {
+ const currentSort = AppSettings.get('sortBy');
+ const currentOrder = AppSettings.get('sortOrder');
+
+ let newOrder;
+ if (currentSort === sortType) {
+ // Same button clicked - toggle direction
+ newOrder = currentOrder === 'desc' ? 'asc' : 'desc';
+ } else {
+ // Different button clicked - default to desc
+ newOrder = 'desc';
+ }
+
+ // Save to settings
+ AppSettings.set('sortBy', sortType);
+ AppSettings.set('sortOrder', newOrder);
+
+ // Update button states and arrows
document.querySelectorAll('.sort-btn').forEach(btn => {
btn.classList.remove('active');
- if (btn.dataset.sort === sortBy) {
+ if (btn.dataset.sort === sortType) {
btn.classList.add('active');
+ updateSortArrow(btn, newOrder);
+ } else {
+ updateSortArrow(btn, 'desc'); // Default for inactive buttons
}
});
diff --git a/src/styles.css b/src/styles.css
index a584b62..d7b336b 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -141,6 +141,18 @@ body {
cursor: pointer;
font-size: 10px;
font-family: 'MS Sans Serif', Tahoma, sans-serif;
+ display: flex;
+ align-items: center;
+ gap: 3px;
+}
+
+.sort-text {
+ flex: 1;
+}
+
+.sort-arrow {
+ font-size: 9px;
+ opacity: 0.7;
}
.sort-btn:hover {