Update status to match UI
This commit is contained in:
@@ -1239,6 +1239,41 @@ export class BotClient extends AuthorizedApiBase {
|
||||
return Promise.resolve<BotStatus>(null as any);
|
||||
}
|
||||
|
||||
bot_StopAll(): Promise<boolean> {
|
||||
let url_ = this.baseUrl + "/Bot/StopAll";
|
||||
url_ = url_.replace(/[?&]$/, "");
|
||||
|
||||
let options_: RequestInit = {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Accept": "application/json"
|
||||
}
|
||||
};
|
||||
|
||||
return this.transformOptions(options_).then(transformedOptions_ => {
|
||||
return this.http.fetch(url_, transformedOptions_);
|
||||
}).then((_response: Response) => {
|
||||
return this.processBot_StopAll(_response);
|
||||
});
|
||||
}
|
||||
|
||||
protected processBot_StopAll(response: Response): Promise<boolean> {
|
||||
const status = response.status;
|
||||
let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };
|
||||
if (status === 200) {
|
||||
return response.text().then((_responseText) => {
|
||||
let result200: any = null;
|
||||
result200 = _responseText === "" ? null : JSON.parse(_responseText, this.jsonParseReviver) as boolean;
|
||||
return result200;
|
||||
});
|
||||
} else if (status !== 200 && status !== 204) {
|
||||
return response.text().then((_responseText) => {
|
||||
return throwException("An unexpected server error occurred.", status, _responseText, _headers);
|
||||
});
|
||||
}
|
||||
return Promise.resolve<boolean>(null as any);
|
||||
}
|
||||
|
||||
bot_Delete(identifier: string | undefined): Promise<boolean> {
|
||||
let url_ = this.baseUrl + "/Bot/Delete?";
|
||||
if (identifier === null)
|
||||
@@ -4308,9 +4343,9 @@ export interface SaveBotRequest extends StartBotRequest {
|
||||
}
|
||||
|
||||
export enum BotStatus {
|
||||
None = "None",
|
||||
Down = "Down",
|
||||
Up = "Up",
|
||||
Saved = "Saved",
|
||||
Stopped = "Stopped",
|
||||
Running = "Running",
|
||||
}
|
||||
|
||||
export interface TradingBotResponse {
|
||||
@@ -4523,7 +4558,7 @@ export interface StrategyPerformance {
|
||||
|
||||
export interface UserStrategyDetailsViewModel {
|
||||
name?: string | null;
|
||||
state?: string | null;
|
||||
state?: BotStatus;
|
||||
pnL?: number;
|
||||
roiPercentage?: number;
|
||||
roiLast24H?: number;
|
||||
@@ -4533,8 +4568,8 @@ export interface UserStrategyDetailsViewModel {
|
||||
volumeLast24H?: number;
|
||||
wins?: number;
|
||||
losses?: number;
|
||||
positions?: { [key: string]: Position; } | null;
|
||||
identifier?: string | null;
|
||||
positions?: Position[] | null;
|
||||
identifier?: string;
|
||||
walletBalances?: { [key: string]: number; } | null;
|
||||
}
|
||||
|
||||
|
||||
@@ -731,9 +731,9 @@ export interface SaveBotRequest extends StartBotRequest {
|
||||
}
|
||||
|
||||
export enum BotStatus {
|
||||
None = "None",
|
||||
Down = "Down",
|
||||
Up = "Up",
|
||||
Saved = "Saved",
|
||||
Stopped = "Stopped",
|
||||
Running = "Running",
|
||||
}
|
||||
|
||||
export interface TradingBotResponse {
|
||||
@@ -946,7 +946,7 @@ export interface StrategyPerformance {
|
||||
|
||||
export interface UserStrategyDetailsViewModel {
|
||||
name?: string | null;
|
||||
state?: string | null;
|
||||
state?: BotStatus;
|
||||
pnL?: number;
|
||||
roiPercentage?: number;
|
||||
roiLast24H?: number;
|
||||
@@ -956,8 +956,8 @@ export interface UserStrategyDetailsViewModel {
|
||||
volumeLast24H?: number;
|
||||
wins?: number;
|
||||
losses?: number;
|
||||
positions?: { [key: string]: Position; } | null;
|
||||
identifier?: string | null;
|
||||
positions?: Position[] | null;
|
||||
identifier?: string;
|
||||
walletBalances?: { [key: string]: number; } | null;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ type UseBotsProps = {
|
||||
callback?: (data: TradingBotResponse[]) => void | undefined
|
||||
}
|
||||
|
||||
const useBots = ({status = BotStatus.None, callback}: UseBotsProps) => {
|
||||
const useBots = ({status = BotStatus.Saved, callback}: UseBotsProps) => {
|
||||
const {apiUrl} = useApiUrlStore()
|
||||
const botClient = new BotClient({}, apiUrl)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import TradesModal from '../../components/mollecules/TradesModal/TradesModal'
|
||||
import {TradeChart, UnifiedTradingModal} from '../../components/organism'
|
||||
import {
|
||||
BotClient,
|
||||
BotStatus,
|
||||
MoneyManagement,
|
||||
Position,
|
||||
TradingBotConfig,
|
||||
@@ -28,9 +29,23 @@ function baseBadgeClass(isOutlined = false) {
|
||||
return classes
|
||||
}
|
||||
|
||||
function cardClasses(botStatus: string) {
|
||||
const classes =
|
||||
'card bg-base-300 shadow-md ' + (botStatus == 'Up' ? 'shadow-success' : '')
|
||||
function cardClasses(botStatus: BotStatus) {
|
||||
let classes = 'card bg-base-300 shadow-md '
|
||||
|
||||
switch (botStatus) {
|
||||
case BotStatus.Running:
|
||||
classes += 'shadow-success'
|
||||
break
|
||||
case BotStatus.Saved:
|
||||
classes += 'shadow-info'
|
||||
break
|
||||
case BotStatus.Stopped:
|
||||
classes += 'shadow-warning'
|
||||
break
|
||||
default:
|
||||
// No additional shadow for other statuses
|
||||
break
|
||||
}
|
||||
|
||||
return classes
|
||||
}
|
||||
@@ -154,7 +169,6 @@ const BotList: React.FC<IBotList> = ({ list }) => {
|
||||
const isUp = status == 'Up'
|
||||
const t = new Toast(isUp ? 'Stoping bot' : 'Restarting bot')
|
||||
|
||||
console.log('toggleBotStatus', status, identifier)
|
||||
if (status == 'Up') {
|
||||
client
|
||||
.bot_Stop(identifier)
|
||||
@@ -224,7 +238,7 @@ const BotList: React.FC<IBotList> = ({ list }) => {
|
||||
key={index.toString()}
|
||||
className="sm:w-1 md:w-1/2 xl:w-1/2 w-full p-2"
|
||||
>
|
||||
<div className={cardClasses(bot.status)}>
|
||||
<div className={cardClasses(bot.status as BotStatus)}>
|
||||
<figure className="w-full">
|
||||
{bot.candles && bot.candles.length > 0 ? (
|
||||
<TradeChart
|
||||
|
||||
@@ -33,13 +33,13 @@ const Bots: React.FC = () => {
|
||||
queryFn: () => {
|
||||
switch (activeTab) {
|
||||
case 0: // All Active Bots
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Up, undefined, undefined, undefined, 'CreatedAt', 'Desc')
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Running, undefined, undefined, undefined, 'CreatedAt', 'Desc')
|
||||
case 1: // My Active Bots
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Up, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Running, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
case 2: // My Down Bots
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Down, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Stopped, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
case 3: // Saved Bots
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.None, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, BotStatus.Saved, undefined, undefined, currentUser?.agentName, 'CreatedAt', 'Desc')
|
||||
default:
|
||||
return botClient.bot_GetBotsPaginated(pageNumber, pageSize, undefined, undefined, undefined, undefined, 'CreatedAt', 'Desc')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user