39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
|
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);
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|