import type { UrlCodec } from '@/lib/url/useUrlFilterState';

const DEFAULT_FILTER = 'held';

export interface SettlementsUrlState extends Record<string, unknown> {
  filter: string;
}

export function makeSettlementsCodec(basePath: string): UrlCodec<SettlementsUrlState> {
  return {
    parse(loc) {
      const sp = new URLSearchParams(loc.search);
      return { filter: sp.get('filter') ?? DEFAULT_FILTER };
    },

    build(state) {
      const sp = new URLSearchParams();
      if (state.filter !== DEFAULT_FILTER) sp.set('filter', state.filter);
      const qs = sp.toString();
      return qs ? `${basePath}?${qs}` : basePath;
    },
  };
}
