56 lines
1.8 KiB
Text
56 lines
1.8 KiB
Text
---
|
|
import type {
|
|
QMLTypeLinkObject,
|
|
QuickshellFunction,
|
|
} from "@config/io/types";
|
|
import { getQMLTypeLink } from "@config/io/helpers";
|
|
import { Tag } from "@icons";
|
|
import TypeDetails from "./TypeDetails.astro"
|
|
|
|
export interface Props {
|
|
funcData: QuickshellFunction[];
|
|
}
|
|
|
|
const { funcData } = Astro.props;
|
|
---
|
|
<ul class="typedata typefuncs">
|
|
{
|
|
funcData.map(item => {
|
|
const functionParams = item.params.length > 0 ? item.params.map((funcparam,index) => `${funcparam.name}${index !== item.params.length -1 ? ", ":""}`) : null
|
|
const retTypeLink = getQMLTypeLink(item.ret as unknown as QMLTypeLinkObject)
|
|
return (
|
|
<li id={item.name} class="typedata-root typefunc-root">
|
|
<p class="typedata-name typefunc-name">
|
|
{item.name}(<span class="typedata-param">{functionParams}</span>)
|
|
<span class="type-datatype">: <a
|
|
href={retTypeLink}
|
|
target="_blank"
|
|
>{item.ret.name || item.ret.type}</a></span>
|
|
</p>
|
|
{
|
|
item.params.length > 0 ? (
|
|
<p class="typedata-params typefunc-params">
|
|
{
|
|
item.params.map(param => {
|
|
const paramTypeLink = getQMLTypeLink(param.type);
|
|
return (
|
|
<span class="typedata-param typefunc-param">
|
|
<Tag client:idle/>
|
|
{param.name}<span class="type-datatype">: <a
|
|
href={paramTypeLink}
|
|
target="_blank"
|
|
>{param.type.name}</a></span>
|
|
</span>
|
|
)
|
|
})
|
|
}
|
|
</p>
|
|
)
|
|
:null
|
|
}
|
|
<TypeDetails markdown={item.details} />
|
|
</li>
|
|
)
|
|
})
|
|
}
|
|
</ul>
|