mirror of
https://github.com/betagouv/mon-entreprise
synced 2025-02-09 05:15:02 +00:00
ca5b7cc2df
Ajout des paramètres strictNullChecks et strictPropertyInitialization dans la configuration TypeScript et correction des environ 70 erreurs de typage résultantes.
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { goToQuestion } from 'Actions/actions'
|
|
import { T } from 'Components'
|
|
import { contains, filter, pipe, reject, toPairs } from 'ramda'
|
|
import React from 'react'
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
import { RootState } from 'Reducers/rootReducer'
|
|
import {
|
|
currentQuestionSelector,
|
|
nextStepsSelector
|
|
} from 'Selectors/analyseSelectors'
|
|
import { DottedName } from 'Types/rule'
|
|
|
|
export default function QuickLinks() {
|
|
const currentQuestion = useSelector(currentQuestionSelector)
|
|
const nextSteps = useSelector(nextStepsSelector)
|
|
const quickLinks = useSelector(
|
|
(state: RootState) => state.simulation?.config.questions?.["à l'affiche"]
|
|
)
|
|
const quickLinksToHide = useSelector(
|
|
(state: RootState) => state.conversationSteps.foldedSteps
|
|
)
|
|
const dispatch = useDispatch()
|
|
|
|
if (!quickLinks) {
|
|
return null
|
|
}
|
|
const links = pipe(
|
|
reject((dottedName: DottedName) => contains(dottedName, quickLinksToHide)),
|
|
filter((dottedName: DottedName) => contains(dottedName, nextSteps)),
|
|
toPairs
|
|
)(quickLinks)
|
|
|
|
if (links.length < 1) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<span>
|
|
<small>Questions :</small>
|
|
{links.map(([label, dottedName]) => (
|
|
<button
|
|
key={dottedName}
|
|
className={`ui__ link-button ${
|
|
dottedName === currentQuestion ? 'active' : ''
|
|
}`}
|
|
css="margin: 0 0.4rem !important"
|
|
onClick={() => dispatch(goToQuestion(dottedName))}
|
|
>
|
|
<T k={'quicklinks.' + label}>{label}</T>
|
|
</button>
|
|
))}{' '}
|
|
{/* <button className="ui__ link-button">Voir la liste</button> */}
|
|
</span>
|
|
)
|
|
}
|