From d3d1ddcf07a8a75f457bb0b92d18bcb11483c09b Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Wed, 1 May 2024 20:11:20 +0200 Subject: [PATCH] Refresh roboname --- frontend/src/basic/RobotPage/RobotProfile.tsx | 2 +- frontend/src/models/Garage.model.ts | 9 ++++++--- frontend/src/models/Slot.model.ts | 9 ++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/frontend/src/basic/RobotPage/RobotProfile.tsx b/frontend/src/basic/RobotPage/RobotProfile.tsx index 2ac4f354..4a21bfbb 100644 --- a/frontend/src/basic/RobotPage/RobotProfile.tsx +++ b/frontend/src/basic/RobotPage/RobotProfile.tsx @@ -90,7 +90,7 @@ const RobotProfile = ({ sx={{ width: '100%' }} > - {slot?.hashId ? ( + {slot?.nickname ? (
) => { if (rawSlot?.token) { - this.slots[rawSlot.token] = new Slot(rawSlot.token, Object.keys(rawSlot.robots), {}); + this.slots[rawSlot.token] = new Slot(rawSlot.token, Object.keys(rawSlot.robots), {}, () => + this.triggerHook('onRobotUpdate'), + ); Object.keys(rawSlot.robots).forEach((shortAlias) => { const rawRobot = rawSlot.robots[shortAlias]; @@ -113,9 +115,10 @@ class Garage { if (!token || !shortAliases) return; if (this.getSlot(token) === null) { - this.slots[token] = new Slot(token, shortAliases, attributes); + this.slots[token] = new Slot(token, shortAliases, attributes, () => + this.triggerHook('onRobotUpdate'), + ); this.save(); - this.triggerHook('onRobotUpdate'); } }; diff --git a/frontend/src/models/Slot.model.ts b/frontend/src/models/Slot.model.ts index e9bf4c46..76909bf0 100644 --- a/frontend/src/models/Slot.model.ts +++ b/frontend/src/models/Slot.model.ts @@ -3,13 +3,19 @@ import { Robot, type Order } from '.'; import { roboidentitiesClient } from '../services/Roboidentities/Web'; class Slot { - constructor(token: string, shortAliases: string[], robotAttributes: Record) { + constructor( + token: string, + shortAliases: string[], + robotAttributes: Record, + onRobotUpdate: () => void, + ) { this.token = token; this.hashId = sha256(sha256(this.token)); this.nickname = null; roboidentitiesClient.generateRoboname(this.hashId).then((nickname) => { this.nickname = nickname; + onRobotUpdate(); }); roboidentitiesClient.generateRobohash(this.hashId, 'small'); roboidentitiesClient.generateRobohash(this.hashId, 'large'); @@ -23,6 +29,7 @@ class Slot { this.activeShortAlias = null; this.lastShortAlias = null; this.copiedToken = false; + onRobotUpdate(); } token: string | null;