diff --git a/app/components/DialogInput/DialogInput.tsx b/app/components/DialogInput/DialogInput.tsx index 3999432..6a28fbb 100644 --- a/app/components/DialogInput/DialogInput.tsx +++ b/app/components/DialogInput/DialogInput.tsx @@ -1,7 +1,7 @@ import { useDialog } from "@/app/providers/DialogProvider/useDialog"; import { useRosettaColors } from "@/app/hooks/useRosettaColors"; import { Box, Divider, Flex, Menu, Popover, Text, Transition, useComputedColorScheme } from "@mantine/core"; -import { IconBarrierBlock, IconCamera, IconDoorExit, IconFile, IconMoodSmile, IconPaperclip, IconSend } from "@tabler/icons-react"; +import { IconBarrierBlock, IconCamera, IconDoorExit, IconFile, IconMicrophone, IconMoodSmile, IconPaperclip, IconSend } from "@tabler/icons-react"; import { useEffect, useRef, useState } from "react"; import { useBlacklist } from "@/app/providers/BlacklistProvider/useBlacklist"; import { filePrapareForNetworkTransfer, generateRandomKey, imagePrepareForNetworkTransfer } from "@/app/utils/utils"; @@ -64,6 +64,13 @@ export function DialogInput() { }] ], [], true); + const hasText = message.trim().length > 0; + const showSendIcon = hasText || attachments.length > 0; + + const onMicClick = () => { + console.info("Start voice record"); + }; + const fileDialog = useFileDialog({ multiple: false, //naccept: '*', @@ -435,9 +442,41 @@ export function DialogInput() { /> - + + + {(styles) => ( + + )} + + + + {(styles) => ( + + )} + + } {blocked && diff --git a/app/providers/PlayerProvider/PlayerProvider.tsx b/app/providers/PlayerProvider/PlayerProvider.tsx new file mode 100644 index 0000000..203bb48 --- /dev/null +++ b/app/providers/PlayerProvider/PlayerProvider.tsx @@ -0,0 +1,25 @@ +import { createContext, useRef } from "react"; + +const PlayerContext = createContext(null); +/** + * Провайдер для Audio/Video плеера + */ +interface PlayerProviderProps { + children: React.ReactNode; +} +export function PlayerProvider(props : PlayerProviderProps) { + + const audioRef = useRef(null); + + const playVoice = () => { + + } + + + return ( + + {props.children} + + ) +} \ No newline at end of file