| | |
| | | type OrderEntries = "sort" | "filter" | "map" |
| | | |
| | | export interface Options { |
| | | title: string |
| | | title?: string |
| | | folderDefaultState: "collapsed" | "open" |
| | | folderClickBehavior: "collapse" | "link" |
| | | useSavedState: boolean |
| | |
| | | const isDefaultOpen = opts.folderDefaultState === "open" |
| | | |
| | | // Calculate current folderPath |
| | | let folderPath = "" |
| | | if (node.name !== "") { |
| | | folderPath = joinSegments(fullPath ?? "", node.name) |
| | | } |
| | | const folderPath = node.name !== "" ? joinSegments(fullPath ?? "", node.name) : "" |
| | | const href = resolveRelative(fileData.slug!, folderPath as SimpleSlug) + "/" |
| | | |
| | | return ( |
| | | <> |
| | |
| | | {/* render <a> tag if folderBehavior is "link", otherwise render <button> with collapse click event */} |
| | | <div key={node.name} data-folderpath={folderPath}> |
| | | {folderBehavior === "link" ? ( |
| | | <a |
| | | href={resolveRelative(fileData.slug!, folderPath as SimpleSlug)} |
| | | data-for={node.name} |
| | | class="folder-title" |
| | | > |
| | | <a href={href} data-for={node.name} class="folder-title"> |
| | | {node.displayName} |
| | | </a> |
| | | ) : ( |