From 18044a9aff214773b04eff50ed2e1f512a38a417 Mon Sep 17 00:00:00 2001 From: collinbarrett Date: Fri, 28 Sep 2018 08:40:57 -0500 Subject: [PATCH] support sorting Langs by alpha by first Lang ref #510 --- .../components/listsTable/columns/Languages.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/FilterLists.Web/ClientApp/modules/home/components/listsTable/columns/Languages.tsx b/src/FilterLists.Web/ClientApp/modules/home/components/listsTable/columns/Languages.tsx index 23eca175c..fc939225f 100644 --- a/src/FilterLists.Web/ClientApp/modules/home/components/listsTable/columns/Languages.tsx +++ b/src/FilterLists.Web/ClientApp/modules/home/components/listsTable/columns/Languages.tsx @@ -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} ; +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 ?