the great typeinfo unfuckening

This commit is contained in:
outfoxxed 2025-07-21 17:15:39 -07:00
parent db63f5639f
commit 49fed51ced
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
15 changed files with 233 additions and 365 deletions

View file

@ -4,22 +4,20 @@ import type {
QMLTypeLinkObject,
QuickshellProps,
} from "@config/io/types";
import { Tag, Flag } from "@icons";
import { Tag } from "@icons";
import TypeTitle from "./TypeTitle.astro";
import TypeDetails from "./TypeDetails.astro";
export interface Props {
propsKeys: string[];
propsData: QuickshellProps;
props: QuickshellProps;
}
const { propsKeys, propsData } = Astro.props;
const { props } = Astro.props;
---
<ul class="typedata typeprops">
{
propsKeys.map(item => {
const propData = propsData[item]
Object.entries(props).map(([name, propData]) => {
let typeLink:string;
let linkText:string;
let genericType:string|undefined;
@ -37,10 +35,10 @@ const { propsKeys, propsData } = Astro.props;
genericTypeLink = getQMLTypeLink(propData.type.of)
}
return (
<li id={ item } class="typedata-root typeprop-root">
<li id={ name } class="typedata-root typeprop-root">
<TypeTitle
typekind="prop"
typename={item}
typename={name}
typelink={typeLink}
typelink_text={linkText}
typename_generic={genericType}

View file

@ -1,30 +1,28 @@
---
import type { QuickshellSignal } from "@config/io/types";
import { Tag, PowerCord } from "@icons";
import { Tag } from "@icons";
import TypeDetails from "./TypeDetails.astro";
import TypeTitle from "./TypeTitle.astro";
export interface Props {
signalKeys: string[];
signalsData: QuickshellSignal;
signals: QuickshellSignal;
}
const { signalKeys, signalsData } = Astro.props;
const { signals } = Astro.props;
---
<ul class="typedata typesignals">
{
signalKeys.map(item => {
const signalData = signalsData[item];
Object.entries(signals).map(([name, signalData]) => {
const paramKeys = signalData.params.length > 0 ? signalData.params.map((param,index) => `${param.name}${index !== signalData.params.length -1 ? ", ":""}`) : []
let genericType:string|undefined;
let genericTypeLink:string|undefined;
return (
<li id={ item } class="typedata-root typesignal-root">
<li id={ name } class="typedata-root typesignal-root">
<TypeTitle
typekind="signal"
typename={item}
typename={name}
typelink="/docs/configuration/qml-overview#-signals"
typelink_text={"?"}
typelink_text=""
typename_generic={genericType}
typelink_generic={genericTypeLink}
typedata_params={paramKeys}

View file

@ -1,28 +1,25 @@
---
import type { QuickshellVariant } from "@config/io/types";
import { FourDiamonds } from "../icons";
import TypeDetails from "./TypeDetails.astro";
import TypeTitle from "./TypeTitle.astro";
export interface Props {
variantKeys: string[];
variantsData: QuickshellVariant;
variants: QuickshellVariant;
}
const { variantKeys, variantsData } = Astro.props;
const { variants } = Astro.props;
---
<ul class="typedata typevariants">
{
variantKeys.map(item => {
const variantData = variantsData[item];
Object.entries(variants).map(([name, variantData]) => {
const paramKeys = variantData.params && variantData.params.length > 0
? variantData.params.map(param => param.name)
: [];
return (
<li id={ item } class="typedata-root typevariant-root">
<li id={ name } class="typedata-root typevariant-root">
<TypeTitle
typekind="variant"
typename={item}
typename={name}
typelink=""
typelink_text=""
/>