diff --git a/frontend/dashboard.css b/frontend/dashboard.css index 0c686e4..cb194f6 100644 --- a/frontend/dashboard.css +++ b/frontend/dashboard.css @@ -550,6 +550,12 @@ textarea { resize: vertical; min-height: 120px; } .search-preview-conversation h2 { margin:0; font-size:1rem; } .search-preview-comment { min-width:0; padding:10px 0; border-bottom:1px solid #1b2d45; overflow-wrap:anywhere; } .search-preview-conversation button { min-height:44px; width:100%; } +.search-preview-reply { display:grid; gap:8px; padding-top:8px; border-top:1px solid #2a496e; } +.search-preview-reply[hidden] { display:none; } +.search-preview-reply h2 { margin:0; font-size:1rem; } +.search-preview-reply textarea { box-sizing:border-box; width:100%; min-height:110px; resize:vertical; scroll-margin-bottom:calc(190px + env(safe-area-inset-bottom)); } +.search-preview-reply-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; } +.search-preview-reply-actions button { min-height:44px; } .search-preview-navigation { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:8px; } .search-preview-actions { position:sticky; bottom:0; display:grid; gap:8px; padding:10px 0; padding-bottom:calc(10px + env(safe-area-inset-bottom)); background:#0b1526; } .search-preview-actions button, .search-preview-actions a { min-height:44px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; } diff --git a/frontend/dashboard.js b/frontend/dashboard.js index d99ead0..a6f00c7 100644 --- a/frontend/dashboard.js +++ b/frontend/dashboard.js @@ -4348,6 +4348,7 @@ startButton.hidden = true; startButton.disabled = false; shareButton.disabled = true; + renderSearchPreviewReply(state, null, searchPreview, document); if (state.status === 'loading') { searchPreviewDetail = null; @@ -4377,6 +4378,7 @@ (detail.assignees?.length ? ' · assigned to ' + detail.assignees.join(', ') : ''); qs('#search-preview-body').innerHTML = renderMarkdown(detail.body || 'No description provided.'); renderSearchConversation(state.conversation); + renderSearchPreviewReply(state, detail, searchPreview, document); qs('#open-search-result-gitea').href = safeSearchUrl(detail.url) || '#'; claimButton.hidden = !(detail.claimable || detail.assigned_to_me); claimButton.textContent = detail.assigned_to_me ? 'Open in My Work' : 'Assign to me'; @@ -4416,6 +4418,7 @@ '/issues/' + encodeURIComponent(detail.number) + '/' + action, { method:'PATCH', headers:{ Accept:'application/json' } } ), + ...searchPreviewReplyOptions(fetchReviewJson, localStorage, globalThis.crypto), share: url => createWorkRoute.share(url, navigator, navigator.clipboard), session:[()=>commandSearchState, commandSearch, item=>taskOverlayHistory.update({preview:item})], onState: renderSearchPreview, diff --git a/frontend/index.html b/frontend/index.html index 147de3e..9727500 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -472,6 +472,15 @@ +