mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-24 19:32:07 +00:00
70c6c9df42
* Start * Try webframe * Lint and format * Move to package * Continue * Implement card and cleanup contexts * Start code blocks * Start rendering image * Continue with card * Start stack * Start text * Start modal * Format * Continue * Fix TS errors * Cleanup * Make markdown work with server components * Format * Add visual test * Lint and format * Fix lifecycle * Implement textinput * Divider * Remove console logs * Remove listSpaceIntegrationsBlocks
28 lines
993 B
TypeScript
28 lines
993 B
TypeScript
import { ContentKitMarkdown } from '@gitbook/api';
|
|
|
|
import { ContentKitServerElementProps } from './types';
|
|
import { ElementMarkdownClient } from './ElementMarkdownClient';
|
|
import { resolveDynamicBinding } from './dynamic';
|
|
|
|
export function ElementMarkdown(props: ContentKitServerElementProps<ContentKitMarkdown>) {
|
|
const { element, context, state } = props;
|
|
const Markdown = context.markdown;
|
|
|
|
const initialMarkdown = resolveDynamicBinding(state, element.content);
|
|
|
|
async function renderMarkdown(markdown: string) {
|
|
'use server';
|
|
return <Markdown className="contentkit-markdown" markdown={markdown} />;
|
|
}
|
|
|
|
return (
|
|
<ElementMarkdownClient
|
|
element={element}
|
|
initialMarkdown={initialMarkdown !== element.content ? initialMarkdown : undefined}
|
|
renderMarkdown={renderMarkdown}
|
|
>
|
|
<Markdown className="contentkit-markdown" markdown={initialMarkdown} />
|
|
</ElementMarkdownClient>
|
|
);
|
|
}
|