[web] open comments and changes via url (#36546)

* [web] open a comment from a URL

* [web] add "View comment" button to digest email

* [web] open a tracked change from a URL

* [web] add "View suggestion" button to digest email

* [web] open the review panel from an open=review-panel URL

* [web] drop the digest email CTA and collapse the deep links to t=review

* [web] add an Open project button to the section overflow row and plain-text view links

* [web] validate the comment and change deep-link ids as object ids

* [web] collapse the deep-link resolvers into a single DeepLink component

* fix: scrolling into view when below the fold

* fix: address claude review

* fix: style adjustments

* fix: updating types to accomodate accepted/rejected changes

---------

Co-authored-by: Jimmy Domagala-Tang <jimmy.domagala-tang@overleaf.com>
GitOrigin-RevId: dab535591a93e1c3849a6b2a0dcc3e3934354385
This commit is contained in:
Kristina
2026-09-17 12:07:22 +00:00
committed by Copybot
co-authored by Jimmy Domagala-Tang
parent 5dc8c2b0c3
commit 44910202f3
15 changed files with 977 additions and 91 deletions
@@ -106,6 +106,12 @@ function NoCTAEmailTemplate(content) {
if (!content.message) {
throw new Error('missing message')
}
if (!content.secondaryMessage) {
content.secondaryMessage = () => []
}
if (!content.footerMessage) {
content.footerMessage = () => {}
}
return {
subject(opts) {
return content.subject(opts)
@@ -113,15 +119,11 @@ function NoCTAEmailTemplate(content) {
layout(opts) {
return BaseEmailLayout(opts)
},
footerMessage(opts) {
return content.footerMessage(opts)
},
plainTextTemplate(opts) {
return `\
${content.greeting(opts)}
${content.message(opts, true).join('\r\n\r\n')}
Regards,
The ${settings.appName} Team - ${settings.siteUrl}\
`
return _emailBodyPlainText(content, opts, false)
},
compiledTemplate(opts) {
return NoCTAEmailBody({