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-11-10 15:31:04 +00:00
|
|
|
import { Fields } from "./Fields";
|
2023-10-30 20:31:07 +00:00
|
|
|
import { Reminder } from "../../../api";
|
2023-11-03 19:17:16 +00:00
|
|
|
import { ImagePicker } from "../ImagePicker";
|
2023-11-05 12:41:59 +00:00
|
|
|
import { useReminder } from "../ReminderContext";
|
2023-10-30 20:31:07 +00:00
|
|
|
|
2023-11-03 22:40:57 +00:00
|
|
|
function intToColor(num: number) {
|
|
|
|
return `#${num.toString(16).padStart(6, "0")}`;
|
2023-10-30 20:31:07 +00:00
|
|
|
}
|
|
|
|
|
2023-11-03 22:40:57 +00:00
|
|
|
const DEFAULT_COLOR = 9418359;
|
|
|
|
|
2023-11-05 12:41:59 +00:00
|
|
|
export const Embed = () => {
|
|
|
|
const [reminder, setReminder] = useReminder();
|
|
|
|
|
2023-10-29 12:47:16 +00:00
|
|
|
return (
|
2023-11-03 22:40:57 +00:00
|
|
|
<div
|
|
|
|
class="discord-embed"
|
|
|
|
style={{
|
|
|
|
borderLeftColor: intToColor(reminder.embed_color || DEFAULT_COLOR),
|
|
|
|
}}
|
|
|
|
>
|
2023-10-29 12:47:16 +00:00
|
|
|
<div class="embed-body">
|
2023-10-30 20:31:07 +00:00
|
|
|
<Color
|
2023-11-03 22:40:57 +00:00
|
|
|
color={intToColor(reminder.embed_color || DEFAULT_COLOR)}
|
|
|
|
setReminder={setReminder}
|
2023-10-30 20:31:07 +00:00
|
|
|
></Color>
|
2023-10-29 12:47:16 +00:00
|
|
|
<div class="a">
|
2023-11-03 22:40:57 +00:00
|
|
|
<Author
|
|
|
|
name={reminder.embed_author}
|
|
|
|
icon={reminder.embed_author_url}
|
|
|
|
setReminder={setReminder}
|
|
|
|
></Author>
|
2023-10-30 20:31:07 +00:00
|
|
|
<Title
|
|
|
|
title={reminder.embed_title}
|
2023-11-04 23:05:44 +00:00
|
|
|
onInput={(title: string) =>
|
2023-10-30 20:31:07 +00:00
|
|
|
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}
|
2023-11-04 23:05:44 +00:00
|
|
|
onInput={(description: string) =>
|
2023-10-30 20:31:07 +00:00
|
|
|
setReminder((reminder: Reminder) => ({
|
|
|
|
...reminder,
|
|
|
|
embed_description: description,
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
></Description>
|
2023-10-29 12:47:16 +00:00
|
|
|
<br></br>
|
|
|
|
|
2023-11-10 15:31:04 +00:00
|
|
|
<Fields />
|
2023-10-29 12:47:16 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="b">
|
|
|
|
<p class="image thumbnail customizable">
|
2023-11-03 19:17:16 +00:00
|
|
|
<ImagePicker
|
|
|
|
class="embed_thumbnail_url"
|
2023-11-03 22:40:57 +00:00
|
|
|
url={reminder.embed_thumbnail_url}
|
2023-11-03 19:17:16 +00:00
|
|
|
alt="Square thumbnail embedded image"
|
|
|
|
setImage={() => {}}
|
|
|
|
></ImagePicker>
|
2023-10-29 12:47:16 +00:00
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<p class="image is-400x300 customizable">
|
2023-11-03 19:17:16 +00:00
|
|
|
<ImagePicker
|
|
|
|
class="embed_image_url"
|
2023-11-03 22:40:57 +00:00
|
|
|
url={reminder.embed_image_url}
|
2023-11-03 19:17:16 +00:00
|
|
|
alt="Large embedded image"
|
|
|
|
setImage={() => {}}
|
|
|
|
></ImagePicker>
|
2023-10-29 12:47:16 +00:00
|
|
|
</p>
|
|
|
|
|
2023-11-03 22:40:57 +00:00
|
|
|
<Footer
|
|
|
|
footer={reminder.embed_footer}
|
|
|
|
icon={reminder.embed_footer_url}
|
|
|
|
setReminder={setReminder}
|
|
|
|
></Footer>
|
2023-10-29 12:47:16 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|