Solved 필터가 드롭다운에서 상태를 업데이트하지 않습니다

이 문제는 이미 이전부터 발생했었고 수정된 바가 있어, 회귀(regression) 문제인 것으로 보입니다. ‘Solved’ 상태에 대한 드롭다운 필터는 정상적으로 작동합니다(목록이 필터링되지만), 드롭다운이 현재 필터 상태로 업데이트되지 않습니다. 항상 "all"로 유지됩니다.

이것은 최신 안정판 Discourse에서 발생하는 문제입니다.

또한 발견한 문제로는 'Solved’을 태그로 제한할 수 있다는 점입니다. 하지만 이 필터는 태그 목록에는 표시되지 않습니다. 'Solved’이 활성화된 카테고리 목록이나 모든 토픽에 활성화된 경우에만 표시됩니다.

수정: 테마 컴포넌트 Featured Lists에서도 이 필터를 사용하고 있습니다. 다음 코드는 작동했습니다:

    const topicList = await this.store.findFiltered('topicList', {
      filter: this.args.list.filter,
      params: {
        order: 'activity',
        category: this.args.list.category,
        tags: this.args.list.tag,
        solved: this.args.list.solved,
      },

하지만 해당 컴포넌트에서 필터가 작동하지 않게 되었습니다. 에러 메시지는 보이지 않습니다.

1개의 좋아요

왜 그런지, 그리고 이것이 코어 변경 사항인지 모르겠지만, 여기에서 간단한 디버깅을 해보았습니다.

https://github.com/discourse/discourse-solved/blob/main/assets/javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter.js#L47-L51

modelParams가 카테고리 페이지에 있지 않은 경우 존재하지 않음을 보여줍니다.

여기서 정의되어 있습니다:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/routes/build-category-route.js#L71

홈페이지와 카테고리 라우트에서 작동하는 여러 대안들이 있습니다:

.queryParams.solved
.attributes.list.params.solved
.attributes.list.listParams.solved

코어에서 최근 변경 사항을 발견할 수 없습니다. :thinking:

제가 보는 바로는, modelParams는 이 PR 이후로 사용되어 왔습니다:

1개의 좋아요

@Arkshine 님, 확인해 주셔서 감사합니다! 제 컴포넌트는 두 달 전에 게시한 건데, 그때는 정상적으로 작동하고 있었을 거라고 확신합니다 :thinking:

안녕하세요 @manuel! 보고해 주셔서 감사합니다. 상태 필터가 업데이트되지 않는 주요 문제를 재현하지는 못했지만, 상태 확인을 위해 this.router.currentRoute.queryParams?.solved로 변경했는데, 이렇게 하면 더 잘 작동할 수 있습니다.

태그는 카테고리와 연결되어 있지 않아 모든 태그에 필터를 표시하는 것이 항상 관련이 있는 것은 아니지만, 일단 여기에도 추가해 두었습니다.

테마 컴포넌트에 대해서는, solved로 필터링할 때 solved / unsolved 대신 yes / no를 확인해야 합니다. 제안된 변경 사항이 포함된 PR을 방금 열었습니다.

3개의 좋아요

이 주제는 3일 후 자동으로 닫혔습니다. 새로운 답변은 더 이상 허용되지 않습니다.