Skip to content

Commit 54e38fa

Browse files
committed
feat: add util function for number and string comparator
1 parent 6631142 commit 54e38fa

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

src/Shared/Helpers.tsx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MaterialInfo } from '../Common'
1+
import { MaterialInfo, SortingOrder } from '../Common'
22
import { GitTriggers, WebhookEventNameType } from './types'
33
import { ReactComponent as ICPullRequest } from '../Assets/Icon/ic-pull-request.svg'
44
import { ReactComponent as ICTag } from '../Assets/Icon/ic-tag.svg'
@@ -70,8 +70,26 @@ export const getGitCommitInfo = (materialInfo: MaterialInfo): GitTriggers => ({
7070
CiConfigureSourceValue: '',
7171
})
7272

73-
export const caseInsensitiveStringComparator = (a: string, b: string): number =>
74-
a.toLowerCase().localeCompare(b.toLowerCase())
73+
export const stringComparatorBySortOrder = (
74+
a: string,
75+
b: string,
76+
sortOrder: SortingOrder = SortingOrder.ASC,
77+
isCaseSensitive: boolean = true,
78+
): number => {
79+
if (isCaseSensitive) {
80+
return sortOrder === SortingOrder.ASC ? a.localeCompare(b) : b.localeCompare(a)
81+
}
82+
83+
return sortOrder === SortingOrder.ASC
84+
? a.toLowerCase().localeCompare(b.toLowerCase())
85+
: b.toLowerCase().localeCompare(a.toLowerCase())
86+
}
87+
88+
export const numberComparatorBySortOrder = (
89+
a: number,
90+
b: number,
91+
sortOrder: SortingOrder = SortingOrder.ASC,
92+
): number => (sortOrder === SortingOrder.ASC ? a - b : b - a)
7593

7694
export const getWebhookEventIcon = (eventName: WebhookEventNameType) => {
7795
switch (eventName) {

0 commit comments

Comments
 (0)