refactor: separate Episode Stats

This commit is contained in:
jinhojang6 2023-08-18 22:44:53 +09:00
parent 7d9aedf8e5
commit 879de9b79c
3 changed files with 40 additions and 5 deletions

View File

@ -3,14 +3,14 @@ import styled from '@emotion/styled'
const ArticleStats = ({ const ArticleStats = ({
date, date,
duration, readingLength,
}: { }: {
date: Date | null date: Date | null
duration: number readingLength: number
}) => ( }) => (
<Row> <Row>
<Typography variant="body3" genericFontFamily="sans-serif"> <Typography variant="body3" genericFontFamily="sans-serif">
{duration ? duration : ' '} minutes {readingLength} minutes read
</Typography> </Typography>
<Typography variant="body3"></Typography> <Typography variant="body3"></Typography>
<Typography variant="body3" genericFontFamily="sans-serif"> <Typography variant="body3" genericFontFamily="sans-serif">

View File

@ -0,0 +1,35 @@
import { Typography } from '@acid-info/lsd-react'
import styled from '@emotion/styled'
const EpisodeStats = ({
date,
duration,
}: {
date: Date | null
duration: number
}) => (
<Row>
<Typography variant="body3" genericFontFamily="sans-serif">
{duration ? duration : ' '} minutes
</Typography>
<Typography variant="body3"></Typography>
<Typography variant="body3" genericFontFamily="sans-serif">
{date &&
date.toLocaleString('en-GB', {
day: 'numeric',
month: 'long', // TODO: Should be uppercase
year: 'numeric',
})}
</Typography>
</Row>
)
const Row = styled.div`
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin-bottom: 12px;
`
export default EpisodeStats

View File

@ -3,12 +3,12 @@ import { Typography } from '@acid-info/lsd-react'
import styled from '@emotion/styled' import styled from '@emotion/styled'
import { LPE } from '../../../types/lpe.types' import { LPE } from '../../../types/lpe.types'
import ReactPlayer from 'react-player' import ReactPlayer from 'react-player'
import { default as Stats } from '@/components/Article/Article.Stats'
import { LogosCircleIcon } from '@/components/Icons/LogosCircleIcon' import { LogosCircleIcon } from '@/components/Icons/LogosCircleIcon'
import { useHookstate } from '@hookstate/core' import { useHookstate } from '@hookstate/core'
import { playerState } from '@/components/GlobalAudioPlayer/globalAudioPlayer.state' import { playerState } from '@/components/GlobalAudioPlayer/globalAudioPlayer.state'
import EpisodeChannels from './Episode.Channels' import EpisodeChannels from './Episode.Channels'
import { useEffect, useRef } from 'react' import { useEffect, useRef } from 'react'
import EpisodeStats from '../Episode.Stats'
export type EpisodeHeaderProps = LPE.Podcast.Document & { export type EpisodeHeaderProps = LPE.Podcast.Document & {
url: string url: string
@ -85,7 +85,7 @@ const EpisodeHeader = ({
} }
/> />
</PlayerContainer> </PlayerContainer>
<Stats date={date} duration={duration} /> <EpisodeStats date={date} duration={duration} />
<EpisodeTitle variant="h1" genericFontFamily="serif" component="h1"> <EpisodeTitle variant="h1" genericFontFamily="serif" component="h1">
{title} {title}
</EpisodeTitle> </EpisodeTitle>