geoiq-frontend-ui-kit
Version:
This project is a UI kit for GeoIQ's frontend. It's built with React, TypeScript, and Vite.
135 lines (134 loc) • 3.69 kB
TypeScript
import { ReactElement } from 'react';
export type NavbarPropsDesktop = {
credits: number;
totalCredits?: number;
className?: React.ComponentProps<'div'>['className'];
clickDisable?: boolean;
icons: {
help: IconProps;
notification?: IconProps;
list: Array<IconProps>;
chat?: IconProps;
invoices?: IconProps;
};
onRequestCredits?: (credits: string, phoneNumber: string) => void;
onProceedToPayment?: (credits: string, phoneNumber: string) => void;
buyCreditsOptions?: string[];
minimumCreditsToBuy?: number;
requestOnly?: boolean;
id?: string;
login: {
isLoggedIn: boolean;
onClick?: () => void;
};
logo: {
alt: string;
src: string;
};
profile: {
popoverOptions: Array<Array<NavbarProfilePopoverOptions>>;
email?: string;
name?: string;
src?: string;
onClick?: () => void;
};
};
type NavbarProfilePopoverOptions = {
label: string;
disabled: boolean;
onClick: () => void;
icon?: React.ReactNode;
};
/**
* iconSrc: 20x20px
* */
export type IconProps = {
alt: string;
src: string;
className?: React.ComponentProps<'div'>['className'];
isActive?: boolean;
isNew?: boolean;
tooltipText?: string;
wrapper?: (children: React.ReactNode) => ReactElement;
onClick?: () => void;
disabled?: boolean;
};
type BottomItems = {
label: string;
onClick: () => void;
};
export type NavbarPropsMobile = {
credits: NavbarPropsDesktop['credits'];
totalCredits?: NavbarPropsDesktop['totalCredits'];
profile: NavbarPropsDesktop['profile'];
icons: NavbarPropsDesktop['icons']['list'];
clickDisable?: boolean;
logo: NavbarPropsDesktop['logo'] & {
text: string;
};
onRequestCredits?: (credits: string, phoneNumber: string) => void;
onProceedToPayment?: (credits: string, phoneNumber: string) => void;
buyCreditsOptions?: string[];
minimumCreditsToBuy?: number;
requestOnly?: boolean;
containerId?: string;
id?: string;
logoutPanel: {
handleLogout: () => void;
bottomItems: Array<BottomItems>;
};
};
export type IconExtendedProps = IconProps & {
label: string;
tooltipText?: string;
collapsed?: boolean;
};
export type NavbarExtendedProps = {
credits: number;
totalCredits?: number;
clickDisable?: boolean;
className?: React.ComponentProps<'div'>['className'];
icons: {
help: IconExtendedProps;
notification?: IconExtendedProps;
chat?: IconExtendedProps;
list?: Array<IconExtendedProps>;
invoices?: IconExtendedProps;
};
onRequestCredits?: (credits: string, phoneNumber: string) => void;
onProceedToPayment?: (credits: string, phoneNumber: string) => void;
buyCreditsOptions?: string[];
minimumCreditsToBuy?: number;
requestOnly?: boolean;
id?: string;
collapsed?: boolean;
onCollapsedChange?: (collapsed: boolean) => void;
width?: string;
collapsedWidth?: string;
showToggle?: boolean;
togglePosition?: {
top?: string;
right?: string;
left?: string;
bottom?: string;
};
logo: {
alt: string;
src: string;
text: string;
};
profile: {
popoverOptions: Array<Array<NavbarProfilePopoverOptions>>;
email?: string;
name?: string;
src?: string;
onClick?: () => void;
collapsed?: boolean;
};
sections: Array<{
title: string;
items: Array<IconExtendedProps>;
}>;
};
export {};
//# sourceMappingURL=navbar.types.d.ts.map