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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user