CTT/Unity/Assets/HotfixView/Helper/SessionComponentHelper.cs

39 lines
1.3 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using ET;
using System;
using System.Collections.Generic;
namespace ET
{
public static class SessionComponentHelper
{
public static async ETTask TipCall<TQuery,TQueryRet, T,TRet>(TQuery query,Func<TQueryRet, (string,T)> queryRet,Action<TRet> retAction)
where TQuery:ET.IRequest
where TQueryRet:ET.IResponse
where T : ET.IRequest
where TRet : ET.IResponse
{
var _queryRet =await SessionComponent.Instance.Call<TQueryRet>(query);
if (!_queryRet.Message.IsNullOrEmpty())
{
TipHelper.OpenUI(_queryRet.Message);
return;
}
if (queryRet == null)
return;
var (str,t) = queryRet.Invoke(_queryRet);
var tipUI = TipHelper.OpenUI(str, tipType: TipType.Double);
tipUI.m_btnYes.self.onClick.Clear();
tipUI.m_btnYes.self.onClick.Add(async () =>
{
var ret = await SessionComponent.Instance.Call<TRet>(t);
if (!ret.Message.IsNullOrEmpty())
{
TipHelper.OpenUI(ret.Message);
return;
}
retAction?.Invoke(ret);
});
}
}
}