mirror of
https://github.com/RoboSats/robosats.git
synced 2025-01-09 15:51:34 +00:00
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
|
import { Robot, type Order } from '.';
|
||
|
|
||
|
class Slot {
|
||
|
constructor(token: string) {
|
||
|
this.token = token;
|
||
|
this.robots = {};
|
||
|
this.order = null;
|
||
|
this.activeShortAlias = null;
|
||
|
this.lastShortAlias = null;
|
||
|
this.copiedToken = false;
|
||
|
this.avatarLoaded = false;
|
||
|
}
|
||
|
|
||
|
token: string | null;
|
||
|
robots: { [shortAlias: string]: Robot };
|
||
|
order: Order | null;
|
||
|
activeShortAlias: string | null;
|
||
|
lastShortAlias: string | null;
|
||
|
copiedToken: boolean;
|
||
|
avatarLoaded: boolean;
|
||
|
|
||
|
setAvatarLoaded = (avatarLoaded: boolean): void => {
|
||
|
this.avatarLoaded = avatarLoaded;
|
||
|
};
|
||
|
|
||
|
setCopiedToken = (copied: boolean): void => {
|
||
|
this.copiedToken = copied;
|
||
|
};
|
||
|
|
||
|
getRobot = (shortAlias?: string): Robot | null => {
|
||
|
if (shortAlias) {
|
||
|
return this.robots[shortAlias];
|
||
|
} else if (this.activeShortAlias !== null && this.robots[this.activeShortAlias]) {
|
||
|
return this.robots[this.activeShortAlias];
|
||
|
} else if (this.lastShortAlias !== null && this.robots[this.lastShortAlias]) {
|
||
|
return this.robots[this.lastShortAlias];
|
||
|
} else if (Object.values(this.robots).length > 0) {
|
||
|
return Object.values(this.robots)[0];
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
|
||
|
upsertRobot = (shortAlias: string, attributes: Record<any, any>): Robot | null => {
|
||
|
if (this.robots[shortAlias] === undefined) this.robots[shortAlias] = new Robot();
|
||
|
|
||
|
this.robots[shortAlias].update(attributes);
|
||
|
|
||
|
if (attributes.lastOrderId !== undefined && attributes.lastOrderId != null) {
|
||
|
this.lastShortAlias = shortAlias;
|
||
|
if (this.activeShortAlias === shortAlias) {
|
||
|
this.activeShortAlias = null;
|
||
|
}
|
||
|
}
|
||
|
if (attributes.activeOrderId !== undefined && attributes.activeOrderId != null) {
|
||
|
this.activeShortAlias = attributes.shortAlias;
|
||
|
}
|
||
|
|
||
|
return this.robots[shortAlias];
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export default Slot;
|