feature: frontend link embed spoiler implementation

pull/785/head
Skythrew 2022-09-19 07:45:13 +02:00
parent 6b9106c975
commit d048b3940d
3 changed files with 39 additions and 2 deletions

View File

@ -1,6 +1,6 @@
.embed {
margin: 0.2em 0;
position: relative;
iframe {
border: none;
border-radius: var(--border-radius);
@ -135,3 +135,20 @@
grid-area: open;
}
}
.spoiler_container {
position: absolute;
height: 100%;
width:100%;
background:var(--primary-header);
display: flex;
align-items: center;
top:0;
left:0;
cursor:pointer;
}
.spoiler_title{
text-align: center;
width:100%;
}

View File

@ -10,6 +10,7 @@ import { MessageAreaWidthContext } from "../../../../pages/channels/messaging/Me
import Markdown from "../../../markdown/Markdown";
import Attachment from "../attachments/Attachment";
import EmbedMedia from "./EmbedMedia";
import EmbedSpoiler from "./EmbedSpoiler";
interface Props {
embed: API.Embed;
@ -104,7 +105,7 @@ export default function Embed({ embed }: Props) {
return (
<div
className={classNames(styles.embed, styles.website)}
className={classNames(styles.embed, styles.website, embed.spoiler ? styles.spoiler : null)}
style={{
borderInlineStartColor:
embed.colour ?? "var(--tertiary-background)",
@ -162,6 +163,10 @@ export default function Embed({ embed }: Props) {
<Attachment attachment={embed.media!} />
) : (
<EmbedMedia embed={embed} height={height} />
))}
{(embed.spoiler && (
<EmbedSpoiler/>
))}
</div>
{!largeMedia && embed.type === "Website" && (
@ -175,8 +180,12 @@ export default function Embed({ embed }: Props) {
}
height={height}
/>
{embed.spoiler && (
<EmbedSpoiler/>
)}
</div>
)}
</div>
);
}

View File

@ -0,0 +1,11 @@
import classNames from "classnames";
import { API } from "revolt.js";
import styles from "./Embed.module.scss";
export default function EmbedSpoiler(){
return (
<div className={classNames(styles.spoiler_container)}>
<h1 className={classNames(styles.spoiler_title)}>SPOILER</h1>
</div>
);
}