체크박스가 있는 태그 검색 시 모바일에서 결과가 표시되지 않음

:warning: 2023년 8월 참고사항: 이 주제의 이전 예시에는 더 이상 존재하지 않는 태그에 대한 참조가 포함되어 있지만, 빈 검색 결과 문제는 여전히 지속되고 있습니다.

https://meta.discourse.org/tags/c/theme/61/theme-component 주소를 모바일로 방문하여 확대경 아이콘을 탭하고, 예를 들어 "topic"을 검색한 다음 “Customization > Theme component 태그로 검색” 체크박스를 탭하면 두 가지 문제가 발생합니다.
한편으로는 박스가 체크되도록 체크박스를 두 번 탭해야 합니다. 다른 한편으로는 체크박스를 한 번 또는 두 번 탭해도 검색 결과가 없는데, 데스크톱 검색을 사용하면 많은 결과가 나옵니다.

체크박스 없이 모바일에서 검색


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=true

모바일에서 검색 & 체크박스 한 번 탭


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=false

모바일에서 검색 & 체크박스 두 번 탭


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=false

데스크톱 보기로 검색


https://meta.discourse.org/search?q=topic%20%23theme-component

검색창에 #customization:theme-component를 직접 입력하면 모바일에서도 결과를 얻을 수 있다는 것은 알고 있지만, 체크박스를 제공하는 의도가 그것이라고는 생각하지 않습니다.

3개의 좋아요

아, 좋은 지적이었네요 @moin. 두 가지 버그를 발견하신 것 같습니다. :slight_smile:

  1. 체크박스가 즉시 작동하지 않고,
  2. 태그로 검색 범위를 지정할 때 Discourse가 403으로 응답하는 라우트가 생성됩니다.

체크박스가 체크되지 않는 문제

모바일에서 검색 링크는 URL에 "context"를 추가하여, 해당 토글 대상인 체크박스를 표시합니다. 이 경우 우리가 보고 있는 URL은 https://meta.discourse.org/search?context=tag&context_id=theme-component&skip_context=true입니다.

체크박스를 토글하면 skip_context 값이 true에서 false로, 다시 true로 변경되는 검색 쿼리가 수정됩니다. 또한 https://meta.discourse.org/search?context=category&context_id=1&skip_context=false처럼 기본적으로 체크된 상태로 표시되는 URL을 만들 수도 있습니다. 이는 두 상태가 로드될 때 다른 동작을 관찰했기 때문에 중요합니다.

skip_context=true

모바일 뷰의 기본값이며, 체크박스는 체크되지 않은 상태입니다. 터치나 키보드로 체크박스와 상호작용하면 URL은 skip_context=false로 변경되지만, 체크박스는 체크되지 않습니다. 한 번 더 클릭하면 체크되며, URL에는 "false"가 유지됩니다.

그 후에는 예상대로 URL이 변경되면서 체크박스를 자유롭게 토글할 수 있습니다.

skip_context=false

검색이 로드될 때 체크박스는 이미 체크된 상태이며, 상호작용도 예상대로 작동합니다: 각 상호작용마다 체크박스와 URL이 함께 변경됩니다.


별도로, skip_context 값과 관계없이 해당 체크박스를 사용하면 페이지에서 포커스가 사라지는 현상도 관찰했습니다. 아마도 이는 우리의 더블클릭 문제를 일으키는 동일한 원인일 것입니다. :slight_smile:

이 동작은 safe-mode와 모바일 기기에서 재현했습니다.

태그가 범위로 지정되지 않는 문제에 대해서는 후속 답변으로 설명할 수 있는 부분을 정리해 보겠습니다. 필요 시 해당 부분을 분리하기 쉽게 하기 위해서입니다.

4개의 좋아요

검색 결과에서 태그 스코핑 시 403 반환

이 문제는 제가 당황하게 만들었습니다. 메타 사이트 밖에서 재현을 시도하다가 검색 컨텍스트에서 태그 대신 카테고리를 잘못 로드했기 때문입니다. 오히려 다행인 점은, 제 실수를 깨달았을 때 해당 컨텍스트에서 검색 쿼리가 어떻게 생성되는지 알게 되었다는 것입니다.

#customization:theme와 #customization:theme-component를 예로 들어 설명하겠습니다.

태그에 대한 검색 컨텍스트를 사용할 때, 요청은 https://meta.discourse.org/search?q=topic&page=1&search_context[type]=tag&search_context[id]=theme-component와 같이 보이며, 403이 반환됩니다.

카테고리에 대한 검색 컨텍스트를 사용할 때, 요청은 https://meta.discourse.org/search?q=topic&page=1&search_context[type]=category&search_context[id]=61와 같이 보이며, 예상대로 결과가 반환됩니다.

또한, 고급 검색 필터에서 태그를 선택하면 요청은 https://meta.discourse.org/search?q=tags:theme-component&page=1와 같이 보이며, 해당 태그가 포함된 결과가 반환됩니다.

안전 모드에서도 &search_context[type]=tag&search_context[id]=theme-component 경로가 403을 반환하는 것을 재현할 수 있습니다.

다른 search_context 유형이 있나요? 코드를 잠깐 살펴봤지만 파악하지 못했습니다. 있다면 그것들도 테스트해 볼 수 있습니다.

3개의 좋아요

Discourse Subscriptions - allow subscription of predetermined length에서 이어지는 토론입니다:

subscriptions 태그를 사용하여 제가 작성한 게시물들을 링크하려고 했기 때문에, 태그 목록 페이지로 가서 거기서 검색을 했습니다. 결과가 없었습니다 – 아래를 참조하십시오. 메인 페이지에서 검색하면 정상적으로 작동합니다. 체크박스가 문제일 수 있는데, 그것이 차이점이기 때문입니다.

1개의 좋아요

확인해 드립니다. 방금 post-voting 태그에서 옵션을 체크한 상태로 검색을 시도해 봤는데, 어떤 결과도 찾을 수 없었습니다 (@멘션이나 기타 일반 키워드 모두).

Android/Chrome

(데스크톱은 아직 확인 안 함) 데스크톱에서도 확인해 봤는데 정상적으로 작동합니다.

제가 여기에 보고한 문제 중 하나인가요?

2개의 좋아요

상자를 체크하는 데는 문제가 없었지만, 결과가 없는 것 같은 문제는 동일한 것 같습니다.

토픽을 병합했습니다. :+1: (그리고 OP를 아주 조금 다듬었습니다.)

여기서도 참고로 남기자면, OP에 있는 예시 태그는 더 이상 존재하지 않지만, 그 태그들이 보여주던 모바일에서 검색 결과가 빈 상태로 나타나는 문제는 여전히 존재합니다.

제 아주 기본적인 단계별 재현 방법:

  • 모바일에서 post-voting 토픽 목록으로 이동
  • 검색을 열고 #post_voting 태그 검색 체크박스 선택
  • 분명히 결과가 나올 검색어를 입력 (예: ‘comment’ 또는 ‘@JammyDodger’)
  • ‘검색’ 버튼 누르기

결과: ‘결과 없음’

기대 결과: 항목이 검색되어야 함

2개의 좋아요

정말 버그입니다. 보고해 주셔서 감사합니다. 이 PR이 병합되면 수정될 것입니다: FIX: Search by tag context was broken - Pull Request #23006 - discourse/discourse - GitHub

2개의 좋아요

이제 병합되었습니다 :partying_face:

3개의 좋아요

이 주제는 2일 후 자동으로 닫혔습니다. 더 이상 새로운 답글을 작성할 수 없습니다.