portabletext / portabletext/react-portabletext
Nested Lists?
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 377
- Forks
- 31
- Avg merge
- 23h 42m
- Merged PRs (30d)
- 9
Description
I can't find any information on how I can target and style nested lists.
Sanity uses "a series of list item blocks with the same level and listItem properties will be grouped into a virtual one inside of this library." My rich text is inputted as follows
and is seen queried like this:
"2": {
"children": [{ }],
"level": 1,
"listItem": "number",
"markDefs": [],
"style": "normal",
"_key": "2cc0186eb9d3",
"_type": "block"
},
"3": {
"children": [{ }],
"level": 2,
"listItem": "number",
"markDefs": [],
"style": "normal",
"_key": "984f45cfba95",
"_type": "block"
},
"4": {
"children": [{ }],
"level": 2,
"listItem": "number",
"markDefs": [],
"style": "normal",
"_key": "730d9b626b42",
"_type": "block"
}
}
But is rendered without grouping the level 2 items with the same indentation treatment?
export default function RichText({ variant = 'default', richText }) {
let components = {
list: {
// Ex. 1: customizing common list types
bullet: ({ children }) => <ul className="mt-xl">{children}</ul>,
number: ({ children }) => <ol className="mt-lg">{children}</ol>,
// Ex. 2: rendering custom lists
checkmarks: ({ children }) => <ol className="m-auto text-lg">{children}</ol>,
},
listItem: {
number: ({ children }) => <Typography className='boo' paragraph={true} component='li' sx={{ color: 'red' }} >{children}</Typography>,
},
}
return (
<>
{richText.map((block) => {
return (
<PortableText
key={block._key}
value={block}
components={components}
/>
)
})}
</>
)
};
How can we target the second level to style them properly? Am I misunderstanding how the grouping of levels should be operating?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the PortableText usage and the components.list and components.listItem configuration shown in the issue. Reproduce the rendering with the supplied level 1 and level 2 blocks, then compare the generated nesting with the expected grouped lists. Done means the second-level items receive the intended grouping and indentation, or the supported behavior is clarified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100