import styled from '@emotion/styled'; import { useOpenActivityRightDrawer } from '@/activities/hooks/useOpenActivityRightDrawer'; import { ActivityTargetsInlineCell } from '@/activities/inline-cell/components/ActivityTargetsInlineCell'; import { Note } from '@/activities/types/Note'; import { getActivityPreview } from '@/activities/utils/getActivityPreview'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useFieldContext } from '@/object-record/hooks/useFieldContext'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { FeatureFlagKey } from '~/generated-metadata/graphql'; const StyledCard = styled.div<{ isSingleNote: boolean }>` align-items: flex-start; background: ${({ theme }) => theme.background.secondary}; border: 1px solid ${({ theme }) => theme.border.color.medium}; border-radius: ${({ theme }) => theme.border.radius.md}; display: flex; flex-direction: column; height: 300px; justify-content: space-between; max-width: ${({ isSingleNote }) => (isSingleNote ? '300px' : 'unset')}; `; const StyledCardDetailsContainer = styled.div` align-items: flex-start; align-self: stretch; cursor: pointer; display: flex; flex-direction: column; gap: ${({ theme }) => theme.spacing(2)}; height: calc(100% - 45px); justify-content: start; padding: ${({ theme }) => theme.spacing(4)}; width: calc(100% - ${({ theme }) => theme.spacing(8)}); box-sizing: border-box; `; const StyledNoteTitle = styled.div` color: ${({ theme }) => theme.font.color.primary}; font-weight: ${({ theme }) => theme.font.weight.medium}; `; const StyledCardContent = styled.div` align-self: stretch; color: ${({ theme }) => theme.font.color.secondary}; line-break: anywhere; overflow: hidden; text-overflow: ellipsis; white-space: pre-line; width: 100%; `; const StyledFooter = styled.div` align-items: center; align-self: stretch; border-top: 1px solid ${({ theme }) => theme.border.color.light}; color: ${({ theme }) => theme.font.color.primary}; display: flex; flex-direction: row; gap: ${({ theme }) => theme.spacing(1)}; justify-content: center; padding: ${({ theme }) => theme.spacing(2)}; width: calc(100% - ${({ theme }) => theme.spacing(4)}); `; export const NoteCard = ({ note, isSingleNote, }: { note: Note; isSingleNote: boolean; }) => { const openActivityRightDrawer = useOpenActivityRightDrawer({ objectNameSingular: CoreObjectNameSingular.Note, }); const isRichTextV2Enabled = useIsFeatureEnabled( FeatureFlagKey.IsRichTextV2Enabled, ); const body = getActivityPreview( isRichTextV2Enabled ? (note?.bodyV2?.blocknote ?? null) : note?.body, ); const { FieldContextProvider: NoteTargetsContextProvider } = useFieldContext({ objectNameSingular: CoreObjectNameSingular.Note, objectRecordId: note.id, fieldMetadataName: 'noteTargets', fieldPosition: 0, }); return ( openActivityRightDrawer(note.id)} > {note.title ?? 'Task Title'} {body} {NoteTargetsContextProvider && ( )} ); };