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>
|
|
|
|
);
|
|
|
|
};
|