From 184f63992052be95bb45899de8ef3b040cd2dab3 Mon Sep 17 00:00:00 2001 From: Uruk Date: Mon, 29 Sep 2025 23:20:30 +0200 Subject: [PATCH] refactor: improve TypeScript type safety for router navigation Replaces generic `any` type casts with specific route pattern types to enhance type checking and prevent invalid navigation paths. Adds backward compatibility alias for the navigation utility function to maintain existing API contracts while improving code organization. --- components/AppleTVCarousel.tsx | 2 +- components/common/TouchableItemRouter.tsx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/components/AppleTVCarousel.tsx b/components/AppleTVCarousel.tsx index c439069d..0b3946ad 100644 --- a/components/AppleTVCarousel.tsx +++ b/components/AppleTVCarousel.tsx @@ -307,7 +307,7 @@ export const AppleTVCarousel: React.FC = ({ const navigateToItem = useCallback( (item: BaseItemDto) => { const navigation = getItemNavigation(item, "(home)"); - router.push(navigation as any); + router.push(navigation as `/(auth)/(tabs)/${string}`); }, [router], ); diff --git a/components/common/TouchableItemRouter.tsx b/components/common/TouchableItemRouter.tsx index 6329b4a9..b18871bd 100644 --- a/components/common/TouchableItemRouter.tsx +++ b/components/common/TouchableItemRouter.tsx @@ -44,6 +44,9 @@ export const itemRouter = (item: BaseItemDto, from: string) => { return `/(auth)/(tabs)/${from}/items/page?id=${item.Id}`; }; +// Export alias for backward compatibility +export const getItemNavigation = itemRouter; + export const TouchableItemRouter: React.FC> = ({ item, isOffline = false, @@ -106,7 +109,7 @@ export const TouchableItemRouter: React.FC> = ({ if (isOffline) { url += `&offline=true`; } - router.push(url); + router.push(url as `/(auth)/(tabs)/${string}`); }} {...props} >