Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import { Partition, Division } from '../lib/graphql-utils'
import TextPartition from './TextPartition'
export interface TextDivisionProps {
divisionType: string
divisionPartitions?: Partition[]
subDivisions?: Division[]
aaPrefix: string
}
const TextDivision = ({
divisionType,
divisionPartitions = [],
subDivisions = [],
aaPrefix,
}: TextDivisionProps) => {
const divisionContentJsx =
divisionType === 'list'
? subDivisions.map((listItem: Division, index) => {
return (
<TextDivision
key={index}
divisionType={listItem.divisionType}
divisionPartitions={listItem.divisionPartitions}
aaPrefix={aaPrefix}
/>
)
})
: divisionPartitions.map((partition: Partition, index) => {
return (
<TextPartition
key={index}
id={partition.id}
type={partition.type}
text={partition.text}
css={partition.css}
link={partition.link}
assistiveText={partition.assistiveText}
aaPrefix={aaPrefix}
/>
)
})
const divisionJsx =
divisionType === 'paragraph' ? (
<p className="pb-4">{divisionContentJsx}</p>
) : divisionType === 'div' ? (
<div className="pb-4">{divisionContentJsx}</div>
) : divisionType === 'list' ? (
<ul className="list-disc pb-4 pl-4">{divisionContentJsx}</ul>
) : divisionType === 'list-item' ? (
<li>{divisionContentJsx}</li>
) : (
<></>
)
return <>{divisionJsx}</>
}
export default TextDivision
|