Emdash source with visual editor image upload fix
Fixes: 1. media.ts: wrap placeholder generation in try-catch 2. toolbar.ts: check r.ok, display error message in popover
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
/**
|
||||
* Custom Portable Text renderer for marketing blocks.
|
||||
*
|
||||
* This component maps custom block types (marketing.hero, marketing.features, etc.)
|
||||
* to their corresponding Astro components. Pass it to the PortableText component
|
||||
* via the `components` prop.
|
||||
*/
|
||||
import type { PortableTextBlock } from "emdash";
|
||||
import { PortableText } from "emdash/ui";
|
||||
import Hero from "./blocks/Hero.astro";
|
||||
import Features from "./blocks/Features.astro";
|
||||
import Testimonials from "./blocks/Testimonials.astro";
|
||||
import Pricing from "./blocks/Pricing.astro";
|
||||
import FAQ from "./blocks/FAQ.astro";
|
||||
|
||||
interface Props {
|
||||
value: PortableTextBlock[];
|
||||
}
|
||||
|
||||
const { value } = Astro.props;
|
||||
|
||||
// Custom block type components
|
||||
const marketingTypes = {
|
||||
"marketing.hero": Hero,
|
||||
"marketing.features": Features,
|
||||
"marketing.testimonials": Testimonials,
|
||||
"marketing.pricing": Pricing,
|
||||
"marketing.faq": FAQ,
|
||||
};
|
||||
---
|
||||
|
||||
<PortableText value={value} components={{ type: marketingTypes }} />
|
||||
Reference in New Issue
Block a user