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:
2026-05-03 10:44:54 +07:00
parent 78f81bebb6
commit 2d1be52177
2352 changed files with 662964 additions and 0 deletions

View File

@@ -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 }} />