feature: frontend link embed spoiler implementation
parent
6b9106c975
commit
d048b3940d
|
|
@ -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%;
|
||||
}
|
||||
|
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
);
|
||||
}
|
||||
Loading…
Reference in New Issue