Render embedded version of Live Event

This commit is contained in:
dtonon
2024-08-12 21:09:14 +02:00
parent 33ec681b34
commit fa9255364e
2 changed files with 53 additions and 2 deletions

46
embedded_live_event.templ Normal file
View File

@@ -0,0 +1,46 @@
package main
templ embeddedLiveEventTemplate(params LiveEventPageParams) {
<!DOCTYPE html>
@embeddedPageTemplate(
params.Event,
) {
<a href={ templ.URL("/" + params.NeventNaked) } target="_blank" class="no-underline">
<h1 class="text-2xl">
<span class="mr-2">{ params.LiveEvent.Title }</span>
switch params.LiveEvent.Status {
case "ended":
<span class="whitespace-nowrap rounded bg-neutral-400 px-4 py-1 align-text-top text-base text-white dark:bg-neutral-700">Ended</span>
case "live":
<span class="whitespace-nowrap rounded bg-strongpink px-4 py-1 align-text-top text-base text-white">Live now!</span>
}
</h1>
<div class="mb-4">
if params.LiveEvent.Host != nil {
Streaming hosted by
<a href={ templ.URL("/" + params.LiveEvent.Host.Npub()) }>
{ params.LiveEvent.Host.Name }
</a>
}
</div>
<!-- main content -->
<div class="mb-4">
for _, v := range params.LiveEvent.Hashtags {
<span class="mr-2 whitespace-nowrap rounded bg-neutral-200 px-2 dark:bg-neutral-700 dark:text-white">
{ v }
</span>
}
</div>
if params.LiveEvent.Summary != "" {
<div>{ params.LiveEvent.Summary }</div>
}
if params.LiveEvent.Image != "" {
<img
src={ params.LiveEvent.Image }
alt={ params.Alt }
_="on load repeat set @src to @src wait 5s end"
/>
}
</a>
}
}

View File

@@ -390,7 +390,7 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
component = fileMetadataTemplate(params)
case LiveEvent:
opengraph.Image = data.kind30311Metadata.Image
component = liveEventTemplate(LiveEventPageParams{
params := LiveEventPageParams{
BaseEventPageParams: baseEventPageParams,
OpenGraphParams: opengraph,
HeadParams: HeadParams{
@@ -409,7 +409,12 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
return s
},
),
})
}
if isEmbed {
component = embeddedLiveEventTemplate(params)
} else {
component = liveEventTemplate(params)
}
case LiveEventMessage:
component = liveEventMessageTemplate(LiveEventMessagePageParams{
BaseEventPageParams: baseEventPageParams,