RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/components/message/uikit/UiKitMessageBlock.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { IMessage, IRoom } from '@rocket.chat/core-typings';
import { MessageBlock } from '@rocket.chat/fuselage';
import { UiKitComponent, UiKitMessage as UiKitMessageSurfaceRender, UiKitContext } from '@rocket.chat/fuselage-ui-kit';
import type { MessageSurfaceLayout } from '@rocket.chat/ui-kit';
import React from 'react';

import { useMessageBlockContextValue } from '../../../uikit/hooks/useMessageBlockContextValue';
import GazzodownText from '../../GazzodownText';

type UiKitMessageBlockProps = {
    rid: IRoom['_id'];
    mid: IMessage['_id'];
    blocks: MessageSurfaceLayout;
};

const UiKitMessageBlock = ({ rid, mid, blocks }: UiKitMessageBlockProps) => {
    const contextValue = useMessageBlockContextValue(rid, mid);

    return (
        <MessageBlock fixedWidth>
            <UiKitContext.Provider value={contextValue}>
                <GazzodownText>
                    <UiKitComponent render={UiKitMessageSurfaceRender} blocks={blocks} />
                </GazzodownText>
            </UiKitContext.Provider>
        </MessageBlock>
    );
};

export default UiKitMessageBlock;