feat: discuss article in briefing chat via 💬 button on news cards
Clicking 💬 on a news card in the briefing panel pre-fills the briefing chat input with the article title, snippet, and source so the user can ask the briefing LLM to summarize or discuss it directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -174,6 +174,15 @@ async function send() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function discussArticle(item: NewsItem) {
|
||||||
|
const snippet = item.snippet ? `\n\n"${item.snippet.slice(0, 400)}${item.snippet.length > 400 ? '…' : ''}"` : ''
|
||||||
|
input.value = `Can you summarize and discuss this article for me?\n\n**${item.title}**${snippet}\n\nSource: ${item.source}`
|
||||||
|
// Scroll the chat panel into view on narrow layouts
|
||||||
|
nextTick(() => {
|
||||||
|
document.querySelector('.briefing-chat')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
function onKeydown(e: KeyboardEvent) {
|
function onKeydown(e: KeyboardEvent) {
|
||||||
if (e.key === 'Enter' && !e.shiftKey) {
|
if (e.key === 'Enter' && !e.shiftKey) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
@@ -525,6 +534,12 @@ onMounted(async () => {
|
|||||||
@click="handleReaction(item.id, 'down')"
|
@click="handleReaction(item.id, 'down')"
|
||||||
title="Not interested"
|
title="Not interested"
|
||||||
>👎</button>
|
>👎</button>
|
||||||
|
<button
|
||||||
|
v-if="isToday && todayConvId"
|
||||||
|
class="reaction-btn discuss-btn"
|
||||||
|
@click="discussArticle(item)"
|
||||||
|
title="Discuss in briefing chat"
|
||||||
|
>💬</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user