Files
persian-ping-frontend/src/types/props.d.ts

138 lines
2.7 KiB
TypeScript

// begin Alert.tsx
export type MessageType = "info" | "danger" | "success" | "warning" | "dark";
export interface AlertProps {
children: React.ReactNode;
type?: "info" | "danger" | "success" | "warning" | "dark";
message?: string;
}
// begin Button.tsx
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
children: React.ReactNode;
extra?: string;
active?: boolean;
}
// begin Route
export interface Route {
id: number;
path: string;
name: string;
}
// begin MobileMenu.tsx
export interface MobileMenuProps {
isOpen: boolean;
toggleMenu: () => void;
routes: Route[];
}
// begin MobileMenuButton.tsx
export interface MobileMenuButtonProps {
isOpen: boolean;
onClick: () => void;
}
// begin NavbarLink.tsx
import { NavLinkProps } from "react-router-dom";
export interface NavbarLinkProps {
to: string;
children: React.ReactNode;
onClick?: () => void;
}
export interface NavData {
isActive: boolean;
isPending: boolean;
}
// begin ListTutorial.tsx
import React, {
ButtonHTMLAttributes,
Component,
Dispatch,
InputHTMLAttributes,
ReactNode,
SetStateAction,
} from "react";
export type TutorialList = { id: number; name: string }[];
export interface ListTutorialsProps {
tutorialList: TutorialList;
activeTutorial: number;
setActiveTutorial: SetStateAction;
}
export type LearnProps = {
activeTutorial: number;
tutorialList: TutorialList;
};
// begin TypeWriter.tsx
export interface TypewriterProps {
text: string;
speed?: number; // سرعت تایپ در میلی‌ثانیه
}
export interface ButtonListProps {
ProductsList: { id: number; title: string }[];
activeId: number;
setActiveId: SetStateAction;
}
export interface ProductBoxProps {
title: string;
space: number;
users: number;
price: string;
btnText: string;
variant: number;
}
export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
label?: string;
id?: string;
type: string;
name?: string;
placeholder?: string;
labelStyle?: string;
extra?: string;
}
export interface MuiModalProps {
isOpenModal: boolean;
setIsOpenModal: SetStateAction;
title?: string;
nameService?: string;
submitText: string;
submitOnClick?: () => void;
children: React.ReactNode;
}
export interface ConfigItemProps {
dateBuy: string;
configName: string;
isDisabled: boolean;
}
// نوع Item برای آیتم‌های داخل Dropdown
export interface DropdownItem {
label: string;
value: string;
onClick: () => void;
}
export interface DropdownProps {
isOpen: boolean;
setIsOpen: Dispatch<SetStateAction<boolean>>;
children: ReactNode | ReactNode[];
}
export interface ProgressSpaceProps {
startSpace: number;
endSpace: number | "ultimate";
}