안녕하세요,
이 이슈에 대해 후속 보고드립니다: 제안하신 대로 minimal-modal-test 플러그인을 생성했습니다.
-
성공: 테스트 플러그인의 모달 컴포넌트(
minimal-modal.gjs)에 기본 요소(<p>,<textarea>, 핵심<DModal>,<DButton>, 그리고 조건 블록을 위한#if내장 헬퍼 또는 제출 버튼 아이콘에 사용된if등)만 포함되었을 때,post-menu-buttons값 변환기를 통해 추가된 버튼 컴포넌트에서 트리거된modal.show()를 통해 열리면 에러 없이 올바르게 렌더링되었습니다. 이는 제 환경(Discourse v3.5.0.beta3-dev)에서 기본 모달 서비스, 컴포넌트 렌더링, 값 변환기 및 내장 헬퍼가 독립적으로 기능하는 것을 확인해 줍니다. -
실패: 자식 컴포넌트
<StarRatingInput>을 모달 템플릿(minimal-modal.gjs또는feedback-form-modal.gjs)에 다시 추가하는 순간, 에러(TypeError: userProvidedCallback is undefined/ 이전에는Attempted to use a value as a helper... undefined)가 일관되게 재현됩니다.
StarRatingInput 컴포넌트 자체는 이전에 식별된 우회 방안(인라인 SVG 사용, this 컨텍스트 수정을 위한 starClass와 같은 메서드에 화살표 함수 사용, range 헬퍼 대신 표준 JS Array.from 사용)을 적용하도록 확인했습니다. StarRatingInput의 내부 코드는 이제 올바르게 보입니다.
이는 이 특정 렌더링 컨텍스트 내에서 부모 모달 컴포넌트 안에 네스트된 <StarRatingInput> 컴포넌트(각각 #each 루프, 동적 클래스 바인딩, 이벤트 핸들러를 포함)를 렌더링할 때 에러가 트리거됨을 시사합니다.
https://github.com/rahul-rakesh/discourse-modal-render-test
재현 방법
-
최신 Discourse 개발 환경 버전을 실행 중이어야 합니다.
-
사용자로 로그인합니다.
-
임의의 토픽으로 이동하여 첫 번째 게시글을 봅니다.
-
게시글 메뉴에 추가된 “Test Failing Modal” 버튼을 클릭합니다.
-
브라우저 개발자 콘솔을 엽니다.
예상 결과
별점 입력기가 포함된 간단한 모달 다이얼로그가 나타납니다.
실제 결과
모달이 렌더링되지 않습니다. 브라우저 콘솔에 에러가 표시됩니다.