feat: add snippet sorting by size and update help section with sorting instructions

This commit is contained in:
2025-10-17 00:49:00 +03:00
parent e2b4b77478
commit 02fcfc1833
3 changed files with 13 additions and 1 deletions

View File

@@ -5,5 +5,6 @@
], ],
"deny": [], "deny": [],
"ask": [] "ask": []
} },
"outputStyle": "default"
} }

View File

@@ -73,6 +73,10 @@
<span class="sort-text">Name</span> <span class="sort-text">Name</span>
<span class="sort-arrow"></span> <span class="sort-arrow"></span>
</button> </button>
<button class="sort-btn" data-sort="size" title="Sort by snippet size">
<span class="sort-text">Size</span>
<span class="sort-arrow"></span>
</button>
</div> </div>
<div class="search-controls"> <div class="search-controls">
<input type="text" id="snippet-search" placeholder="Search snippets..." /> <input type="text" id="snippet-search" placeholder="Search snippets..." />
@@ -438,6 +442,7 @@
<section class="help-section"> <section class="help-section">
<h3 class="help-heading">Tips & Tricks</h3> <h3 class="help-heading">Tips & Tricks</h3>
<ul class="help-list"> <ul class="help-list">
<li><strong>Sort snippets</strong> — Use the sort buttons to organize by Modified, Created, Name, or Size. Click a button twice to reverse the sort order (⬇ becomes ⬆).</li>
<li><strong>Extract inline data</strong> — When editing a spec with inline data, click "Extract to Dataset" to create a reusable dataset automatically.</li> <li><strong>Extract inline data</strong> — When editing a spec with inline data, click "Extract to Dataset" to create a reusable dataset automatically.</li>
<li><strong>Dataset references</strong> — Astrolabe resolves dataset references at render time, so you can freely switch between inline and referenced data.</li> <li><strong>Dataset references</strong> — Astrolabe resolves dataset references at render time, so you can freely switch between inline and referenced data.</li>
<li><strong>Search across specs</strong> — The search box looks inside snippet names, comments, and the spec content itself.</li> <li><strong>Search across specs</strong> — The search box looks inside snippet names, comments, and the spec content itself.</li>

View File

@@ -225,6 +225,12 @@ const SnippetStorage = {
case 'created': case 'created':
comparison = new Date(a.created) - new Date(b.created); comparison = new Date(a.created) - new Date(b.created);
break; break;
case 'size':
// Calculate size for both snippets
const sizeA = new Blob([JSON.stringify(a)]).size;
const sizeB = new Blob([JSON.stringify(b)]).size;
comparison = sizeA - sizeB;
break;
case 'modified': case 'modified':
default: default:
comparison = new Date(a.modified) - new Date(b.modified); comparison = new Date(a.modified) - new Date(b.modified);