Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/blocks/ActionsBlock.Action.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import type { ReactElement } from 'react';

type ActionProps = {
element: UiKit.ActionsBlock['elements'][number];
parser: UiKit.SurfaceRenderer<ReactElement>;
parser: UiKit.SurfaceRenderer<ReactElement<any>>;
index: number;
};

const Action = ({ element, parser, index }: ActionProps): ReactElement | null => {
const Action = ({ element, parser, index }: ActionProps) => {
const renderedElement = parser.renderActionsBlockElement(element, index);

if (!renderedElement) {
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/ActionsBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Box, Button } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useCallback, useMemo, useState } from 'react';

import Action from './ActionsBlock.Action';
Expand All @@ -9,7 +8,7 @@ import type { BlockProps } from '../utils/BlockProps';

type ActionsBlockProps = BlockProps<UiKit.ActionsBlock>;

const ActionsBlock = ({ className, block, surfaceRenderer }: ActionsBlockProps): ReactElement => {
const ActionsBlock = ({ className, block, surfaceRenderer }: ActionsBlockProps) => {
const surfaceType = useSurfaceType();

const [showMoreVisible, setShowMoreVisible] = useState(() => block.elements.length > 5 && surfaceType !== 'banner');
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/CalloutBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { Callout } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import type { BlockProps } from '../utils/BlockProps';

type CalloutBlockProps = BlockProps<UiKit.CalloutBlock>;

const CalloutBlock = ({ block, surfaceRenderer }: CalloutBlockProps): ReactElement => (
const CalloutBlock = ({ block, surfaceRenderer }: CalloutBlockProps) => (
<Callout
type={block.variant}
title={block.title?.text}
Expand Down
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/blocks/ContextBlock.Item.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import type { ReactElement } from 'react';

type ItemProps = {
block: UiKit.ContextBlock['elements'][number];
surfaceRenderer: UiKit.SurfaceRenderer<ReactElement>;
surfaceRenderer: UiKit.SurfaceRenderer<ReactElement<any>>;
index: number;
};

const Item = ({ block: element, surfaceRenderer: parser, index }: ItemProps): ReactElement | null => {
const Item = ({ block: element, surfaceRenderer: parser, index }: ItemProps) => {
const renderedElement = parser.renderContextBlockElement(element, index);

if (!renderedElement) {
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/ContextBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { Box } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useMemo } from 'react';

import Item from './ContextBlock.Item';
import type { BlockProps } from '../utils/BlockProps';

type ContextBlockProps = BlockProps<UiKit.ContextBlock>;

const ContextBlock = ({ className, block, surfaceRenderer }: ContextBlockProps): ReactElement => {
const ContextBlock = ({ className, block, surfaceRenderer }: ContextBlockProps) => {
const itemElements = useMemo(
() =>
block.elements.map((element) => ({
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/DividerBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { Divider } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo } from 'react';

import type { BlockProps } from '../utils/BlockProps';

type DividerBlockProps = BlockProps<UiKit.DividerBlock>;

const DividerBlock = ({ className }: DividerBlockProps): ReactElement => <Divider className={className} marginBlock={24} />;
const DividerBlock = ({ className }: DividerBlockProps) => <Divider className={className} marginBlock={24} />;

export default memo(DividerBlock);
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/ImageBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Box, Skeleton } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useEffect, useState } from 'react';

import { Image } from './ImageBlock.styles';
Expand Down Expand Up @@ -32,7 +31,7 @@ const fetchImageState = (img: HTMLImageElement) => {

type ImageBlockProps = BlockProps<UiKit.ImageBlock>;

const ImageBlock = ({ className, block, surfaceRenderer }: ImageBlockProps): ReactElement => {
const ImageBlock = ({ className, block, surfaceRenderer }: ImageBlockProps) => {
const surface = useSurfaceType();

const alignment = surface === 'banner' || surface === 'message' ? 'flex-start' : 'center';
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/InfoCard.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { Box } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import IconElement from '../elements/IconElement';
import type { BlockProps } from '../utils/BlockProps';

type InfoCardProps = BlockProps<UiKit.InfoCardBlock>;

const InfoCard = ({ block, surfaceRenderer, context }: InfoCardProps): ReactElement => {
const InfoCard = ({ block, surfaceRenderer, context }: InfoCardProps) => {
const { rows, blockId } = block;
return (
<Box
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/InputBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { Field, FieldLabel, FieldRow, FieldError, FieldHint } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useMemo } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type InputBlockProps = BlockProps<UiKit.InputBlock>;

const InputBlock = ({ className, block, surfaceRenderer, context }: InputBlockProps): ReactElement => {
const InputBlock = ({ className, block, surfaceRenderer, context }: InputBlockProps) => {
const inputElement = useMemo(
() => ({
...block.element,
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/PreviewBlock.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ import {
} from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import { isPreviewBlockWithThumb, isPreviewBlockWithPreview } from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo } from 'react';

import ContextBlock from './ContextBlock';
import type { BlockProps } from '../utils/BlockProps';

type PreviewBlockProps = BlockProps<UiKit.PreviewBlock>;

const PreviewBlock = ({ block, surfaceRenderer }: PreviewBlockProps): ReactElement => (
const PreviewBlock = ({ block, surfaceRenderer }: PreviewBlockProps) => (
<Box>
<MessageGenericPreview>
{isPreviewBlockWithPreview(block) && block.preview?.dimensions && (
Expand Down
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/blocks/SectionBlock.Fields.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ const breakpoints = {

type FieldsProps = {
fields: readonly UiKit.TextObject[];
surfaceRenderer: UiKit.SurfaceRenderer<ReactElement>;
surfaceRenderer: UiKit.SurfaceRenderer<ReactElement<any>>;
};

const Fields = ({ fields, surfaceRenderer }: FieldsProps): ReactElement => (
const Fields = ({ fields, surfaceRenderer }: FieldsProps) => (
<Grid>
{fields.map((field, i) => (
<GridItem key={i} {...breakpoints}>
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/SectionBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { Box, Flex, Grid, GridItem } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useMemo } from 'react';

import Fields from './SectionBlock.Fields';
import type { BlockProps } from '../utils/BlockProps';

type SectionBlockProps = BlockProps<UiKit.SectionBlock>;

const SectionBlock = ({ className, block, surfaceRenderer }: SectionBlockProps): ReactElement => {
const SectionBlock = ({ className, block, surfaceRenderer }: SectionBlockProps) => {
const { text, fields } = block;

const accessoryElement = useMemo(
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/blocks/TabNavigationBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { Tabs } from '@rocket.chat/fuselage';
import type { ExperimentalTabNavigationBlock } from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useState } from 'react';

import { TabElement } from '../elements/TabElement';
import type { BlockProps } from '../utils/BlockProps';

type TabNavigationBlockProps = BlockProps<ExperimentalTabNavigationBlock>;

const TabNavigationBlock = (blockProps: TabNavigationBlockProps): ReactElement => {
const TabNavigationBlock = (blockProps: TabNavigationBlockProps) => {
const {
block: { tabs },
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
VideoConfMessageActions,
VideoConfMessageAction,
} from '@rocket.chat/ui-video-conf';
import type { MouseEventHandler, ReactElement } from 'react';
import type { MouseEventHandler } from 'react';
import { useContext, memo, useMemo } from 'react';

import { UiKitContext } from '../..';
Expand All @@ -27,7 +27,7 @@ type VideoConferenceBlockProps = BlockProps<UiKit.VideoConferenceBlock>;

const MAX_USERS = 3;

const VideoConferenceBlock = ({ block }: VideoConferenceBlockProps): ReactElement => {
const VideoConferenceBlock = ({ block }: VideoConferenceBlockProps) => {
const t = useTranslation();
const { callId, appId = 'videoconf-core' } = block;
const surfaceType = useSurfaceType();
Expand Down
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/elements/ButtonElement.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Button, Throbber } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { MouseEventHandler, ReactElement } from 'react';
import type { MouseEventHandler } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type ButtonElementProps = BlockProps<UiKit.ButtonElement>;

const ButtonElement = ({ block, context, surfaceRenderer }: ButtonElementProps): ReactElement => {
const ButtonElement = ({ block, context, surfaceRenderer }: ButtonElementProps) => {
Comment thread
tassoevan marked this conversation as resolved.
Resolved
const [{ loading }, action] = useUiKitState(block, context);
const { style, url, text, value, secondary } = block;

Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/CheckboxElement.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { CheckBox, Box } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type CheckboxElementProps = BlockProps<UiKit.CheckboxElement>;

const CheckboxElement = ({ block, context, surfaceRenderer }: CheckboxElementProps): ReactElement => {
const CheckboxElement = ({ block, context, surfaceRenderer }: CheckboxElementProps) => {
const [{ loading, value }, action] = useUiKitState(block, context);
const { options } = block;

Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/DatePickerElement.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { InputBox } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import { useStringFromTextObject } from '../hooks/useStringFromTextObject';
import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type DatePickerElementProps = BlockProps<UiKit.DatePickerElement>;

const DatePickerElement = ({ block, context }: DatePickerElementProps): ReactElement => {
const DatePickerElement = ({ block, context }: DatePickerElementProps) => {
const [{ loading, value, error }, action] = useUiKitState(block, context);
const { actionId, placeholder } = block;
const fromTextObjectToString = useStringFromTextObject();
Expand Down
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/elements/IconButtonElement.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { IconButton } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { MouseEventHandler, ReactElement } from 'react';
import type { MouseEventHandler } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type IconButtonElementProps = BlockProps<UiKit.IconButtonElement>;

const IconButtonElement = ({ block, context }: IconButtonElementProps): ReactElement => {
const IconButtonElement = ({ block, context }: IconButtonElementProps) => {
const [{ loading }, action] = useUiKitState(block, context);

const { url, value, label, icon } = block;
Expand Down
4 changes: 2 additions & 2 deletions packages/fuselage-ui-kit/src/elements/IconElement.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Icon, FramedIcon } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ComponentProps, ReactElement } from 'react';
import type { ComponentProps } from 'react';

import type { BlockProps } from '../utils/BlockProps';

Expand Down Expand Up @@ -35,7 +35,7 @@ const getFramedIconProps = (
}
};

const IconElement = ({ block }: IconElementProps): ReactElement => {
const IconElement = ({ block }: IconElementProps) => {
const { icon, variant, framed } = block;
if (framed) {
return <FramedIcon size={20} icon={icon} {...getFramedIconProps(variant)} />;
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/ImageElement.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import { Element } from './ImageElement.styles';
import type { BlockProps } from '../utils/BlockProps';

type ImageElementProps = BlockProps<UiKit.ImageElement>;

const ImageElement = ({ block, context }: ImageElementProps): ReactElement | null => {
const ImageElement = ({ block, context }: ImageElementProps) => {
const size = (context === UiKit.BlockContext.SECTION && 88) || (context === UiKit.BlockContext.CONTEXT && 20) || undefined;

if (!size) {
Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/LinearScaleElement.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { Box, Button, ButtonGroup } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useMemo } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type LinearScaleElementProps = BlockProps<UiKit.LinearScaleElement>;

const LinearScaleElement = ({ className, block, context, surfaceRenderer }: LinearScaleElementProps): ReactElement => {
const LinearScaleElement = ({ className, block, context, surfaceRenderer }: LinearScaleElementProps) => {
Comment thread
tassoevan marked this conversation as resolved.
Resolved
const { minValue = 0, maxValue = 10, initialValue, preLabel, postLabel } = block;

const [{ loading, value = initialValue, error }, action] = useUiKitState(block, context);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type { SelectOption } from '@rocket.chat/fuselage';
import { MultiSelectFiltered } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo, useCallback, useMemo } from 'react';

import { useStringFromTextObject } from '../hooks/useStringFromTextObject';
Expand All @@ -10,7 +9,7 @@ import type { BlockProps } from '../utils/BlockProps';

type MultiStaticSelectElementProps = BlockProps<UiKit.MultiStaticSelectElement>;

const MultiStaticSelectElement = ({ block, context }: MultiStaticSelectElementProps): ReactElement => {
const MultiStaticSelectElement = ({ block, context }: MultiStaticSelectElementProps) => {
const [{ loading, value, error }, action] = useUiKitState(block, context);
const fromTextObjectToString = useStringFromTextObject();

Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/OverflowElement.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type { OptionType } from '@rocket.chat/fuselage';
import { IconButton, PositionAnimated, Options, useCursor } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { useRef, useCallback, useMemo } from 'react';

import { useStringFromTextObject } from '../hooks/useStringFromTextObject';
Expand All @@ -10,7 +9,7 @@ import type { BlockProps } from '../utils/BlockProps';

type OverflowElementProps = BlockProps<UiKit.OverflowElement>;

const OverflowElement = ({ block, context }: OverflowElementProps): ReactElement => {
const OverflowElement = ({ block, context }: OverflowElementProps) => {
const [{ loading }, action] = useUiKitState(block, context);
const fromTextObjectToString = useStringFromTextObject();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { TextAreaInput, TextInput } from '@rocket.chat/fuselage';
import type * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';
import { memo } from 'react';

import { useStringFromTextObject } from '../hooks/useStringFromTextObject';
Expand All @@ -9,7 +8,7 @@ import type { BlockProps } from '../utils/BlockProps';

type PlainTextInputElementProps = BlockProps<UiKit.PlainTextInputElement>;

const PlainTextInputElement = ({ block, context }: PlainTextInputElementProps): ReactElement => {
const PlainTextInputElement = ({ block, context }: PlainTextInputElementProps) => {
const [{ loading, value, error }, action] = useUiKitState(block, context);
const fromTextObjectToString = useStringFromTextObject();

Expand Down
3 changes: 1 addition & 2 deletions packages/fuselage-ui-kit/src/elements/RadioButtonElement.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { Box, RadioButton } from '@rocket.chat/fuselage';
import * as UiKit from '@rocket.chat/ui-kit';
import type { ReactElement } from 'react';

import { useUiKitState } from '../hooks/useUiKitState';
import type { BlockProps } from '../utils/BlockProps';

type RadioButtonElementProps = BlockProps<UiKit.RadioButtonElement>;

const RadioButtonElement = ({ block, context, surfaceRenderer }: RadioButtonElementProps): ReactElement => {
const RadioButtonElement = ({ block, context, surfaceRenderer }: RadioButtonElementProps) => {
const [{ loading, value }, action] = useUiKitState(block, context);
const { options } = block;

Expand Down
Loading
Loading