import styled from '@emotion/styled'; import { useRecoilValue } from 'recoil'; import { TimelineCreateButtonGroup } from '@/activities/timeline/components/TimelineCreateButtonGroup'; import { timelineActivitiesNetworkingState } from '@/activities/timeline/states/timelineActivitiesNetworkingState'; import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity'; import AnimatedPlaceholder from '@/ui/layout/animated-placeholder/components/AnimatedPlaceholder'; import { AnimatedPlaceholderEmptyContainer, AnimatedPlaceholderEmptySubTitle, AnimatedPlaceholderEmptyTextContainer, AnimatedPlaceholderEmptyTitle, } from '@/ui/layout/animated-placeholder/components/EmptyPlaceholderStyled'; import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; import { TimelineItemsContainer } from './TimelineItemsContainer'; const StyledMainContainer = styled.div` align-items: flex-start; align-self: stretch; border-top: ${({ theme }) => useIsMobile() ? `1px solid ${theme.border.color.medium}` : 'none'}; display: flex; flex-direction: column; height: 100%; justify-content: center; `; export const Timeline = ({ targetableObject, }: { targetableObject: ActivityTargetableObject; }) => { const { initialized, noActivities } = useRecoilValue( timelineActivitiesNetworkingState, ); const showEmptyState = noActivities; const showLoadingState = !initialized; if (showLoadingState) { // TODO: Display a beautiful loading page return <>; } if (showEmptyState) { return ( Add your first Activity There are no activities associated with this record.{' '} ); } return ( ); };