support sorting Langs by alpha by first Lang

ref #510
This commit is contained in:
collinbarrett 2018-09-28 08:40:57 -05:00
parent ddd3d190a2
commit 18044a9aff

View file

@ -9,7 +9,7 @@ export const Languages = (columnVisibility: IColumnVisibility[], languages: ILan
filterable: true,
filterMethod: (f: Filter, r: any[]) => filterMethod(f, r),
Filter: ({ onChange, filter }: any) => Filter({ onChange, filter }, languages),
sortable: false,
sortMethod: (a: number[], b: number[]) => sortMethod(a, b, languages),
Cell: (c: any) => Cell(c.value, languages),
style: { whiteSpace: "inherit" },
width: 95,
@ -40,6 +40,20 @@ const Filter = (props: any, languages: ILanguage[]) =>
: null}
</select>;
const sortMethod = (a: number[], b: number[], languages: ILanguage[]) => {
if (a && a.length > 0) {
if (b && b.length > 0) {
const aFirstLanguageName = languages.filter((l: ILanguage) => l.id === a[0])[0].name;
const bFirstLanguageName = languages.filter((l: ILanguage) => l.id === b[0])[0].name;
return aFirstLanguageName.toLowerCase() > bFirstLanguageName.toLowerCase() ? 1 : -1;
} else {
return -1;
}
} else {
return 1;
}
};
const Cell = (languageIds: number[], languages: ILanguage[]) =>
languageIds
? <div className="fl-tag-container">