113 lines
4.4 KiB
TypeScript
Raw Normal View History

2023-10-29 12:47:16 +00:00
import { Author } from "./Author";
import { Title } from "./Title";
import { Description } from "./Description";
2023-10-30 18:07:07 +00:00
import { Footer } from "./Footer";
import { Color } from "./Color";
2023-10-30 20:31:07 +00:00
import { Reminder } from "../../../api";
2023-10-29 12:47:16 +00:00
2023-10-30 20:31:07 +00:00
type Props = {
reminder: Reminder;
setReminder: (reminder: Reminder) => {};
};
function colorToInt(hex: string) {
return parseInt(hex.substring(1), 16);
}
export const Embed = ({ reminder, setReminder }) => {
2023-10-29 12:47:16 +00:00
return (
<div class="discord-embed">
<div class="embed-body">
2023-10-30 20:31:07 +00:00
<Color
color={reminder.embed_color}
onChange={(color: string) => {
setReminder((reminder: Reminder) => ({
...reminder,
embed_color: colorToInt(color),
}));
}}
></Color>
2023-10-29 12:47:16 +00:00
<div class="a">
<Author name={reminder.embed_author} icon={reminder.embed_author_url}></Author>
2023-10-30 20:31:07 +00:00
<Title
title={reminder.embed_title}
onChange={(title: string) =>
setReminder((reminder: Reminder) => ({
...reminder,
embed_title: title,
}))
}
></Title>
2023-10-29 12:47:16 +00:00
<br></br>
2023-10-30 20:31:07 +00:00
<Description
description={reminder.embed_description}
onChange={(description: string) =>
setReminder((reminder: Reminder) => ({
...reminder,
embed_description: description,
}))
}
></Description>
2023-10-29 12:47:16 +00:00
<br></br>
<div class="embed-multifield-box">
<div data-inlined="1" class="embed-field-box">
<label class="is-sr-only" for="embedFieldTitle">
Field Title
</label>
<div class="is-flex">
<textarea
class="discord-field-title field-input message-input autoresize"
placeholder="Field Title..."
rows={1}
maxlength={256}
name="embed_field_title[]"
></textarea>
<button class="button is-small inline-btn">
<span class="is-sr-only">Toggle field inline</span>
<i class="fas fa-arrows-h"></i>
</button>
</div>
<label class="is-sr-only" for="embedFieldValue">
Field Value
</label>
<textarea
class="discord-field-value field-input message-input autoresize "
placeholder="Field Value..."
maxlength={1024}
name="embed_field_value[]"
rows={1}
></textarea>
</div>
</div>
</div>
<div class="b">
<p class="image thumbnail customizable">
<a>
<img
class="embed_thumbnail_url"
src="/static/img/bg.webp"
alt="Square thumbnail embedded image"
></img>
</a>
</p>
</div>
</div>
<p class="image is-400x300 customizable">
<a>
<img
class="embed_image_url"
src="/static/img/bg.webp"
alt="Large embedded image"
></img>
</a>
</p>
2023-10-30 18:07:07 +00:00
<Footer footer={reminder.embed_footer} icon={reminder.embed_footer_url}></Footer>
2023-10-29 12:47:16 +00:00
</div>
);
};