mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 18:31:06 +00:00
Re-work toHierarchy
utility
Refactor `toHiearchy` to be more generic, performant - Use callback to "pick" generic parent ID property instead of requiring that `pid` be hardcoded` - Account for edge cases of an invalid parent ID - Use Map to store node children for lookups - Use one pass instead of removing empty nodes at the very end - DX: use generics to type `toHierarchy` - Make `toHierarchy` even more generic (reusable with `RecursiveList`) Co-Authored-By: Bram <bramhavers@gmail.com>
This commit is contained in:
parent
651779d602
commit
5f1e8de1e1
29 changed files with 414 additions and 273 deletions
28
tests/RecursiveList/RecursiveList.test.svelte
Normal file
28
tests/RecursiveList/RecursiveList.test.svelte
Normal file
|
@ -0,0 +1,28 @@
|
|||
<script lang="ts">
|
||||
import { RecursiveList } from "carbon-components-svelte";
|
||||
|
||||
const nodes = [
|
||||
{
|
||||
text: "Item 1",
|
||||
nodes: [
|
||||
{
|
||||
text: "Item 1a",
|
||||
nodes: [{ html: "<h5>HTML content</h5>" }],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Item 2",
|
||||
nodes: [
|
||||
{ href: "https://svelte.dev/" },
|
||||
{
|
||||
href: "https://svelte.dev/",
|
||||
text: "Link with custom text",
|
||||
},
|
||||
],
|
||||
},
|
||||
{ text: "Item 3" },
|
||||
];
|
||||
</script>
|
||||
|
||||
<RecursiveList type="ordered" {nodes} />
|
Loading…
Add table
Add a link
Reference in a new issue