Add segment styling
This commit is contained in:
parent
0f33db0df9
commit
0c322fced1
@ -2,8 +2,6 @@ import React from 'react'
|
|||||||
|
|
||||||
import { RsvpReader } from './components/RsvpReader'
|
import { RsvpReader } from './components/RsvpReader'
|
||||||
|
|
||||||
import { IconContext } from 'react-icons'
|
|
||||||
|
|
||||||
export const App = () => {
|
export const App = () => {
|
||||||
return <RsvpReader></RsvpReader>
|
return <RsvpReader></RsvpReader>
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useCallback } from 'react'
|
import React from 'react'
|
||||||
import { useSelector, useDispatch } from 'react-redux'
|
import { useSelector, useDispatch } from 'react-redux'
|
||||||
import { debounce } from 'debounce'
|
import { debounce } from 'debounce'
|
||||||
|
|
||||||
|
11
src/components/PivotMarker.js
Normal file
11
src/components/PivotMarker.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export const PipeMarker = ({ children }) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<div style={{ textAlign: 'center' }}>|</div>
|
||||||
|
{children}
|
||||||
|
<div style={{ textAlign: 'center' }}>|</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -2,11 +2,12 @@ import React from 'react'
|
|||||||
import { TextInput } from './TextInput'
|
import { TextInput } from './TextInput'
|
||||||
import { TextOutput } from './TextOutput'
|
import { TextOutput } from './TextOutput'
|
||||||
import { SegmentControl } from './SegmentControl'
|
import { SegmentControl } from './SegmentControl'
|
||||||
import { RsvpSegment } from './RsvpSegment'
|
import { Segment } from './Segment'
|
||||||
import { Options } from './Options'
|
import { Options } from './Options'
|
||||||
import { PlayerControl } from './PlayerControl'
|
import { PlayerControl } from './PlayerControl'
|
||||||
|
|
||||||
import styles from './RsvpReader.css'
|
import styles from './RsvpReader.css'
|
||||||
|
import { PipeMarker } from './PivotMarker'
|
||||||
|
|
||||||
export const RsvpReader = () => {
|
export const RsvpReader = () => {
|
||||||
return (
|
return (
|
||||||
@ -15,7 +16,9 @@ export const RsvpReader = () => {
|
|||||||
<TextInput />
|
<TextInput />
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.mainItem}>
|
<div className={styles.mainItem}>
|
||||||
<RsvpSegment />
|
<PipeMarker>
|
||||||
|
<Segment />
|
||||||
|
</PipeMarker>
|
||||||
<SegmentControl>
|
<SegmentControl>
|
||||||
<PlayerControl />
|
<PlayerControl />
|
||||||
</SegmentControl>
|
</SegmentControl>
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
import React from 'react'
|
|
||||||
import { useSelector } from 'react-redux'
|
|
||||||
import { selectCurrentSegment } from '../store/selectors'
|
|
||||||
|
|
||||||
export const RsvpSegment = () => {
|
|
||||||
const segment = useSelector(selectCurrentSegment)
|
|
||||||
return <div>{segment}</div>
|
|
||||||
}
|
|
14
src/components/Segment.css
Normal file
14
src/components/Segment.css
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
font-size: 2.4em;
|
||||||
|
}
|
||||||
|
.pivot {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.prefix {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.suffix {
|
||||||
|
flex: 1;
|
||||||
|
}
|
16
src/components/Segment.js
Normal file
16
src/components/Segment.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { useSelector } from 'react-redux'
|
||||||
|
import { selectPivotizedSegment } from '../store/selectors'
|
||||||
|
|
||||||
|
import styles from './Segment.css'
|
||||||
|
|
||||||
|
export const Segment = () => {
|
||||||
|
const [prefix, pivot, suffix] = useSelector(selectPivotizedSegment)
|
||||||
|
return (
|
||||||
|
<div className={styles.container}>
|
||||||
|
<span className={styles.prefix}>{prefix}</span>
|
||||||
|
<span className={styles.pivot}>{pivot}</span>
|
||||||
|
<span className={styles.suffix}>{suffix}</span>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useState, useEffect, useLayoutEffect, useRef } from 'react'
|
import React, { useState, useEffect, useRef } from 'react'
|
||||||
|
|
||||||
import styles from './Slider.css'
|
import styles from './Slider.css'
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ import { createSelector } from 'reselect'
|
|||||||
import { parseText } from '../lib/parseText'
|
import { parseText } from '../lib/parseText'
|
||||||
|
|
||||||
import { getNextBiggerNumber, getNextSmallerNumber } from '../lib/array-util.js'
|
import { getNextBiggerNumber, getNextSmallerNumber } from '../lib/array-util.js'
|
||||||
|
import { pivotize } from '../lib/pivotize'
|
||||||
|
|
||||||
// parsedText selectors
|
// parsedText selectors
|
||||||
|
|
||||||
@ -26,6 +27,11 @@ export const selectCurrentSegment = createSelector(
|
|||||||
(parsedText, curIdx) => parsedText.segments[curIdx]
|
(parsedText, curIdx) => parsedText.segments[curIdx]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
export const selectPivotizedSegment = createSelector(
|
||||||
|
selectCurrentSegment,
|
||||||
|
pivotize
|
||||||
|
)
|
||||||
|
|
||||||
export const hasNextSegment = createSelector(
|
export const hasNextSegment = createSelector(
|
||||||
selectSegments,
|
selectSegments,
|
||||||
selectCurrentSegmentIndex,
|
selectCurrentSegmentIndex,
|
||||||
|
Loading…
Reference in New Issue
Block a user