/* eslint-disable @typescript-eslint/no-explicit-any */ import A from '@atoms/link'; import * as Text from '@atoms/text'; import { formatDate } from '@features/global/utils/format-date'; import { Message } from '@features/messages/types/message'; import ChannelAvatar from 'app/components/search-popup/parts/channel-avatar/channel-avatar'; import { useChannel } from 'app/features/channels/hooks/use-channel'; import { ChannelType } from 'app/features/channels/types/channel'; import useRouterWorkspace from 'app/features/router/hooks/use-router-workspace'; import { useSearchModal } from 'app/features/search/hooks/use-search'; import { SearchInputState } from 'app/features/search/state/search-input'; import { useUser } from 'app/features/users/hooks/use-user'; import { UserType } from 'app/features/users/types/user'; import { useState } from 'react'; import Highlighter from 'react-highlight-words'; import { useRecoilValue } from 'recoil'; import { openMessage } from '../common'; import MessageResultFile from './message-result-file'; import ResultContext from './result-context'; export default ({ message, }: { message: Message & { users?: UserType[]; channel?: ChannelType }; }) => { const input = useRecoilValue(SearchInputState); const currentWorkspaceId = useRouterWorkspace(); const user = (message.users || []).find(u => u.id === message.user_id) || useUser(message.user_id || ''); const channel = message.channel || useChannel(message?.cache?.channel_id || '').channel; const [truncated, setTruncated] = useState(true); const { setOpen } = useSearchModal(); return (