62 lines
1.1 KiB
TypeScript
62 lines
1.1 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 {
|
|
PageComponent,
|
|
PageProps,
|
|
MenuFirstLevel,
|
|
MenuSecondLevel,
|
|
MenuThirdLevel,
|
|
FilteredMenuFirstLevel,
|
|
FilteredMenuSecondLevel,
|
|
FilteredMenuThirdLevel,
|
|
LanguageTranslation,
|
|
};
|