@conduction/components
Version:
React (Gatsby) components used within the Conduction Skeleton Application (and its implementations)
40 lines (39 loc) • 1.1 kB
TypeScript
/// <reference types="react" />
interface ITopNavItemBase {
label: string;
icon?: JSX.Element;
current?: boolean | ICurrentItemJSONFormat;
}
interface ICurrentItemJSONFormat {
pathname: string;
operator: "equals" | "includes";
filterCondition?: {
filter: string;
value: string;
isObject: boolean;
};
}
interface IHandleClickJSONFormat {
link: string;
setFilter?: {
filter: string;
value: string;
};
}
interface ITopNavItemWithSubItems extends ITopNavItemBase {
handleClick?: never;
subItems: ITopNavItem[];
}
interface ITopNavItemWithoutSubItems extends ITopNavItemBase {
handleClick?: () => any | IHandleClickJSONFormat;
type: "readme" | "internal" | "external";
subItems?: never;
}
export type ITopNavItem = ITopNavItemWithSubItems | ITopNavItemWithoutSubItems;
export interface TopNavProps {
items: ITopNavItem[];
mobileLogo?: JSX.Element;
layoutClassName?: string;
}
export declare const PrimaryTopNav: ({ items, mobileLogo, layoutClassName }: TopNavProps) => JSX.Element;
export {};