기본 그룹 페이지를 /messages로 변경

해당 링크들은 약간 다른 직렬화기를 사용합니다. 거기서는 그룹 데이터 전체가 필요하지 않기 때문입니다.

그래도 초기 페이지 로드 시 현재 사용자의 그룹 중 필터링된 목록을 저장해 두었다가, 멤버십 확인 시 참조 자료로 사용할 수 있습니다. 이 정보는 이미 초기 페이로드에 포함되어 있으므로, 추가 요청이나 그에 따른 오버헤드가 전혀 없습니다. 다음과 같은 방식입니다.

<script type="text/discourse-plugin" version="0.8">
  const user = api.getCurrentUser();

  if (!user) {
    return;
  }

  const userGroups = user.groups.map(group => group.name);

  api.reopenWidget("pm-map-user-group", {
    transform(attrs) {

      const group = attrs.group;
      const isGroupUser = Object.values(userGroups).includes(group.name);

      // {href: "/g/foo"};
      let groupURL = this._super(...arguments);

      if (isGroupUser && group.has_messages) {
        groupURL.href = `${groupURL.href}/messages/`;
      }

      return groupURL;
    }
  });
</script>

이 스니펫은 별도의 스크립트 태그 안에 유지하고, 다른 스니펫들과 함께 헤더에 추가하세요. 사용자가 로그인되어 있지 않을 경우 빠르게 처리를 중단하기 때문에 분리해서 두는 것이 좋습니다.