import React from "react"; import { Column } from "material-table"; import { Actions } from "@/components"; import { Trans } from "react-i18next"; import { Multilingual } from "@/data"; export function actionsColumn(render: (value: T) => React.ReactNode): Column { return { title: , render: value => { render(value) }, sorting: false, width: 0, resizable: false, removable: false, searchable: false, } } export function createBoundComponent(Component: React.ComponentType, bound: Pick) { return (props: Omit) => ; } export type Comparator = (a: T, b: T) => number; export type MultilingualComparator = Comparator>; export function createMultilingualComparator(comparator: Comparator): MultilingualComparator { return (a, b) => comparator(a.pl, b.pl); } export const multilingualStringComparator = createMultilingualComparator((a, b) => a && b ? a.localeCompare(b) : 0) export const multilingualNumberComparator = createMultilingualComparator((a, b) => a - b) export function fieldComparator(field: K, comparator: Comparator): Comparator { return (a, b) => comparator(a[field], b[field]) }