Skip to content

Commit

Permalink
fix(Slack): sort user name alphabetically
Browse files Browse the repository at this point in the history
  • Loading branch information
mikewuu committed Jun 24, 2024
1 parent 4043169 commit 9233f2f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import { AsanaUser } from '@/lib/asana/types'
import { http } from '@/lib/http/client/http'
import { getSlackDisplayName } from '@/lib/slack/get-slack-display-name'
import { TrelloMember } from '@/lib/trello/types'
import {
Select,
Expand Down Expand Up @@ -165,15 +166,3 @@ export default function ContributorRow(props: ContributorRowProps) {
</TableRow>
)
}

function getSlackDisplayName(slackMember: SlackMember) {
if (slackMember.profile?.display_name) {
return slackMember.profile.display_name
}

if (slackMember.profile?.real_name) {
return slackMember.profile.real_name
}

return 'Unknown'
}
18 changes: 12 additions & 6 deletions src/app/(user)/settings/contributors/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
import { auth } from '@clerk/nextjs'
import { getTrelloBoardMembers } from '@/lib/trello/get-trello-members'
import { getAsanaUsers } from '@/lib/asana/get-asana-users'
import { getSlackDisplayName } from '@/lib/slack/get-slack-display-name'

interface ContributorsPageProps {}

Expand Down Expand Up @@ -93,12 +94,17 @@ export default async function ContributorsPage(props: ContributorsPageProps) {
])
.execute()

const availableSlackMembers = slackMembers.filter(
(slackMember) =>
slackMember.is_bot === false &&
slackMember.id !== 'USLACKBOT' &&
(!!slackMember.profile?.display_name || !!slackMember.profile?.real_name), // has name
)
const availableSlackMembers = slackMembers
.filter(
(slackMember) =>
slackMember.is_bot === false &&
slackMember.id !== 'USLACKBOT' &&
(!!slackMember.profile?.display_name ||
!!slackMember.profile?.real_name), // has name
)
.sort((a, b) =>
getSlackDisplayName(a).localeCompare(getSlackDisplayName(b)),
)

return (
<div className="space-y-6">
Expand Down
13 changes: 13 additions & 0 deletions src/lib/slack/get-slack-display-name.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Member as SlackMember } from '@slack/web-api/dist/response/UsersListResponse'

export function getSlackDisplayName(slackMember: SlackMember) {
if (slackMember.profile?.display_name) {
return slackMember.profile.display_name
}

if (slackMember.profile?.real_name) {
return slackMember.profile.real_name
}

return 'Unknown'
}

0 comments on commit 9233f2f

Please sign in to comment.