협업 설정에서 기본적으로 전체 화면 채팅 사용

멤버 간 커뮤니케이션의 주된 공간으로 채팅을 설정하는 협업 환경을 구축하고 있습니다. 이는 다른 협업 플랫폼들과 유사한 방식입니다. 목표는 멤버들이 사이트를 방문할 때 바로 자신의 채널이나 최신 스레드에 진입하게 하여, 채팅을 사이트의 중심 허브로 만드는 것입니다.

즉, 다음과 같은 뷰에 도달하는 대신:

채팅이 전체 화면으로 바로 열리도록 하는 것입니다:

현재 채팅을 기본적으로 전체 화면 모드로 열 수 있는 방법이 없는 것 같습니다. 이것이 옵션으로 추가될 수 있을까요?

사이트 설정, 테마 수정자, 또는 값 변환기로 노출할 수 있습니다. 테마 작성자나 사이트 관리자가 채팅을 기본 상호작용 뷰로 통합할 수 있는 유연성을 제공하는 방식입니다.

5개의 좋아요

다음과 같이 초기화 파일을 작성할 수 있습니다:

export default {
  name: "default-full-page-chat",

  initialize() {
    if (!window.localStorage.getItem("discourse_chat_preferred_mode")) {
      window.localStorage.setItem("discourse_chat_preferred_mode", '\"FULL_PAGE_CHAT\"');
    }
  },
};

이렇게 하면 원하는 대로 동작할 것 같습니다.

8개의 좋아요

정말, 완벽하게 작동합니다! 감사합니다 :blush:

7개의 좋아요

이미 해결된 문제라는 건 알지만, 이렇게 직접 localstorage에 접근하는 대신 테마에서 플러그인 서비스에 접근할 수 있다면 이렇게 할 수 있습니다:

export default {
  name: "default-full-page-chat",

  initialize(container) {
    const chat = container.lookup("service:chat");
    if (!chat.userCanChat) {
      return;
    }

    const chatStateManager = container.lookup("service:chat-state-manager");
    chatStateManager.prefersFullPage();
  },
};

이것은 다음을 호출합니다:

동작한다면 장기적으로 더 신뢰할 수 있는 방법일 것입니다(테스트는 아직 하지 않았습니다 :sweat_smile: ).

5개의 좋아요

네, 서비스를 사용하는 쪽이 더 나은 방법이지만, 현재 서비스로 설정된 선호 사항이 있는지 확인할 수 있는 방법이 있는지는 잘 모르겠습니다. 혹시 그런 방법이 있나요?

요청의 의도를 제가 제대로 이해했다면, 사용자의 선택을 무시하는 것은 원치 않으며, 최초 로드 시 풀스크린을 권장하는 것만 원한다는 뜻입니다. 단순히 강제하려는 것이라면, 네, 당신의 해결책이 작동할 것입니다.

4개의 좋아요

해당 기능은 있지만, 선호 사항이 설정되지 않은 경우 isDrawerPreferred는 항상 true입니다:

이러한 상황을 위해 스토어만 확인하는 hasNoPreferredMode 게터가 있으면 좋겠습니다. PR을 올렸습니다:

4개의 좋아요

좋아요 @manuel, 이 PR이 이제 병합되었으니 Full-screen chat as default for collaboration setup - #4 by martin 제가 설명한 플러그인 API와 채팅 상태 관리자의 hasNoPreferredMode를 사용할 수 있습니다.

2개의 좋아요

안녕하세요 @manuel, 간단히 말씀드릴게요:

풀스크린 채팅 모드에서는 보통 풀스크린을 종료하거나(또는 채팅 UI를 변경해야) 채팅 목록으로 돌아가거나 다른 멤버와의 대화로 전환할 수 있는 명확한 옵션을 확인할 수 있습니다.

풀스크린 내부에서 해당 내비게이션 경험을 개선할 수 있는 방법이 있는지 고려해 볼 가치가 있을 것 같습니다.

@martin 감사합니다, 정말 잘 작동합니다!

현재 제 상황에서 UX를 테스트해 보니, 채팅을 항상 전체 화면으로 사용하는 것이 실제로 더 직관적인 것 같습니다. 채팅을 주요 소통 방식으로 만들고자 하는데, 최소화 옵션을 허용하면 사용자가 의도하지 않게 다른 화면으로 이동하게 되어 혼란을 줄 수 있습니다.

최소화 옵션을 비활성화하는 더 직접적인 방법이 없다면 CSS로 해당 옵션을 숨기는 방향으로 진행하려고 합니다.


@jahan_gagan 어떤 것을 말씀하신지 정확히 이해가 되지 않습니다. 햄버거 메뉴를 내비게이션으로 사용하는 사이트에서 그런 문제가 발생하는 건가요? 제 설정에서는 모든 내비게이션 옵션이 사이드바를 통해 제공됩니다.

다만 한 가지 문제가 있습니다: 태블릿에서는 채팅 채널로 이동할 때 키보드가 자동으로 올라와서 레이아웃이 매우 불안정하게 보입니다. 이 문제를 해결하기 위해 조사해 보진 않았지만, 이런 복잡함이 있다는 점 참고해 주세요.

3개의 좋아요

네, 접기 버튼을 숨기면 해결될 수 있지만, 방금 확인해보니 사용자가 드로어 모드로 전환할 수 있는 방법이 하나 더 있습니다. 포럼에서 - 키를 누르면 채팅 드로어가 열립니다:

이 함수에서 chatStateManager.prefersDrawer()를 호출하여 로컬 스토리지 설정을 설정합니다. 최근 내부적으로 Discourse의 채팅 전용 모드 허용에 대해 더 많은 논의가 있었으며, 이 방향의 실험과 드로어 모드에 대한 아이디어도 있었습니다.

이 주제에 집중할 시기가 언제가 될지는 모르겠습니다. @mcwumbly 또는 @lindsey 님이 여기에 의견을 주실 수 있을 것입니다.

2개의 좋아요

고맙습니다, 정말 유용한 정보네요! 당장 무엇을 할지는 아직 확신이 없지만, 향후 이 기능을 일반 Discourse 설정과 완전히 일치시킬 수 있는 옵션이 제공되면 좋겠습니다.

1개의 좋아요