From 11d155a0c851b5eb40771897f6f5f8f1a70ef0eb Mon Sep 17 00:00:00 2001 From: soumya pratik Date: Wed, 16 Oct 2024 15:25:52 +0530 Subject: [PATCH 1/2] feat(client): audio ui block implementation --- .../src/assets/img/BLOCK_AUDIO_PLAYER.png | Bin 0 -> 8977 bytes .../block-defaults/audio-block/AudioBlock.tsx | 49 ++++++++++ .../block-defaults/audio-block/config.tsx | 86 ++++++++++++++++++ .../block-defaults/audio-block/index.ts | 2 + .../src/components/block-defaults/index.ts | 4 + .../components/designer/designer.constants.ts | 18 ++++ 6 files changed, 159 insertions(+) create mode 100644 packages/client/src/assets/img/BLOCK_AUDIO_PLAYER.png create mode 100644 packages/client/src/components/block-defaults/audio-block/AudioBlock.tsx create mode 100644 packages/client/src/components/block-defaults/audio-block/config.tsx create mode 100644 packages/client/src/components/block-defaults/audio-block/index.ts diff --git a/packages/client/src/assets/img/BLOCK_AUDIO_PLAYER.png b/packages/client/src/assets/img/BLOCK_AUDIO_PLAYER.png new file mode 100644 index 0000000000000000000000000000000000000000..3b020efcc780e5d7c4afe8a2d72a2446b38d99e4 GIT binary patch literal 8977 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 S9Pc+4z-<$&TNO84qyGn%IU6eg literal 0 HcmV?d00001 diff --git a/packages/client/src/components/block-defaults/audio-block/AudioBlock.tsx b/packages/client/src/components/block-defaults/audio-block/AudioBlock.tsx new file mode 100644 index 0000000000..740765a4ee --- /dev/null +++ b/packages/client/src/components/block-defaults/audio-block/AudioBlock.tsx @@ -0,0 +1,49 @@ +import { observer } from 'mobx-react-lite'; + +import { useBlock } from '@/hooks'; +import { BlockDef, BlockComponent } from '@/stores'; + +import { styled } from '@mui/material'; + +const StyledLabel = styled('span')(({ theme }) => ({ + marginBottom: '4px', + display: 'flex', + flexDirection: 'column', + alignItems: 'flex-start', + justifyContent: 'center', + gap: '4px', +})); + +export interface AudioBlockDef extends BlockDef<'audio-player'> { + widget: 'audio-player'; + data: { + label: string; + autoplay: boolean; + controls: boolean; + loop: boolean; + source: string; + }; + listeners: { + onClick: true; + }; +} + +const StyledContainer = styled('div')(({ theme }) => ({ + padding: '4px', +})); + +export const AudioBlock: BlockComponent = observer(({ id }) => { + const { attrs, data } = useBlock(id); + + return ( + + {data.label} + + + ); +}); diff --git a/packages/client/src/components/block-defaults/audio-block/config.tsx b/packages/client/src/components/block-defaults/audio-block/config.tsx new file mode 100644 index 0000000000..35887d144e --- /dev/null +++ b/packages/client/src/components/block-defaults/audio-block/config.tsx @@ -0,0 +1,86 @@ +import { CSSProperties } from 'react'; +import { BlockConfig } from '@/stores'; +import { InputSettings, QueryInputSettings } from '@/components/block-settings'; + +import { AudioBlockDef, AudioBlock } from './AudioBlock'; +import HeadsetIcon from '@mui/icons-material/Headset'; +import { BLOCK_TYPE_ACTION } from '../block-defaults.constants'; +import { SwitchSettings } from '@/components/block-settings/shared/SwitchSettings'; + +export const DefaultStyles: CSSProperties = {}; + +// export the config for the block +export const config: BlockConfig = { + widget: 'audio-player', + type: BLOCK_TYPE_ACTION, + data: { + label: 'Audio Player', + autoplay: false, + controls: true, + loop: false, + source: '', + }, + listeners: { + onClick: [], + }, + slots: {}, + render: AudioBlock, + icon: HeadsetIcon, + contentMenu: [ + { + name: 'General', + children: [ + { + description: 'Label', + render: ({ id }) => ( + + ), + }, + { + description: 'Audio URL', + render: ({ id }) => ( + + ), + }, + { + description: 'Autoplay', + render: ({ id }) => ( + + ), + }, + { + description: 'Controls', + render: ({ id }) => ( + + ), + }, + { + description: 'Loop', + render: ({ id }) => ( + + ), + }, + ], + }, + ], + styleMenu: [], +}; diff --git a/packages/client/src/components/block-defaults/audio-block/index.ts b/packages/client/src/components/block-defaults/audio-block/index.ts new file mode 100644 index 0000000000..b59fade880 --- /dev/null +++ b/packages/client/src/components/block-defaults/audio-block/index.ts @@ -0,0 +1,2 @@ +export * from './config'; +export * from './AudioBlock'; diff --git a/packages/client/src/components/block-defaults/index.ts b/packages/client/src/components/block-defaults/index.ts index 4ceeb1d606..1d7a404c36 100644 --- a/packages/client/src/components/block-defaults/index.ts +++ b/packages/client/src/components/block-defaults/index.ts @@ -1,4 +1,5 @@ import { Registry } from '@/stores'; +import { config as AudioBlockConfig, AudioBlockDef } from './audio-block'; import { config as BodyBlockConfig, BodyBlockDef } from './body-block'; import { config as ButtonBlockConfig, ButtonBlockDef } from './button-block'; import { config as QueryBlockConfig, QueryBlockDef } from './query-block'; @@ -51,6 +52,7 @@ import { config as ModalBlockConfig, ModalBlockDef } from './modal-block'; import { config as StepperBlockConfig, StepperBlockDef } from './stepper-block'; export type DefaultBlockDefinitions = + | AudioBlockDef | BodyBlockDef | ButtonBlockDef | CheckboxBlockDef @@ -82,6 +84,7 @@ export type DefaultBlockDefinitions = | ModalBlockDef; export const DefaultBlocks: Registry = { + [AudioBlockConfig.widget]: AudioBlockConfig, [ButtonBlockConfig.widget]: ButtonBlockConfig, [CheckboxBlockConfig.widget]: CheckboxBlockConfig, [CompareLLMBlockConfig.widget]: CompareLLMBlockConfig, @@ -115,6 +118,7 @@ export function getTypeForBlock(widget: string) { } export { + AudioBlockConfig, ButtonBlockConfig, ContainerBlockConfig, CheckboxBlockConfig, diff --git a/packages/client/src/components/designer/designer.constants.ts b/packages/client/src/components/designer/designer.constants.ts index 40e61e67ad..8d76d6bb91 100644 --- a/packages/client/src/components/designer/designer.constants.ts +++ b/packages/client/src/components/designer/designer.constants.ts @@ -1,5 +1,6 @@ import { BlockJSON } from '@/stores'; +import BLOCK_AUDIO_PLAYER from '@/assets/img/BLOCK_AUDIO_PLAYER.png'; import BLOCK_BUTTON from '@/assets/img/BLOCK_BUTTON.png'; import BLOCK_CHECKBOX from '@/assets/img/BLOCK_CHECKBOX.png'; import BLOCK_CONTAINER from '@/assets/img/BLOCK_CONTAINER.png'; @@ -116,6 +117,23 @@ export interface AddBlocksMenuItem { * Show the default blocks menu */ export const DEFAULT_MENU: AddBlocksMenuItem[] = [ + { + section: SECTION_INPUT, + image: BLOCK_AUDIO_PLAYER, + name: 'Audio Player', + json: { + widget: 'audio-player', + data: { + label: 'Audio Player', + autoplay: false, + controls: true, + loop: false, + source: '', + }, + listeners: {}, + slots: {} as BlockJSON['slots'], + }, + }, { section: SECTION_INPUT, image: BLOCK_BUTTON, From b0e9ac2cbaaf5034f224101f10ed33e7f890260e Mon Sep 17 00:00:00 2001 From: soumya pratik Date: Mon, 28 Oct 2024 13:05:01 +0530 Subject: [PATCH 2/2] feat(client): updating block image --- .../src/assets/img/BLOCK_AUDIO_PLAYER.png | Bin 8977 -> 8179 bytes .../components/designer/AddBlocksMenuCard.tsx | 1 + 2 files changed, 1 insertion(+) diff --git a/packages/client/src/assets/img/BLOCK_AUDIO_PLAYER.png b/packages/client/src/assets/img/BLOCK_AUDIO_PLAYER.png index 3b020efcc780e5d7c4afe8a2d72a2446b38d99e4..1f7a8de29516882c7c7c1a7d1ec5add6855666b5 100644 GIT binary patch literal 8179 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 S9Pc+4z-<$&TNO84qyGn%IU6eg diff --git a/packages/client/src/components/designer/AddBlocksMenuCard.tsx b/packages/client/src/components/designer/AddBlocksMenuCard.tsx index a0ccdd7fd2..2a4c2213e9 100644 --- a/packages/client/src/components/designer/AddBlocksMenuCard.tsx +++ b/packages/client/src/components/designer/AddBlocksMenuCard.tsx @@ -15,6 +15,7 @@ const StyledCard = styled(Card)(({ theme }) => ({ border: `1px solid rgba(0, 0, 0, 0.23)`, //TODO: styled needs to be updated to match the theme borderRadius: '12px', // theme.shape.borderRadiusLg + justifyContent: 'center', })); export interface AddBlocksMenuItemProps {