From 2cd0cde5fc7d650929c6a4e2d559326becc2ca6d Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Mon, 16 Dec 2024 15:16:40 -0800 Subject: [PATCH] added button to remove staged asset --- app/client/web/src/conversation/Conversation.tsx | 12 +++++------- .../conversation/audioFile/AudioFile.module.css | 14 ++++++++++---- .../web/src/conversation/audioFile/AudioFile.tsx | 8 ++++++-- .../conversation/binaryFile/BinaryFile.module.css | 6 ++++++ .../web/src/conversation/binaryFile/BinaryFile.tsx | 8 ++++++-- .../conversation/imageFile/ImageFile.module.css | 7 +++++++ .../web/src/conversation/imageFile/ImageFile.tsx | 10 ++++++++-- .../web/src/conversation/useConversation.hook.ts | 4 ++++ .../conversation/videoFile/VideoFile.module.css | 6 ++++++ .../web/src/conversation/videoFile/VideoFile.tsx | 9 +++++++-- 10 files changed, 65 insertions(+), 19 deletions(-) diff --git a/app/client/web/src/conversation/Conversation.tsx b/app/client/web/src/conversation/Conversation.tsx index 9db4700e..8f305629 100644 --- a/app/client/web/src/conversation/Conversation.tsx +++ b/app/client/web/src/conversation/Conversation.tsx @@ -134,18 +134,16 @@ export function Conversation() { const media = state.assets.map((asset, index: number) => { if (asset.type === 'image') { - return + return actions.removeAsset(index)} /> } else if (asset.type === 'video') { - return actions.setThumbPosition(index, position)} disabled={sending} /> + return actions.setThumbPosition(index, position)} disabled={sending} remove={() => actions.removeAsset(index)}/> } else if (asset.type === 'audio') { - return actions.setLabel(index, label)} disabled={sending} /> + return actions.setLabel(index, label)} disabled={sending} remove={() => actions.removeAsset(index)} /> } else { - return + return actions.removeAsset(index)} /> } }); -console.log("HIIGHT: ", height); - return (
@@ -209,7 +207,7 @@ console.log("HIIGHT: ", height);
)}
- +
addImage(e.target?.files?.[0])} style={{display: 'none'}}/> addVideo(e.target?.files?.[0])} style={{display: 'none'}}/> diff --git a/app/client/web/src/conversation/audioFile/AudioFile.module.css b/app/client/web/src/conversation/audioFile/AudioFile.module.css index 4864a8fb..da6db231 100644 --- a/app/client/web/src/conversation/audioFile/AudioFile.module.css +++ b/app/client/web/src/conversation/audioFile/AudioFile.module.css @@ -1,6 +1,9 @@ .asset { - padding-top: 16px; + margin-top: 16px; position: relative; + display: flex; + align-items: center; + justify-content: center; .thumb { width: auto; @@ -8,14 +11,17 @@ } .label { - padding-top: 16px; padding-left: 2px; padding-right: 2px; position: absolute; font-size: 8px; + bottom: 0; + } + + .close { + position: absolute; + right: 0; top: 0; - left: 0; - height: 67%; } } diff --git a/app/client/web/src/conversation/audioFile/AudioFile.tsx b/app/client/web/src/conversation/audioFile/AudioFile.tsx index 1a440091..bfc26625 100644 --- a/app/client/web/src/conversation/audioFile/AudioFile.tsx +++ b/app/client/web/src/conversation/audioFile/AudioFile.tsx @@ -1,10 +1,11 @@ import React from 'react'; -import { Image, Textarea } from '@mantine/core' +import { ActionIcon, Image, Textarea } from '@mantine/core' import { useAudioFile } from './useAudioFile.hook'; import classes from './AudioFile.module.css' import audio from '../../images/audio.png' +import { IconX } from '@tabler/icons-react' -export function AudioFile({ source, updateLabel, disabled }: {source: File, updateLabel: (label: string)=>void, disabled: boolean}) { +export function AudioFile({ source, updateLabel, disabled, remove }: {source: File, updateLabel: (label: string)=>void, disabled: boolean, remove: ()=>void}) { const { state, actions } = useAudioFile(source); const setLabel = (label: string) => { @@ -16,6 +17,9 @@ export function AudioFile({ source, updateLabel, disabled }: {source: File, upda