Skip to content

Commit 49b599f

Browse files
Merge pull request #308 from codex-team/fix-team-sort
feat: Imp[NoteSettings] add func to sort team in correct order
2 parents 1c82822 + f804d9d commit 49b599f

File tree

1 file changed

+33
-5
lines changed
  • src/presentation/components/team

1 file changed

+33
-5
lines changed

src/presentation/components/team/Team.vue

+33-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
:caption="t('noteSettings.team.caption')"
55
>
66
<Row
7-
v-for="(member, memberIndex) in team"
7+
v-for="(member, memberIndex) in sortedTeam"
88
:key="member.id"
99
:title="member.user.name || member.user.email"
10-
:has-delimiter="memberIndex !== team.length - 1"
10+
:has-delimiter="memberIndex !== sortedTeam.length - 1"
1111
data-dimensions="medium"
1212
>
1313
<template #right>
@@ -33,13 +33,15 @@
3333
</template>
3434

3535
<script setup lang="ts">
36-
import { Team } from '@/domain/entities/Team';
37-
import { NoteId } from '@/domain/entities/Note';
36+
import { computed } from 'vue';
37+
import { Team, MemberRole } from '@/domain/entities/Team';
38+
import { Note, NoteId } from '@/domain/entities/Note';
3839
import { Section, Row, Avatar } from 'codex-ui/vue';
3940
import RoleSelect from './RoleSelect.vue';
4041
import { useI18n } from 'vue-i18n';
42+
import useNote from '@/application/services/useNote.ts';
4143
42-
defineProps<{
44+
const props = defineProps<{
4345
/**
4446
* Team of the current note
4547
*/
@@ -51,6 +53,32 @@ defineProps<{
5153
}>();
5254
5355
const { t } = useI18n();
56+
const { note } = useNote({ id: props.noteId });
57+
58+
const sortedTeam = computed(() => {
59+
if (!note.value) {
60+
return props.team;
61+
}
62+
63+
return [...props.team].sort((a, b) => {
64+
const isCreatorA = a.user.id === (note.value as Note).creatorId;
65+
const isCreatorB = b.user.id === (note.value as Note).creatorId;
66+
67+
if (isCreatorA) {
68+
return -1;
69+
}
70+
if (isCreatorB) {
71+
return 1;
72+
}
73+
74+
const roleOrder = {
75+
[MemberRole.Write]: 0,
76+
[MemberRole.Read]: 1,
77+
};
78+
79+
return roleOrder[a.role] - roleOrder[b.role];
80+
});
81+
});
5482
</script>
5583

5684
<style scoped>

0 commit comments

Comments
 (0)