UNPKG

1.85 kBSource Map (JSON)View Raw
1{"version":3,"sources":["checkDuplicateRouteNames.tsx"],"names":["checkDuplicateRouteNames","state","duplicates","getRouteNames","location","routes","forEach","route","currentLocation","name","routeNames","routeName","push"],"mappings":";;;;;;;AAEe,SAASA,wBAAT,CAAkCC,KAAlC,EAA0D;AACvE,QAAMC,UAAsB,GAAG,EAA/B;;AAEA,QAAMC,aAAa,GAAG,CACpBC,QADoB,EAEpBH,KAFoB,KAGjB;AACHA,IAAAA,KAAK,CAACI,MAAN,CAAaC,OAAb,CAAsBC,KAAD,IAAmC;AAAA;;AACtD,YAAMC,eAAe,GAAGJ,QAAQ,GAC3B,GAAEA,QAAS,MAAKG,KAAK,CAACE,IAAK,EADA,GAE5BF,KAAK,CAACE,IAFV;AAIA,sBAAAF,KAAK,CAACN,KAAN,uFAAaS,UAAb,gFAAyBJ,OAAzB,CAAkCK,SAAD,IAAe;AAC9C,YAAIA,SAAS,KAAKJ,KAAK,CAACE,IAAxB,EAA8B;AAC5BP,UAAAA,UAAU,CAACU,IAAX,CAAgB,CACdJ,eADc,EAEb,GAAEA,eAAgB,MAAKD,KAAK,CAACE,IAAK,EAFrB,CAAhB;AAID;AACF,OAPD;;AASA,UAAIF,KAAK,CAACN,KAAV,EAAiB;AACfE,QAAAA,aAAa,CAACK,eAAD,EAAkBD,KAAK,CAACN,KAAxB,CAAb;AACD;AACF,KAjBD;AAkBD,GAtBD;;AAwBAE,EAAAA,aAAa,CAAC,EAAD,EAAKF,KAAL,CAAb;AAEA,SAAOC,UAAP;AACD","sourcesContent":["import type { NavigationState, PartialState } from '@react-navigation/routers';\n\nexport default function checkDuplicateRouteNames(state: NavigationState) {\n const duplicates: string[][] = [];\n\n const getRouteNames = (\n location: string,\n state: NavigationState | PartialState<NavigationState>\n ) => {\n state.routes.forEach((route: typeof state.routes[0]) => {\n const currentLocation = location\n ? `${location} > ${route.name}`\n : route.name;\n\n route.state?.routeNames?.forEach((routeName) => {\n if (routeName === route.name) {\n duplicates.push([\n currentLocation,\n `${currentLocation} > ${route.name}`,\n ]);\n }\n });\n\n if (route.state) {\n getRouteNames(currentLocation, route.state);\n }\n });\n };\n\n getRouteNames('', state);\n\n return duplicates;\n}\n"]}
\No newline at end of file