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