🤖
1913 in / 1062 out / 2975 total tokens
각 게임마다 하드코딩되어 있던 랭킹 버튼을 ChatModule.init()에서 자동으로 넣어주도록 바꿨다.
원래는 horse-race, roulette에서 채팅 섹션 헤더에 버튼을 직접 박아놨었다. dice, crane-game에는 아예 없었고. 이걸 chat-shared.js의 init() 단계에서 gameType 옵션 있고 RankingModule 있으면 자동으로 삽입하도록 통합했다.
변경 후 각 게임 파일에서는 ChatModule.init() 호출 시 gameType만 넘겨주면 된다. horse-race와 roulette에서는 하드코딩된 버튼 HTML을 제거했다.
// chat-shared.js init() 내부
if (chatMessages && _options.gameType &&
typeof RankingModule !== 'undefined' &&
!document.getElementById('rankingBtn')) {
// chatMessages 바로 앞의 채팅 타이틀 요소 찾아서 버튼 삽입
const chatSection = chatMessages.parentElement;
// ... 버튼 생성 및 삽입
}이제 새 게임 추가할 때 채팅 모듈 init에 gameType만 넘기면 랭킹 버튼 자동으로 붙는다. UI 컴포넌트를 모듈 내부로 캡슐화한 셈. 다만 RankingModule 의존성 체크를 typeof로 하는데, 나중엔 의존성 주입 패턴으로 정리해야 할 듯.
중복 UI 코드는 모듈 초기화 단계로 흡수한다.