@@ -325,7 +325,7 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
325325 </head>
326326 <body>
327327 <div id="container">
328- <div id="empty-state" class="empty-state">
328+ <div id="empty-state" class="empty-state" style="display: block;" >
329329 <div class="empty-icon">📝</div>
330330 <h2>No Prompt Selected</h2>
331331 <p>Select a prompt from the tree view to view its details and content.</p>
@@ -346,41 +346,29 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
346346 </div>
347347 </div>
348348
349- <div class="description-section" id="description-section" style="display: none;">
350- <div class="description-content" id="prompt-description"></div>
351- </div>
349+ <div class="description-section" id="description-section" style="display: none;">
350+ <div class="description-content" id="prompt-description"></div>
351+ </div>
352352
353- <div class="content-section">
354- <div class="section-header">
355- <h3>Content</h3>
356- <div class="content-actions">
357- <button id="save-content" class="action-button primary" style="display: none;">
358- <span class="icon">💾</span>
359- Save
360- </button>
361- <button id="reset-content" class="action-button" style="display: none;">
362- <span class="icon">↩️</span>
363- Reset
364- </button>
365- </div>
366- </div>
367- <textarea id="prompt-content" class="content-editor" placeholder="Prompt content will appear here..."></textarea>
368- </div>
353+ <div class="content-section">
354+ <div class="section-header">
355+ <h3>Content</h3>
356+ </div>
357+ <textarea id="prompt-content" class="content-editor" placeholder="Prompt content will appear here..." readonly></textarea>
358+ </div>
369359
370- <div class="info-section" id="source-section" style="display: none;">
371- <div class="info-item">
372- <label>Source:</label>
373- <span id="prompt-source"></span>
374- </div>
360+ <div class="info-section" id="source-section" style="display: none;">
361+ <div class="info-item">
362+ <label>Source:</label>
363+ <span id="prompt-source"></span>
375364 </div>
365+ </div>
376366 </div>
377367 </div>
378368
379369 <script nonce="${ nonce } ">
380370 const vscode = acquireVsCodeApi();
381371 let currentPrompt = null;
382- let originalContent = '';
383- let hasUnsavedChanges = false;
384372
385373 // DOM elements
386374 const emptyState = document.getElementById('empty-state');
@@ -394,58 +382,31 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
394382 const sourceSection = document.getElementById('source-section');
395383
396384 const toggleSelectionBtn = document.getElementById('toggle-selection');
397- const saveContentBtn = document.getElementById('save-content');
398- const resetContentBtn = document.getElementById('reset-content');
399385
400386 // Event listeners
401387 toggleSelectionBtn.addEventListener('click', () => {
402388 vscode.postMessage({ type: 'toggleSelection' });
403389 });
404390
405- saveContentBtn.addEventListener('click', () => {
406- vscode.postMessage({
407- type: 'saveContent',
408- content: promptContent.value
409- });
410- hasUnsavedChanges = false;
411- updateSaveButtons();
412- });
413-
414- resetContentBtn.addEventListener('click', () => {
415- promptContent.value = originalContent;
416- hasUnsavedChanges = false;
417- updateSaveButtons();
418- });
419-
420- promptContent.addEventListener('input', () => {
421- hasUnsavedChanges = promptContent.value !== originalContent;
422- updateSaveButtons();
423- });
424-
425- function updateSaveButtons() {
426- saveContentBtn.style.display = hasUnsavedChanges ? 'inline-flex' : 'none';
427- resetContentBtn.style.display = hasUnsavedChanges ? 'inline-flex' : 'none';
428- }
429-
430391 function updateSelectionButton(active) {
431392 const icon = toggleSelectionBtn.querySelector('.icon');
432393 if (active) {
433394 icon.textContent = '✓';
434395 toggleSelectionBtn.classList.add('selected');
396+ toggleSelectionBtn.classList.remove('activate');
435397 toggleSelectionBtn.title = 'Deactivate';
436398 } else {
437- icon.textContent = '☐ ';
399+ icon.textContent = '+ ';
438400 toggleSelectionBtn.classList.remove('selected');
401+ toggleSelectionBtn.classList.add('activate');
439402 toggleSelectionBtn.title = 'Activate';
440403 }
441404 }
442405
443406 function showPrompt(data) {
444- currentPrompt = data.prompt;
445- originalContent = data.prompt.content;
446-
447- emptyState.style.display = 'none';
448- promptDetails.style.display = 'block';
407+ currentPrompt = data.prompt;
408+ emptyState.style.display = 'none';
409+ promptDetails.style.display = 'block';
449410
450411 // Update header
451412 promptTitle.textContent = data.prompt.name;
@@ -488,10 +449,6 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
488449
489450 // Update selection button
490451 updateSelectionButton(data.prompt.active);
491-
492- // Reset save state
493- hasUnsavedChanges = false;
494- updateSaveButtons();
495452 }
496453
497454 function extractRepositoryName(url) {
@@ -508,11 +465,8 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
508465
509466 function clearPrompt() {
510467 currentPrompt = null;
511- originalContent = '';
512468 emptyState.style.display = 'block';
513469 promptDetails.style.display = 'none';
514- hasUnsavedChanges = false;
515- updateSaveButtons();
516470 }
517471
518472 // Handle messages from extension
@@ -537,6 +491,9 @@ export class PromptDetailsWebviewProvider implements vscode.WebviewViewProvider
537491 break;
538492 }
539493 });
494+
495+ // Initialize with empty state on load
496+ clearPrompt();
540497 </script>
541498 </body>
542499 </html>` ;
0 commit comments