mirror of
https://github.com/agoramachina/claude-exporter.git
synced 2026-07-09 15:59:52 +00:00
Bind UI listeners before conversations load (v1.10.4)
setupEventListeners() now runs immediately after initTheme() instead of after the await chain for loadOrgId / load*Prefs / loadConversations. The settings gear, filter funnel, search bar, and other UI controls are interactive from the start of the loading screen instead of only after the conversation list arrives. Handlers that read conversation data either iterate empty arrays harmlessly or already guard with `if (data)` checks, so attaching them early is safe. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a55d0e7490
commit
c53ace8054
5 changed files with 12 additions and 4 deletions
|
|
@ -162,6 +162,9 @@ window.addEventListener('pageshow', (event) => {
|
|||
// Initialize on page load
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
initTheme();
|
||||
// Wire up UI listeners (settings dropdown, filters, search, etc.) immediately
|
||||
// so the chrome stays interactive while orgId / conversations are still loading.
|
||||
setupEventListeners();
|
||||
const loadingStart = Date.now();
|
||||
await loadOrgId();
|
||||
await loadExportTimestamps();
|
||||
|
|
@ -173,7 +176,6 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
const loadingText = document.getElementById('loadingText');
|
||||
if (loadingText) loadingText.textContent = 'Loading conversations...';
|
||||
await loadConversations();
|
||||
setupEventListeners();
|
||||
});
|
||||
|
||||
// Load organization ID — auto-detect first, fall back to stored
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"manifest_version": 3,
|
||||
"name": "Claude Exporter Beta",
|
||||
"version": "1.10.3",
|
||||
"version": "1.10.4",
|
||||
"description": "Export conversations and artifacts from Claude.ai",
|
||||
"permissions": [
|
||||
"activeTab",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
## [1.10.4]
|
||||
|
||||
- Browse page settings dropdown (and other UI controls) are now interactive immediately on page load — `setupEventListeners()` runs right after `initTheme()` instead of waiting for `loadConversations()` to finish. The settings gear, filter funnel, search bar, and sort headers all work while conversations are still loading.
|
||||
|
||||
## [1.10.3]
|
||||
|
||||
- New Options section: **Contact & Diagnostics**
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@ window.addEventListener('pageshow', (event) => {
|
|||
// Initialize on page load
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
initTheme();
|
||||
// Wire up UI listeners (settings dropdown, filters, search, etc.) immediately
|
||||
// so the chrome stays interactive while orgId / conversations are still loading.
|
||||
setupEventListeners();
|
||||
const loadingStart = Date.now();
|
||||
await loadOrgId();
|
||||
await loadExportTimestamps();
|
||||
|
|
@ -173,7 +176,6 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
const loadingText = document.getElementById('loadingText');
|
||||
if (loadingText) loadingText.textContent = 'Loading conversations...';
|
||||
await loadConversations();
|
||||
setupEventListeners();
|
||||
});
|
||||
|
||||
// Load organization ID — auto-detect first, fall back to stored
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Claude Exporter Beta",
|
||||
"version": "1.10.3",
|
||||
"version": "1.10.4",
|
||||
"description": "Export conversations and artifacts from Claude.ai",
|
||||
"permissions": [
|
||||
"activeTab",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue