All files / layers / L2R / wiring defaultRowNav.ts

50% Statements 3/6
50% Branches 2/4
50% Functions 2/4
50% Lines 3/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                      53x 10x 10x      
import type { ListConfig } from '../../interfaces'

export type NavigatorFn = (path: string) => void

export interface DefaultRowNavConfig {
  config: ListConfig
  navigate: NavigatorFn
  pathname: string
}
 
export function createDefaultRowNavHandler({ config, navigate, pathname }: DefaultRowNavConfig): (id: string) => void {
  return (id: string) => {
    const target = config.rowTarget ?? `${pathname.replace(/\/+$/, '')}/:id`
    navigate(target.replace(/:id/g, id))
  }
}