message-and-dropdown.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import {
  2. Message as MessageType,
  3. useChatContext,
  4. } from '@/features/chat/context/chat-context'
  5. import classNames from 'classnames'
  6. import MessageDropdown from '@/features/chat/components/message-dropdown'
  7. import MessageContent from '@/features/chat/components/message-content'
  8. import { useFeatureFlag } from '@/shared/context/split-test-context'
  9. export function MessageAndDropdown({
  10. message,
  11. fromSelf,
  12. }: {
  13. message: MessageType
  14. fromSelf: boolean
  15. }) {
  16. const { idOfMessageBeingEdited } = useChatContext()
  17. const hasChatEditDelete = useFeatureFlag('chat-edit-delete')
  18. const editing = idOfMessageBeingEdited === message.id
  19. return (
  20. <div
  21. className={classNames('message-and-dropdown', {
  22. 'pending-message': message.pending,
  23. })}
  24. >
  25. {hasChatEditDelete && fromSelf && !message.pending && !editing ? (
  26. <MessageDropdown message={message} />
  27. ) : null}
  28. <div className="message-content">
  29. <MessageContent
  30. content={message.content}
  31. messageId={message.id}
  32. edited={message.edited}
  33. />
  34. </div>
  35. </div>
  36. )
  37. }