File size: 435 Bytes
f1dd159
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
export type SortOrder = "asc" | "desc";

export type TableSort<Field extends string = string> = {
  field: Field;
  order: SortOrder;
};

export function nextTableSort<Field extends string>(current: TableSort<Field>, field: Field, initialOrder: SortOrder = "asc"): TableSort<Field> {
  if (current.field !== field) {
    return { field, order: initialOrder };
  }
  return { field, order: current.order === "asc" ? "desc" : "asc" };
}