copper-ui
Version:
Modern React UI components library with TypeScript support, built on top of Ant Design
109 lines • 3.08 kB
TypeScript
import { SelectProps } from 'antd';
import { CSSProperties } from '../../../../node_modules/.pnpm/react@19.1.1/node_modules/react';
import { companyOptionalFields } from './constants';
export type CompanyOptionalFields = (typeof companyOptionalFields)[number];
export type SelectOption = {
label: string | number;
value: string | number;
};
export type SelectOptionComponentProps = {
option: SelectOption;
isSelected: boolean;
handleSelect: (value: SelectOption["value"] | null) => void;
};
export type CompanySelectOptionProps = SelectOptionComponentProps & {
fullOption: TCompanyType;
optionalFields?: CompanyOptionalFields[];
};
export type UseCompanySelectProps<TCompany extends TCompanyType> = {
onChange: CompanySelectProps<TCompany>["onChange"];
searchValue?: string;
data: CompanySelectProps<TCompany>["data"];
};
export type TCompanyType = {
[key: string]: unknown;
id: string;
inn: string;
fullName: string;
opfShort: string;
address: string | null | Address;
okvedText: string | null;
okved: string | null;
capitalValue: string | null;
managerFIO: string | null;
status: string | null;
rating?: {
pgsRating: string;
expertRating: string;
insideRating: string;
pressRelease: string;
potential: string;
top: string;
data: CompanyRatingData | null;
createdAt: Date;
} | null;
recommendations?: {
total: number;
}[] | null;
};
export type Address = {
value: string;
unrestricted_value: string;
data: unknown;
};
export type QueryResponseCompany<TCompany extends {
id: string;
inn?: string;
}> = {
items: TCompany[];
nextCursor?: number | null;
total?: number;
};
export type QueryParamsCompany = {
q: string;
pageParam?: number;
};
export type InfiniteData<T> = {
pages: Array<T>;
pageParams: Array<unknown>;
};
export type CompanySelectProps<TCompany extends {
id: string;
fio?: string;
}> = SelectProps & {
data: InfiniteData<{
items: TCompany[];
}>;
style?: CSSProperties | undefined;
subTitle?: string;
isLoading?: boolean;
};
export type CompanyGroupWithCompanies = {
id: string;
name: string;
companies: CompanyWithRating[];
};
export type CompanyWithRating = TCompanyType & {
rating: {
pgsRating: string | null;
expertRating: string | null;
insideRating: string | null;
pressRelease: string | null;
potential: string | null;
top: string | null;
data: CompanyRatingData | null;
createdAt: Date;
};
};
export type CompanyRatingData = {
source: "pgs";
rating3Month: RatingLong;
rating12Month: RatingLong;
} | {
source: "expert_ra";
change?: string;
press_release?: string;
} | null;
export type RatingLong = "Other" | "Diamond" | "Platinum" | "Gold" | "Silver";
export type RatingShort = "D" | "D-" | "P" | "P+" | "P-" | "G" | "G+" | "G-" | "S" | "S-" | "S+" | "N" | "N+";
//# sourceMappingURL=types.d.ts.map