fix test ask-AI oauth profile

This commit is contained in:
2025-06-25 21:35:03 +09:00
parent 2c08a4acfb
commit c82e159970
4 changed files with 47 additions and 15 deletions

View File

@@ -17,9 +17,16 @@ function toggleAskAI() {
} }
function checkAuthenticationStatus() { function checkAuthenticationStatus() {
const userSections = document.querySelectorAll('.user-section'); // Wait a bit for OAuth app to load if needed
const isAuthenticated = userSections.length > 0; setTimeout(() => {
const userSections = document.querySelectorAll('.user-section');
const isAuthenticated = userSections.length > 0;
handleAuthenticationStatus(isAuthenticated);
}, 100);
}
function handleAuthenticationStatus(isAuthenticated) {
if (isAuthenticated) { if (isAuthenticated) {
// User is authenticated - show Ask AI UI // User is authenticated - show Ask AI UI
document.getElementById('authCheck').style.display = 'none'; document.getElementById('authCheck').style.display = 'none';
@@ -377,6 +384,37 @@ function setupAskAIEventListeners() {
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
setupAskAIEventListeners(); setupAskAIEventListeners();
console.log('Ask AI initialized successfully'); console.log('Ask AI initialized successfully');
// Also listen for OAuth app load completion
const observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
// Check if user-section was added/removed
const userSectionAdded = Array.from(mutation.addedNodes).some(node =>
node.nodeType === Node.ELEMENT_NODE &&
(node.classList?.contains('user-section') || node.querySelector?.('.user-section'))
);
const userSectionRemoved = Array.from(mutation.removedNodes).some(node =>
node.nodeType === Node.ELEMENT_NODE &&
(node.classList?.contains('user-section') || node.querySelector?.('.user-section'))
);
if (userSectionAdded || userSectionRemoved) {
console.log('User section status changed');
// Update Ask AI panel if it's visible
const panel = document.getElementById('askAiPanel');
if (panel && panel.style.display !== 'none') {
checkAuthenticationStatus();
}
}
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}); });
// Global functions for onclick handlers // Global functions for onclick handlers

View File

@@ -69,8 +69,6 @@ export default function ChatRecordList({ chatPairs, apiConfig, user = null, agen
)} )}
<div className="user-info"> <div className="user-info">
<div className="display-name">{chatPair.question.value.author?.displayName || chatPair.question.value.author?.handle}</div> <div className="display-name">{chatPair.question.value.author?.displayName || chatPair.question.value.author?.handle}</div>
<div className="handle">@{chatPair.question.value.author?.handle}</div>
<div className="timestamp">{new Date(chatPair.question.value.createdAt).toLocaleString()}</div>
</div> </div>
{canDelete(chatPair) && ( {canDelete(chatPair) && (
<div className="record-actions"> <div className="record-actions">
@@ -105,8 +103,6 @@ export default function ChatRecordList({ chatPairs, apiConfig, user = null, agen
)} )}
<div className="user-info"> <div className="user-info">
<div className="display-name">{chatPair.answer.value.author?.displayName || chatPair.answer.value.author?.handle}</div> <div className="display-name">{chatPair.answer.value.author?.displayName || chatPair.answer.value.author?.handle}</div>
<div className="handle">@{chatPair.answer.value.author?.handle}</div>
<div className="timestamp">{new Date(chatPair.answer.value.createdAt).toLocaleString()}</div>
</div> </div>
</div> </div>
<div className="message-content">{chatPair.answer.value.text}</div> <div className="message-content">{chatPair.answer.value.text}</div>

View File

@@ -58,8 +58,6 @@ export default function ProfileRecordList({ profileRecords, apiConfig, user = nu
<span className="admin-badge"> Admin</span> <span className="admin-badge"> Admin</span>
)} )}
</div> </div>
<div className="handle">@{profile.value.author?.handle}</div>
<div className="timestamp">{new Date(profile.value.createdAt).toLocaleString()}</div>
</div> </div>
{canDelete(profile) && ( {canDelete(profile) && (
<div className="record-actions"> <div className="record-actions">

View File

@@ -64,18 +64,18 @@ export default function RecordTabs({ langRecords, commentRecords, userComments,
> >
chat ({userChatRecords?.length || 0}) chat ({userChatRecords?.length || 0})
</button> </button>
<button
className={`tab-btn ${activeTab === 'users' ? 'active' : ''}`}
onClick={() => setActiveTab('users')}
>
comment ({filteredUserComments.length})
</button>
<button <button
className={`tab-btn ${activeTab === 'comment' ? 'active' : ''}`} className={`tab-btn ${activeTab === 'comment' ? 'active' : ''}`}
onClick={() => setActiveTab('comment')} onClick={() => setActiveTab('comment')}
> >
feedback ({filteredCommentRecords.length}) feedback ({filteredCommentRecords.length})
</button> </button>
<button
className={`tab-btn ${activeTab === 'users' ? 'active' : ''}`}
onClick={() => setActiveTab('users')}
>
comment ({filteredUserComments.length})
</button>
<button <button
className={`tab-btn ${activeTab === 'lang' ? 'active' : ''}`} className={`tab-btn ${activeTab === 'lang' ? 'active' : ''}`}
onClick={() => setActiveTab('lang')} onClick={() => setActiveTab('lang')}