62 lines
1.5 KiB
Text
62 lines
1.5 KiB
Text
---
|
|
export interface Props {
|
|
currentRoute: string;
|
|
currentModule: string;
|
|
currentClass: string;
|
|
}
|
|
|
|
const { currentRoute, currentModule, currentClass } = Astro.props;
|
|
|
|
import { getTypeData } from "@config/io/generateTypeData";
|
|
import { groupRoutes } from "@config/io/helpers";
|
|
import Tree from "./Tree.astro";
|
|
import Link from "./Link.astro";
|
|
|
|
const routes = await getTypeData();
|
|
const groupedRoutes = groupRoutes(routes);
|
|
|
|
const configuration = {
|
|
title: "Configuration",
|
|
link: "/docs/configuration",
|
|
current: currentRoute.startsWith("configuration"),
|
|
entries: groupedRoutes.tutorials.configuration.map(
|
|
({ name, type }) => ({
|
|
title: name,
|
|
link: `/docs/configuration/${type}`,
|
|
current: currentModule === type,
|
|
})
|
|
),
|
|
};
|
|
|
|
const types = {
|
|
title: "Quickshell Types",
|
|
link: "/docs/types",
|
|
current: currentRoute.startsWith("types"),
|
|
entries: Object.entries(groupedRoutes.types).map(
|
|
([module, items]) => ({
|
|
title: module,
|
|
link: `/docs/types/${module}`,
|
|
current: currentModule === module,
|
|
entries: items.map(type => ({
|
|
title: type.name,
|
|
link: `/docs/types/${module}/${type.name}`,
|
|
current: currentClass === type.name,
|
|
})),
|
|
})
|
|
),
|
|
};
|
|
---
|
|
<nav class="navtree">
|
|
<Tree {...configuration}/>
|
|
<Tree {...types}/>
|
|
<Link
|
|
title="QtQuick Types"
|
|
link="https://doc.qt.io/qt-6/qtquick-qmlmodule.html"
|
|
showIcon={true}
|
|
/>
|
|
<Link
|
|
title="Quickshell Examples"
|
|
link="https://git.outfoxxed.me/outfoxxed/quickshell-examples"
|
|
showIcon={true}
|
|
/>
|
|
</nav>
|