/**
 * Longest-prefix, winner-takes-all active-path matching shared by the sidebar and every bottom
 * bar. Given the current (locale-stripped) pathname and a set of nav-item paths, returns the
 * single path that should render as active — the longest candidate that prefixes the pathname —
 * so e.g. `/nurse/requests` lights up "Requests" and not the "Dashboard" root (`/nurse`), and
 * `/patients/123` still lights up the `/patients` tab.
 */
export function matchActivePath(pathname: string, paths: ReadonlyArray<string | undefined>): string | undefined {
  const isMatch = (path: string) => (path === '/' ? pathname === path : pathname === path || pathname.startsWith(`${path}/`));

  return paths
    .filter((path): path is string => Boolean(path))
    .filter(isMatch)
    .sort((a, b) => b.length - a.length)[0];
}
