1.6 KiB
1.6 KiB
56. 상점 UI 및 로직 디버깅 (Shop UI & Logic Debugging)
1. 목표 (Goal)
- 상점 구매 기능이 정상적으로 작동하지 않는 문제(성공 시에도 빨간색 에러 메시지 표시 등)를 해결합니다.
ShopUI에서ShopProvider와의 연동 로직을 개선하여 사용자 피드백(SnackBar)을 명확하게 만듭니다.
2. 구현 상세 (Implementation Details)
ShopUI 수정
- 구매 확인 다이얼로그 (
_showBuyConfirmation):- 기존:
buyItem호출 후 결과 확인 없이 다이얼로그 닫음 +ShopProvider의 메시지 상태에 의존하여build메서드에서 스낵바 출력 (타이밍 이슈 및 색상 고정 문제 발생). - 변경:
shopProvider.buyItem(item, player)의bool반환값을 직접 확인.- 성공 (
true): 다이얼로그 닫고 초록색 "Bought [Item Name]" 스낵바 출력. - 실패 (
false): 다이얼로그 닫고 빨간색 에러 메시지(Provider의lastShopMessage) 스낵바 출력.
- 성공 (
- 기존:
- 불필요한 코드 제거:
build메서드 내의WidgetsBinding.instance.addPostFrameCallback블록 삭제.
ShopProvider 확인
buyItem메서드는 이미 성공/실패 여부를bool로 반환하고, 실패 시_lastShopMessage를 설정하도록 잘 구현되어 있음. (수정 불필요)
3. 결과 (Result)
- 상점 아이템 구매 성공 시 정상적으로 초록색 메시지가 뜨고, 골드 부족이나 인벤토리 가득 참 등의 실패 시에는 빨간색 에러 메시지가 뜹니다.
- 구매 로직과 UI 피드백이 동기화되어 사용자 혼란을 방지했습니다.