feat: add creation date to snippets and sort by date in UI

This commit is contained in:
2025-01-25 19:43:30 +02:00
parent d847de361c
commit e59feebcf1
2 changed files with 7 additions and 1 deletions

View File

@@ -62,6 +62,7 @@ export class SnippetManager {
const newSnippet = { const newSnippet = {
id, id,
name, name,
createdAt: Date.now(),
content: { content: {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json", "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "New visualization", "description": "New visualization",
@@ -176,7 +177,8 @@ export class SnippetManager {
const storedSnippets = this.storageManager.loadSnippets(); const storedSnippets = this.storageManager.loadSnippets();
return storedSnippets.map(snippet => ({ return storedSnippets.map(snippet => ({
...snippet, ...snippet,
comment: snippet.comment || '' comment: snippet.comment || '',
createdAt: snippet.createdAt || Date.now() // Ensure backwards compatibility
})); }));
} }

View File

@@ -37,6 +37,9 @@ export class UIManager {
const container = document.getElementById('snippet-list'); const container = document.getElementById('snippet-list');
container.innerHTML = ''; container.innerHTML = '';
// Sort snippets by creation date (most recent first)
snippets.sort((a, b) => b.createdAt - a.createdAt);
snippets.forEach(snippet => { snippets.forEach(snippet => {
const div = document.createElement('div'); const div = document.createElement('div');
div.className = `snippet-item ${snippet.id === currentSnippetId ? 'active' : ''}`; div.className = `snippet-item ${snippet.id === currentSnippetId ? 'active' : ''}`;
@@ -48,6 +51,7 @@ export class UIManager {
const contentDiv = document.createElement('div'); const contentDiv = document.createElement('div');
contentDiv.className = 'snippet-content'; contentDiv.className = 'snippet-content';
contentDiv.textContent = `${indicator} ${snippet.name}`; contentDiv.textContent = `${indicator} ${snippet.name}`;
contentDiv.title = `Created at: ${new Date(snippet.createdAt).toLocaleString()}`;
div.appendChild(contentDiv); div.appendChild(contentDiv);
const buttonsDiv = document.createElement('div'); const buttonsDiv = document.createElement('div');