#nullable enable using Cysharp.Threading.Tasks; using UnityEngine; using UVC.Data; using UVC.Data.Core; using UVC.UI.Modal; using UVC.UI.Tab; namespace UVC.Factory.Modal.Settings { public class DisplayDataOrderModal : ModalView { [SerializeField] public TabController tabController; // 탭 컨트롤러 /// /// 모달이 열릴 때 호출됩니다. (비동기) /// /// 모달에 표시할 내용/설정 public override async UniTask OnOpen(ModalContent content) { await base.OnOpen(content); // 부모의 OnOpen을 먼저 호출해서 기본 UI를 설정해요. if (tabController != null) { var dic = DataMask.DataMasks; foreach (var item in dic) { Debug.Log($"Key: {item.Key}, Value: {item.Value}"); // 1. TabConfig 설정 tabController.AddTabConfig(item.Key, item.Key, "Prefabs/UI/Tab/DisplayDataOrderTabContent", "", item.Key, true); } // 2. 컨트롤러 초기화 tabController.Initialize(); } } /// /// 모달이 닫힐 때 결과로 반환할 데이터를 돌려줍니다. /// /// 선택된 UIPlaybackListItemData 또는 null public override UniTask GetResult() { return UniTask.FromResult(null); } /// /// 모달이 닫힐 때 호출됩니다. /// public override async UniTask OnClose(ModalContent content) { await UserSetting.SaveToAppData(); // 데이터 마스크를 앱 데이터에 저장합니다. await base.OnClose(content); } protected void OnDestroy() { } } }