Files
EnglewoodLAB/Assets/Scripts/Factory/Modal/Settings/DisplayDataOrderModal.cs

65 lines
1.9 KiB
C#

#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; // 탭 컨트롤러
/// <summary>
/// 모달이 열릴 때 호출됩니다. (비동기)
/// </summary>
/// <param name="content">모달에 표시할 내용/설정</param>
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();
}
}
/// <summary>
/// 모달이 닫힐 때 결과로 반환할 데이터를 돌려줍니다.
/// </summary>
/// <returns>선택된 UIPlaybackListItemData 또는 null</returns>
public override UniTask<object?> GetResult()
{
return UniTask.FromResult<object?>(null);
}
/// <summary>
/// 모달이 닫힐 때 호출됩니다.
/// </summary>
public override async UniTask OnClose(ModalContent content)
{
await UserSetting.SaveToAppData(); // 데이터 마스크를 앱 데이터에 저장합니다.
await base.OnClose(content);
}
protected void OnDestroy()
{
}
}
}