one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 4.96 kB
Source Map (JSON)
{"version":3,"file":"notFoundState.js","names":[],"sources":["esm/notFoundState.js"],"sourcesContent":["import * as React from \"react\";\nlet currentNotFoundState = null;\nconst notFoundListeners = /* @__PURE__ */ new Set();\nfunction getNotFoundState() {\n return currentNotFoundState;\n}\nfunction setNotFoundState(state) {\n currentNotFoundState = state;\n notFoundListeners.forEach((listener) => listener());\n}\nfunction clearNotFoundState() {\n if (currentNotFoundState !== null) {\n currentNotFoundState = null;\n notFoundListeners.forEach((listener) => listener());\n }\n}\nfunction useNotFoundState() {\n const [, forceUpdate] = React.useReducer((x) => x + 1, 0);\n React.useEffect(() => {\n notFoundListeners.add(forceUpdate);\n return () => {\n notFoundListeners.delete(forceUpdate);\n };\n }, []);\n return currentNotFoundState;\n}\nfunction findNearestNotFoundRoute(pathname, rootNode) {\n if (!rootNode) return null;\n const pathParts = pathname.split(\"/\").filter(Boolean);\n function findNotFoundInNode(node) {\n if (node.route === \"+not-found\") {\n return node;\n }\n for (const child of node.children || []) {\n if (child.route === \"+not-found\") {\n return child;\n }\n }\n return null;\n }\n function traverse(node, depth, notFoundStack) {\n const notFoundAtLevel = findNotFoundInNode(node);\n if (notFoundAtLevel) {\n notFoundStack.push(notFoundAtLevel);\n }\n if (depth >= pathParts.length) {\n return notFoundStack.length > 0 ? notFoundStack[notFoundStack.length - 1] : null;\n }\n const segment = pathParts[depth];\n for (const child of node.children || []) {\n if (child.route === \"+not-found\") continue;\n const childRoute = child.route || \"\";\n const isDynamic = childRoute.startsWith(\"[\");\n const isMatch = childRoute === segment || isDynamic;\n if (isMatch) {\n const result = traverse(child, depth + 1, [...notFoundStack]);\n if (result) return result;\n }\n }\n return notFoundStack.length > 0 ? notFoundStack[notFoundStack.length - 1] : null;\n }\n return traverse(rootNode, 0, []);\n}\nfunction findRouteNodeByPath(notFoundPath, rootNode) {\n if (!rootNode) return null;\n const normalizedPath = notFoundPath.replace(/^(\\.?\\/)+|\\/+$/g, \"\");\n function searchNode(node) {\n const nodeContextKey = node.contextKey || \"\";\n const contextKeyNormalized = nodeContextKey.replace(/^(\\.?\\/)+/, \"\").replace(/\\.[^.]+$/, \"\");\n if (contextKeyNormalized === normalizedPath) {\n return node;\n }\n for (const child of node.children || []) {\n const found2 = searchNode(child);\n if (found2) return found2;\n }\n return null;\n }\n const found = searchNode(rootNode);\n if (found) return found;\n for (const child of rootNode.children || []) {\n const found2 = searchNode(child);\n if (found2) return found2;\n }\n return null;\n}\nexport {\n clearNotFoundState,\n findNearestNotFoundRoute,\n findRouteNodeByPath,\n getNotFoundState,\n setNotFoundState,\n useNotFoundState\n};\n//# sourceMappingURL=notFoundState.js.map\n"],"mappings":";;;AACA,IAAI,uBAAuB;AAC3B,MAAM,oCAAoC,IAAI,IAAI;AAClD,SAAS,mBAAmB;CAC1B,OAAO;AACT;AACA,SAAS,iBAAiB,OAAO;CAC/B,uBAAuB;CACvB,kBAAkB,SAAS,aAAa,SAAS,CAAC;AACpD;AACA,SAAS,qBAAqB;CAC5B,IAAI,yBAAyB,MAAM;EACjC,uBAAuB;EACvB,kBAAkB,SAAS,aAAa,SAAS,CAAC;CACpD;AACF;AACA,SAAS,mBAAmB;CAC1B,MAAM,GAAG,eAAe,MAAM,YAAY,MAAM,IAAI,GAAG,CAAC;CACxD,MAAM,gBAAgB;EACpB,kBAAkB,IAAI,WAAW;EACjC,aAAa;GACX,kBAAkB,OAAO,WAAW;EACtC;CACF,GAAG,CAAC,CAAC;CACL,OAAO;AACT;AACA,SAAS,yBAAyB,UAAU,UAAU;CACpD,IAAI,CAAC,UAAU,OAAO;CACtB,MAAM,YAAY,SAAS,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO;CACpD,SAAS,mBAAmB,MAAM;EAChC,IAAI,KAAK,UAAU,cAAc;GAC/B,OAAO;EACT;EACA,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG;GACvC,IAAI,MAAM,UAAU,cAAc;IAChC,OAAO;GACT;EACF;EACA,OAAO;CACT;CACA,SAAS,SAAS,MAAM,OAAO,eAAe;EAC5C,MAAM,kBAAkB,mBAAmB,IAAI;EAC/C,IAAI,iBAAiB;GACnB,cAAc,KAAK,eAAe;EACpC;EACA,IAAI,SAAS,UAAU,QAAQ;GAC7B,OAAO,cAAc,SAAS,IAAI,cAAc,cAAc,SAAS,KAAK;EAC9E;EACA,MAAM,UAAU,UAAU;EAC1B,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG;GACvC,IAAI,MAAM,UAAU,cAAc;GAClC,MAAM,aAAa,MAAM,SAAS;GAClC,MAAM,YAAY,WAAW,WAAW,GAAG;GAC3C,MAAM,UAAU,eAAe,WAAW;GAC1C,IAAI,SAAS;IACX,MAAM,SAAS,SAAS,OAAO,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC;IAC5D,IAAI,QAAQ,OAAO;GACrB;EACF;EACA,OAAO,cAAc,SAAS,IAAI,cAAc,cAAc,SAAS,KAAK;CAC9E;CACA,OAAO,SAAS,UAAU,GAAG,CAAC,CAAC;AACjC;AACA,SAAS,oBAAoB,cAAc,UAAU;CACnD,IAAI,CAAC,UAAU,OAAO;CACtB,MAAM,iBAAiB,aAAa,QAAQ,mBAAmB,EAAE;CACjE,SAAS,WAAW,MAAM;EACxB,MAAM,iBAAiB,KAAK,cAAc;EAC1C,MAAM,uBAAuB,eAAe,QAAQ,aAAa,EAAE,CAAC,CAAC,QAAQ,YAAY,EAAE;EAC3F,IAAI,yBAAyB,gBAAgB;GAC3C,OAAO;EACT;EACA,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG;GACvC,MAAM,SAAS,WAAW,KAAK;GAC/B,IAAI,QAAQ,OAAO;EACrB;EACA,OAAO;CACT;CACA,MAAM,QAAQ,WAAW,QAAQ;CACjC,IAAI,OAAO,OAAO;CAClB,KAAK,MAAM,SAAS,SAAS,YAAY,CAAC,GAAG;EAC3C,MAAM,SAAS,WAAW,KAAK;EAC/B,IAAI,QAAQ,OAAO;CACrB;CACA,OAAO;AACT"}