mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-04-12 00:17:02 +02:00
fix: inherit custom media renderer in nested RichText components
Previously, nested RichText components (like those in QuotedEvent/KindRenderer) would always reset the media renderer context to null because the provider used `renderMedia ?? null`. This caused embedded events in chat to use the default media renderer instead of ChatMediaRenderer. Now RichText inherits the parent media renderer when no explicit renderMedia prop is passed, allowing custom renderers to work throughout the entire rich text subtree including quoted events. https://claude.ai/code/session_01AeeN5d5EcVLGjZbGueZxaD
This commit is contained in:
@@ -146,6 +146,9 @@ export function RichText({
|
||||
renderMedia,
|
||||
children,
|
||||
}: RichTextProps) {
|
||||
// Get parent media renderer to inherit if not explicitly overridden
|
||||
const parentMediaRenderer = useMediaRenderer();
|
||||
|
||||
// Merge provided options with defaults
|
||||
const mergedOptions: Required<RichTextOptions> = {
|
||||
...defaultOptions,
|
||||
@@ -191,7 +194,9 @@ export function RichText({
|
||||
return (
|
||||
<DepthContext.Provider value={depth}>
|
||||
<OptionsContext.Provider value={mergedOptions}>
|
||||
<MediaRendererContext.Provider value={renderMedia ?? null}>
|
||||
<MediaRendererContext.Provider
|
||||
value={renderMedia !== undefined ? renderMedia : parentMediaRenderer}
|
||||
>
|
||||
<EventContext.Provider value={event ?? null}>
|
||||
<div
|
||||
dir="auto"
|
||||
|
||||
Reference in New Issue
Block a user