77 lines
1.4 KiB
TypeScript
77 lines
1.4 KiB
TypeScript
// Define TypeScript interfaces for menu structure
|
|
interface LanguageTranslation {
|
|
tr: string;
|
|
en: string;
|
|
}
|
|
|
|
interface MenuThirdLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
siteUrl: string;
|
|
}
|
|
|
|
interface MenuSecondLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
subList: MenuThirdLevel[];
|
|
}
|
|
|
|
interface MenuFirstLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
subList: MenuSecondLevel[];
|
|
}
|
|
|
|
// Define interfaces for the filtered menu structure
|
|
interface FilteredMenuThirdLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
siteUrl: string;
|
|
}
|
|
|
|
interface FilteredMenuSecondLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
subList: FilteredMenuThirdLevel[];
|
|
}
|
|
|
|
interface FilteredMenuFirstLevel {
|
|
name: string;
|
|
lg: LanguageTranslation;
|
|
subList: FilteredMenuSecondLevel[];
|
|
}
|
|
|
|
interface PageProps {
|
|
lang: keyof LanguageTranslation;
|
|
queryParams?: { [key: string]: string | undefined };
|
|
}
|
|
|
|
type PageComponent = React.ComponentType<PageProps>;
|
|
|
|
export type LanguageKey = "en" | "tr";
|
|
|
|
export interface TranslationSet {
|
|
showing: string;
|
|
of: string;
|
|
items: string;
|
|
total: string;
|
|
filtered: string;
|
|
page: string;
|
|
previous: string;
|
|
next: string;
|
|
itemsPerPage: string;
|
|
}
|
|
|
|
|
|
export type {
|
|
PageComponent,
|
|
PageProps,
|
|
MenuFirstLevel,
|
|
MenuSecondLevel,
|
|
MenuThirdLevel,
|
|
FilteredMenuFirstLevel,
|
|
FilteredMenuSecondLevel,
|
|
FilteredMenuThirdLevel,
|
|
LanguageTranslation,
|
|
};
|