Skip to content

Commit

Permalink
fix: fix time alignment in controller
Browse files Browse the repository at this point in the history
  • Loading branch information
ambar committed Sep 18, 2021
1 parent c490426 commit 4f6c0cd
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 93 deletions.
6 changes: 3 additions & 3 deletions packages/griffith/src/components/Controller.styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,12 @@ export default StyleSheet.create({
},

time: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
padding: '0 0.5em',
width: '100px',
whiteSpace: 'nowrap',
textAlign: 'center',
fontSize: '0.875em',
lineHeight: 2.5,
color: 'rgba(255, 255, 255, 0.9)',
},

Expand Down
2 changes: 1 addition & 1 deletion packages/griffith/src/components/Controller.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ class Controller extends Component<ControllerProps, State> {
{hiddenTimeline && <div className={css(styles.timelineHolder)} />}
{!hiddenTime && (
<CombinedTimeItem
isFullScreen={isFullScreen}
isFullScreen={isFullScreen!}
currentTime={displayedCurrentTime}
duration={duration}
/>
Expand Down
4 changes: 2 additions & 2 deletions packages/griffith/src/components/Player.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import ObjectFitContext, {ObjectFit} from '../contexts/ObjectFitContext'
import PositionProvider from '../contexts/PositionProvider'
import ObjectFitProvider from '../contexts/ObjectFitProvider'
import LocaleProvider from '../contexts/LocaleProvider'
import Time from './Time'
import Icon from './Icon'
import * as icons from './icons/display/index'
import Loader from './Loader'
Expand All @@ -31,6 +30,7 @@ import Controller, {ToggleType} from './Controller'
import VolumeItem from './items/VolumeItem'
import MinimalTimeline from './MinimalTimeline'
import getBufferedTime from '../utils/getBufferedTime'
import formatDuration from '../utils/formatDuration'
import storage from '../utils/storage'
import Pip from '../utils/pip'

Expand Down Expand Up @@ -629,7 +629,7 @@ class InnerPlayer extends Component<InnerPlayerProps, State> {
isMobile && styles.coverTimeMobile
)}
>
<Time value={duration} />
{formatDuration(duration)}
</div>
)}
{/* 只有在第一次未播放时展示播放按钮,播放结束全部展示重播按钮 */}
Expand Down
21 changes: 0 additions & 21 deletions packages/griffith/src/components/Time.tsx

This file was deleted.

10 changes: 0 additions & 10 deletions packages/griffith/src/components/__tests__/Time.spec.tsx

This file was deleted.

This file was deleted.

14 changes: 7 additions & 7 deletions packages/griffith/src/components/items/CombinedTimeItem.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import React from 'react'
import {css} from 'aphrodite/no-important'
import formatDuration from '../../utils/formatDuration'
import styles from '../Controller.styles'
import Time from '../Time'

const CombinedTimeItem = ({isFullScreen, currentTime, duration}: any) => (
const CombinedTimeItem: React.FC<{
isFullScreen: boolean
currentTime: number
duration: number
}> = ({isFullScreen, currentTime, duration}) => (
<div className={css(styles.time, isFullScreen && styles.fullScreenedTime)}>
<div>
<Time value={currentTime} />
{' / '}
<Time value={duration} />
</div>
{`${formatDuration(currentTime)} / ${formatDuration(duration)}`}
</div>
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@

exports[`CombinedTimeItem get CombinedTimeItem component 1`] = `
<div>
<div class="time_kviad4-o_O-fullScreenedTime_1xxtrer">
<div><span>00:06</span> / <span>03:02</span></div>
</div>
<div class="time_1f7ddn0-o_O-fullScreenedTime_1xxtrer">00:06 / 03:02</div>
</div>
`;
31 changes: 31 additions & 0 deletions packages/griffith/src/utils/__tests__/formatDuration.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import formatDuration from '../formatDuration'

describe('format time', () => {
it('undefined', () => {
expect(formatDuration(undefined as never)).toBe('')
})

it('infinity', () => {
expect(formatDuration(Infinity)).toBe('')
})

it('zero', () => {
expect(formatDuration(0)).toBe('00:00')
})

it('x秒', () => {
expect(formatDuration(1.521073)).toBe('00:01')
})

it('x十秒', () => {
expect(formatDuration(35.733682147165254)).toBe('00:35')
})

it('x分钟', () => {
expect(formatDuration(107.755624)).toBe('01:47')
})

it('十x分钟', () => {
expect(formatDuration(707.755624)).toBe('11:47')
})
})
31 changes: 0 additions & 31 deletions packages/griffith/src/utils/__tests__/formatTime.spec.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// https://github.com/zloirock/core-js/issues/280
function pad(number: any) {
function pad(number: number) {
let result = String(number)
if (result.length < 2) {
result = '0' + result
}
return result
}

export default function formatTime(time: any) {
export default function formatDuration(time: number) {
if (!Number.isFinite(time)) return ''

time = Math.floor(time)
Expand Down

0 comments on commit 4f6c0cd

Please sign in to comment.