mirror of
https://github.com/cpvalente/ontime.git
synced 2026-09-04 13:59:09 +00:00
refactor: extract reusable components
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
@use '../../../theme/v2Styles' as *;
|
||||||
|
|
||||||
|
.delaySymbol {
|
||||||
|
svg {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: $ontime-delay;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import { Tooltip } from '@chakra-ui/react';
|
||||||
|
import { IoChevronDown } from '@react-icons/all-files/io5/IoChevronDown';
|
||||||
|
import { IoChevronUp } from '@react-icons/all-files/io5/IoChevronUp';
|
||||||
|
|
||||||
|
import { tooltipDelayFast } from '../../../ontimeConfig';
|
||||||
|
import { millisToDelayString } from '../../utils/dateConfig';
|
||||||
|
|
||||||
|
import style from './DelayIndicator.module.scss';
|
||||||
|
|
||||||
|
export default function DelayIndicator(props: { delayValue?: number }) {
|
||||||
|
const { delayValue } = props;
|
||||||
|
|
||||||
|
if (typeof delayValue === 'number') {
|
||||||
|
if (delayValue < 0) {
|
||||||
|
return (
|
||||||
|
<Tooltip openDelay={tooltipDelayFast} label={millisToDelayString(delayValue)}>
|
||||||
|
<span className={style.delaySymbol}>
|
||||||
|
<IoChevronDown />
|
||||||
|
</span>
|
||||||
|
</Tooltip>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (delayValue > 0) {
|
||||||
|
return (
|
||||||
|
<Tooltip openDelay={tooltipDelayFast} label={millisToDelayString(delayValue)}>
|
||||||
|
<span className={style.delaySymbol}>
|
||||||
|
<IoChevronUp />
|
||||||
|
</span>
|
||||||
|
</Tooltip>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
@@ -113,14 +113,6 @@ $table-header-font-size: calc(1rem - 3px);
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.delaySymbol {
|
|
||||||
svg {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
color: $ontime-delay;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.delayedTime {
|
.delayedTime {
|
||||||
color: $ontime-delay-text;
|
color: $ontime-delay-text;
|
||||||
font-size: calc(1rem - 2px);
|
font-size: calc(1rem - 2px);
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ import { IoSettingsOutline } from '@react-icons/all-files/io5/IoSettingsOutline'
|
|||||||
import { EventData, Playback } from 'ontime-types';
|
import { EventData, Playback } from 'ontime-types';
|
||||||
import { formatDisplay } from 'ontime-utils';
|
import { formatDisplay } from 'ontime-utils';
|
||||||
|
|
||||||
|
import PlaybackIcon from '../../../common/components/playback-icon/PlaybackIcon';
|
||||||
import useFullscreen from '../../../common/hooks/useFullscreen';
|
import useFullscreen from '../../../common/hooks/useFullscreen';
|
||||||
import { useTimer } from '../../../common/hooks/useSocket';
|
import { useTimer } from '../../../common/hooks/useSocket';
|
||||||
import useEventData from '../../../common/hooks-query/useEventData';
|
import useEventData from '../../../common/hooks-query/useEventData';
|
||||||
import { formatTime } from '../../../common/utils/time';
|
import { formatTime } from '../../../common/utils/time';
|
||||||
import { tooltipDelayFast } from '../../../ontimeConfig';
|
import { tooltipDelayFast } from '../../../ontimeConfig';
|
||||||
import { useCuesheetSettings } from '../store/CuesheetSettings';
|
import { useCuesheetSettings } from '../store/CuesheetSettings';
|
||||||
import PlaybackIcon from '../tableElements/PlaybackIcon';
|
|
||||||
|
|
||||||
import style from './CuesheetTableHeader.module.scss';
|
import style from './CuesheetTableHeader.module.scss';
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
import { Tooltip } from '@chakra-ui/react';
|
|
||||||
import { IoCheckmark } from '@react-icons/all-files/io5/IoCheckmark';
|
import { IoCheckmark } from '@react-icons/all-files/io5/IoCheckmark';
|
||||||
import { IoChevronDown } from '@react-icons/all-files/io5/IoChevronDown';
|
|
||||||
import { IoChevronUp } from '@react-icons/all-files/io5/IoChevronUp';
|
|
||||||
import { CellContext, ColumnDef } from '@tanstack/react-table';
|
import { CellContext, ColumnDef } from '@tanstack/react-table';
|
||||||
import { OntimeEvent, OntimeRundownEntry, UserFields } from 'ontime-types';
|
import { OntimeEvent, OntimeRundownEntry, UserFields } from 'ontime-types';
|
||||||
import { millisToString } from 'ontime-utils';
|
import { millisToString } from 'ontime-utils';
|
||||||
|
|
||||||
import { millisToDelayString } from '../../common/utils/dateConfig';
|
import DelayIndicator from '../../common/components/delay-indicator/DelayIndicator';
|
||||||
import { tooltipDelayFast } from '../../ontimeConfig';
|
|
||||||
|
|
||||||
import { useCuesheetSettings } from './store/CuesheetSettings';
|
import { useCuesheetSettings } from './store/CuesheetSettings';
|
||||||
import EditableCell from './tableElements/EditableCell';
|
import EditableCell from './tableElements/EditableCell';
|
||||||
@@ -20,30 +16,6 @@ function makePublic(row: CellContext<OntimeRundownEntry, unknown>) {
|
|||||||
return cellValue ? <IoCheckmark className={style.check} /> : '';
|
return cellValue ? <IoCheckmark className={style.check} /> : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function DelayIndicator(props: { delayValue: number }) {
|
|
||||||
const { delayValue } = props;
|
|
||||||
if (delayValue < 0) {
|
|
||||||
return (
|
|
||||||
<Tooltip openDelay={tooltipDelayFast} label={millisToDelayString(delayValue)}>
|
|
||||||
<span className={style.delaySymbol}>
|
|
||||||
<IoChevronDown />
|
|
||||||
</span>
|
|
||||||
</Tooltip>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (delayValue > 0) {
|
|
||||||
return (
|
|
||||||
<Tooltip openDelay={tooltipDelayFast} label={millisToDelayString(delayValue)}>
|
|
||||||
<span className={style.delaySymbol}>
|
|
||||||
<IoChevronUp />
|
|
||||||
</span>
|
|
||||||
</Tooltip>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function MakeTimer({ getValue, row: { original } }: CellContext<OntimeRundownEntry, unknown>) {
|
function MakeTimer({ getValue, row: { original } }: CellContext<OntimeRundownEntry, unknown>) {
|
||||||
const showDelayedTimes = useCuesheetSettings((state) => state.showDelayedTimes);
|
const showDelayedTimes = useCuesheetSettings((state) => state.showDelayedTimes);
|
||||||
const cellValue = (getValue() as number | null) ?? 0;
|
const cellValue = (getValue() as number | null) ?? 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user