Added support for image node in RichText
This commit is contained in:
parent
07544dfb20
commit
7307f6efee
5
TODO.md
5
TODO.md
|
@ -5,6 +5,11 @@
|
||||||
- [Collectibles] Create page for gallery
|
- [Collectibles] Create page for gallery
|
||||||
- [Collectibles] Create page for scans
|
- [Collectibles] Create page for scans
|
||||||
- Rich text, handle linebreak node type, remove spacer
|
- Rich text, handle linebreak node type, remove spacer
|
||||||
|
- Add hover/active styling for settings options in topbar + language override
|
||||||
|
- Highlight currently selected language option in language override tooltip
|
||||||
|
- Support for scene break blocks
|
||||||
|
- [Folder] Add parent pages
|
||||||
|
- When the tags overflow, the tag group name should be align start (see http://localhost:12499/en/pages/magnitude-negative-chapter-1)
|
||||||
|
|
||||||
## Long term
|
## Long term
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,13 @@ import {
|
||||||
isNodeParagraphNode,
|
isNodeParagraphNode,
|
||||||
isNodeTabNode,
|
isNodeTabNode,
|
||||||
isNodeTextNode,
|
isNodeTextNode,
|
||||||
|
isNodeUploadNode,
|
||||||
type RichTextNode,
|
type RichTextNode,
|
||||||
} from "src/shared/payload/payload-sdk";
|
} from "src/shared/payload/payload-sdk";
|
||||||
import RTTab from "./RTTab.astro";
|
import RTTab from "./RTTab.astro";
|
||||||
import ErrorMessage from "components/ErrorMessage.astro";
|
import ErrorMessage from "components/ErrorMessage.astro";
|
||||||
import RTLinebreak from "./RTLinebreak.astro";
|
import RTLinebreak from "./RTLinebreak.astro";
|
||||||
|
import RTUpload from "./RTUpload/RTUpload.astro";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
node: RichTextNode;
|
node: RichTextNode;
|
||||||
|
@ -44,6 +46,8 @@ const { node, context } = Astro.props;
|
||||||
<RTBlock node={node} context={context} />
|
<RTBlock node={node} context={context} />
|
||||||
) : isNodeTabNode(node) ? (
|
) : isNodeTabNode(node) ? (
|
||||||
<RTTab />
|
<RTTab />
|
||||||
|
) : isNodeUploadNode(node) ? (
|
||||||
|
<RTUpload node={node} context={context} />
|
||||||
) : (
|
) : (
|
||||||
<ErrorMessage
|
<ErrorMessage
|
||||||
title={`Unknown node type: ${node.type}`}
|
title={`Unknown node type: ${node.type}`}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
import { isUploadNodeImageNode, type RichTextUploadNode } from "src/shared/payload/payload-sdk";
|
||||||
|
import type { RichTextContext } from "src/utils/richText";
|
||||||
|
import RTImage from "./components/RTImage.astro";
|
||||||
|
import ErrorMessage from "components/ErrorMessage.astro";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
node: RichTextUploadNode;
|
||||||
|
context: RichTextContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { node, context } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
{
|
||||||
|
isUploadNodeImageNode(node) ? (
|
||||||
|
<RTImage node={node} context={context} />
|
||||||
|
) : (
|
||||||
|
<ErrorMessage
|
||||||
|
title={`Unknown upload collection: ${node.relationTo}`}
|
||||||
|
description="Please contact website technical administrator."
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
import { type RichTextUploadImageNode } from "src/shared/payload/payload-sdk";
|
||||||
|
import type { RichTextContext } from "src/utils/richText";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
node: RichTextUploadImageNode;
|
||||||
|
context: RichTextContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { node } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<img src={node.value.url} />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin-block: 3em;
|
||||||
|
border-radius: 16px;
|
||||||
|
box-shadow: 0 5px 20px -10px var(--color-shadow);
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue