note.ts 776 B

12345678910111213141516171819202122232425262728
  1. // 쪽지 상대방(보낸이/받는이) 표기 헬퍼.
  2. // 우선순위: 시스템 → 채널명 → 회원 별명 / 보조: @handle → #sid
  3. export type NoteCounterparty = {
  4. isSystem?: boolean;
  5. name: string|null;
  6. sid: string|null;
  7. channelName: string|null;
  8. channelHandle: string|null;
  9. };
  10. export type NoteCounterpartyDisplay = {
  11. primary: string;
  12. secondary: string|null;
  13. };
  14. export function formatNoteCounterparty(party: NoteCounterparty): NoteCounterpartyDisplay {
  15. if (party.isSystem) {
  16. return { primary: '시스템', secondary: null };
  17. }
  18. const primary = party.channelName ?? party.name ?? '알 수 없는 회원';
  19. const secondary = party.channelHandle
  20. ? `@${party.channelHandle}`
  21. : (party.sid ? `#${party.sid}` : null);
  22. return { primary, secondary };
  23. }