From 106bc67e2c00a97d77571ad8d60241e3f6e94795 Mon Sep 17 00:00:00 2001 From: Aed Date: Fri, 19 Dec 2025 03:06:16 +0000 Subject: [PATCH 01/27] add manual mounting to stay alligned setup --- gui/public/i18n/en/translation.ftl | 1 + .../pages/mounting/ManualMounting.tsx | 106 ++++++++++++++++++ .../stay-aligned-steps/VerifyMounting.tsx | 33 +++++- 3 files changed, 139 insertions(+), 1 deletion(-) diff --git a/gui/public/i18n/en/translation.ftl b/gui/public/i18n/en/translation.ftl index a02c9dab35..d615870b3d 100644 --- a/gui/public/i18n/en/translation.ftl +++ b/gui/public/i18n/en/translation.ftl @@ -1342,6 +1342,7 @@ onboarding-stay_aligned-previous_step = Previous onboarding-stay_aligned-next_step = Next onboarding-stay_aligned-restart = Restart onboarding-stay_aligned-done = Done +onboarding-stay_aligned-manual_mounting-done = Done ## Home home-no_trackers = No trackers detected or assigned diff --git a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx index c0b314f13e..9b0400bed1 100644 --- a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx +++ b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx @@ -142,3 +142,109 @@ export function ManualMountingPage() { ); } + +export function ManualMountingPageStayAlligned() { + const { isMobile } = useBreakpoint('mobile'); + const { l10n } = useLocalization(); + const { applyProgress, state } = useOnboarding(); + const { sendRPCPacket } = useWebsocketAPI(); + const { config } = useConfig(); + + const [selectedRole, setSelectRole] = useState(BodyPart.NONE); + + applyProgress(0.7); + + const assignedTrackers = useAtomValue(assignedTrackersAtom); + + const trackerPartGrouped = useMemo( + () => + assignedTrackers.reduce<{ [key: number]: FlatDeviceTracker[] }>( + (curr, td) => { + const key = td.tracker.info?.bodyPart || BodyPart.NONE; + return { + ...curr, + [key]: [...(curr[key] || []), td], + }; + }, + {} + ), + [assignedTrackers] + ); + + const onDirectionSelected = (mountingOrientationDegrees: Quaternion) => { + (trackerPartGrouped[selectedRole] || []).forEach((td) => { + const assignreq = new AssignTrackerRequestT(); + + assignreq.bodyPosition = td.tracker.info?.bodyPart || BodyPart.NONE; + assignreq.mountingOrientation = MountingOrientationDegreesToQuatT( + mountingOrientationDegrees + ); + assignreq.trackerId = td.tracker.trackerId; + assignreq.allowDriftCompensation = false; + + sendRPCPacket(RpcMessage.AssignTrackerRequest, assignreq); + Sentry.metrics.count('manual_mounting_set', 1, { + attributes: { + part: BodyPart[assignreq.bodyPosition], + direction: assignreq.mountingOrientation, + }, + }); + }); + + setSelectRole(BodyPart.NONE); + }; + + const getCurrRotation = useCallback( + (role: BodyPart) => { + if (role === BodyPart.NONE) return undefined; + + const trackers = trackerPartGrouped[role] || []; + const [mountingOrientation, ...orientation] = trackers + .map((td) => td.tracker.info?.mountingOrientation) + .filter((orientation) => !!orientation) + .map((orientation) => QuaternionFromQuatT(orientation)); + + const identicalOrientations = + mountingOrientation !== undefined && + orientation.every((quat) => + similarQuaternions(quat, mountingOrientation) + ); + return identicalOrientations ? mountingOrientation : undefined; + }, + [trackerPartGrouped] + ); + + return ( + <> + setSelectRole(BodyPart.NONE)} + onDirectionSelected={onDirectionSelected} + /> +
+
+
+ + {l10n.getString('onboarding-manual_mounting')} + + + {l10n.getString('onboarding-manual_mounting-description')} + + {l10n.getString('tips-find_tracker')} +
+
+ +
+
+
+ + ); +} diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 59d3678d88..49abda8ad9 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -1,3 +1,4 @@ +import React, { useState } from 'react'; import { Button } from '@/components/commons/Button'; import { Typography } from '@/components/commons/Typography'; import { ResetType } from 'solarxr-protocol'; @@ -5,13 +6,24 @@ import { ResetButton } from '@/components/home/ResetButton'; import { useLocalization } from '@fluent/react'; import { useBreakpoint } from '@/hooks/breakpoint'; import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper'; - +import { BaseModal } from '@/components/commons/BaseModal'; +import { ManualMountingPageStayAlligned } from '../../mounting/ManualMounting'; export function VerifyMountingStep({ nextStep, prevStep, }: VerticalStepComponentProps) { const { isMobile } = useBreakpoint('mobile'); const { l10n } = useLocalization(); + const [isOpen, setOpen] = useState(false); + + function setOpenFunc() { + setOpen(true); + } + function setCloseFunc() { + setOpen(false); + nextStep(); + } + return (
@@ -53,6 +65,25 @@ export function VerifyMountingStep({ + + + + + + + Date: Fri, 19 Dec 2025 23:56:23 +0000 Subject: [PATCH 02/27] applied suggestions --- gui/src/components/commons/TipBox.tsx | 2 +- .../pages/mounting/ManualMounting.tsx | 43 +++++++++---------- .../stay-aligned-steps/VerifyMounting.tsx | 35 ++++++--------- 3 files changed, 33 insertions(+), 47 deletions(-) diff --git a/gui/src/components/commons/TipBox.tsx b/gui/src/components/commons/TipBox.tsx index e92e897b37..93b514e671 100644 --- a/gui/src/components/commons/TipBox.tsx +++ b/gui/src/components/commons/TipBox.tsx @@ -10,7 +10,7 @@ export function TipBox({ whitespace = false, className, }: { - children: ReactNode; + children?: ReactNode; hideIcon?: boolean; whitespace?: boolean; className?: string; diff --git a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx index 9b0400bed1..ff2e513601 100644 --- a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx +++ b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx @@ -12,7 +12,7 @@ import { TipBox } from '@/components/commons/TipBox'; import { Typography } from '@/components/commons/Typography'; import { BodyAssignment } from '@/components/onboarding/BodyAssignment'; import { MountingSelectionMenu } from './MountingSelectionMenu'; -import { useLocalization } from '@fluent/react'; +import { Localized } from '@fluent/react'; import { useBreakpoint } from '@/hooks/breakpoint'; import { Quaternion } from 'three'; import { AssignMode, defaultConfig, useConfig } from '@/hooks/config'; @@ -22,7 +22,6 @@ import * as Sentry from '@sentry/react'; export function ManualMountingPage() { const { isMobile } = useBreakpoint('mobile'); - const { l10n } = useLocalization(); const { applyProgress, state } = useOnboarding(); const { sendRPCPacket } = useWebsocketAPI(); const { config } = useConfig(); @@ -103,28 +102,26 @@ export function ManualMountingPage() {
- - {l10n.getString('onboarding-manual_mounting')} - - - {l10n.getString('onboarding-manual_mounting-description')} - - {l10n.getString('tips-find_tracker')} + + + + + + +
+ id="onboarding-previous_step" + /> {!state.alonePage && ( + id="onboarding-manual_mounting-next" + /> )}
@@ -145,7 +142,6 @@ export function ManualMountingPage() { export function ManualMountingPageStayAlligned() { const { isMobile } = useBreakpoint('mobile'); - const { l10n } = useLocalization(); const { applyProgress, state } = useOnboarding(); const { sendRPCPacket } = useWebsocketAPI(); const { config } = useConfig(); @@ -226,13 +222,12 @@ export function ManualMountingPageStayAlligned() {
- - {l10n.getString('onboarding-manual_mounting')} - - - {l10n.getString('onboarding-manual_mounting-description')} - - {l10n.getString('tips-find_tracker')} + + + + + +
); } + +//251 diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 49abda8ad9..345119f386 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -1,9 +1,8 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import { Button } from '@/components/commons/Button'; import { Typography } from '@/components/commons/Typography'; import { ResetType } from 'solarxr-protocol'; import { ResetButton } from '@/components/home/ResetButton'; -import { useLocalization } from '@fluent/react'; import { useBreakpoint } from '@/hooks/breakpoint'; import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper'; import { BaseModal } from '@/components/commons/BaseModal'; @@ -13,7 +12,6 @@ export function VerifyMountingStep({ prevStep, }: VerticalStepComponentProps) { const { isMobile } = useBreakpoint('mobile'); - const { l10n } = useLocalization(); const [isOpen, setOpen] = useState(false); function setOpenFunc() { @@ -29,16 +27,8 @@ export function VerifyMountingStep({
- - {l10n.getString( - 'onboarding-automatic_mounting-mounting_reset-step-0' - )} - - - {l10n.getString( - 'onboarding-automatic_mounting-mounting_reset-step-1' - )} - + +
@@ -62,17 +52,17 @@ export function VerifyMountingStep({
)}
- + - + id="onboarding-automatic_mounting-manual_mounting" + /> @@ -80,9 +70,8 @@ export function VerifyMountingStep({ variant="primary" className="-top-44 left-8" onClick={setCloseFunc} - > - {l10n.getString('onboarding-stay_aligned-manual_mounting-done')} - + id="onboarding-stay_aligned-manual_mounting-done" + /> Date: Fri, 26 Dec 2025 02:09:12 +0000 Subject: [PATCH 03/27] set Closable prop and handle edge case --- .../stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 345119f386..16ba9b267d 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -13,11 +13,14 @@ export function VerifyMountingStep({ }: VerticalStepComponentProps) { const { isMobile } = useBreakpoint('mobile'); const [isOpen, setOpen] = useState(false); + const [closeable, setCloseable] = useState(false); function setOpenFunc() { + setCloseable(false); setOpen(true); } function setCloseFunc() { + setCloseable(true); setOpen(false); nextStep(); } @@ -63,7 +66,7 @@ export function VerifyMountingStep({ onClick={setOpenFunc} id="onboarding-automatic_mounting-manual_mounting" /> - +
From aa08b404b6cf979af3cac216504ac093ec82dc1c Mon Sep 17 00:00:00 2001 From: Aed Date: Fri, 26 Dec 2025 02:42:44 +0000 Subject: [PATCH 04/27] make lint shutup --- .../components/onboarding/pages/mounting/ManualMounting.tsx | 5 ----- .../pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx index ff2e513601..dd257ba193 100644 --- a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx +++ b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx @@ -142,14 +142,11 @@ export function ManualMountingPage() { export function ManualMountingPageStayAlligned() { const { isMobile } = useBreakpoint('mobile'); - const { applyProgress, state } = useOnboarding(); const { sendRPCPacket } = useWebsocketAPI(); const { config } = useConfig(); const [selectedRole, setSelectRole] = useState(BodyPart.NONE); - applyProgress(0.7); - const assignedTrackers = useAtomValue(assignedTrackersAtom); const trackerPartGrouped = useMemo( @@ -243,5 +240,3 @@ export function ManualMountingPageStayAlligned() { ); } - -//251 diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 16ba9b267d..7ea2338a9f 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -6,7 +6,7 @@ import { ResetButton } from '@/components/home/ResetButton'; import { useBreakpoint } from '@/hooks/breakpoint'; import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper'; import { BaseModal } from '@/components/commons/BaseModal'; -import { ManualMountingPageStayAlligned } from '../../mounting/ManualMounting'; +import { ManualMountingPageStayAlligned } from '@/components/onboarding/pages/mounting/ManualMounting'; export function VerifyMountingStep({ nextStep, prevStep, From 99cefe500886d9df89f910d02d111d1eaa1ef2de Mon Sep 17 00:00:00 2001 From: Aed Date: Fri, 26 Dec 2025 02:51:02 +0000 Subject: [PATCH 05/27] add appropriate closing --- .../stay-aligned-steps/VerifyMounting.tsx | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 7ea2338a9f..4e43c9e149 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -13,17 +13,17 @@ export function VerifyMountingStep({ }: VerticalStepComponentProps) { const { isMobile } = useBreakpoint('mobile'); const [isOpen, setOpen] = useState(false); - const [closeable, setCloseable] = useState(false); - function setOpenFunc() { - setCloseable(false); + function OpenFunc() { setOpen(true); } - function setCloseFunc() { - setCloseable(true); + function CloseFunc() { setOpen(false); nextStep(); } + function ProgressManualFunc() { + setOpen(false); + } return (
@@ -63,23 +63,26 @@ export function VerifyMountingStep({
From baa2f682633491e4ec6fac4bf83b8c75627f9eb0 Mon Sep 17 00:00:00 2001 From: Aed Date: Fri, 26 Dec 2025 02:53:22 +0000 Subject: [PATCH 06/27] naming --- .../stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 4e43c9e149..bc28b5064e 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -17,11 +17,11 @@ export function VerifyMountingStep({ function OpenFunc() { setOpen(true); } - function CloseFunc() { + function ProgressFunc() { setOpen(false); nextStep(); } - function ProgressManualFunc() { + function CloseFunc() { setOpen(false); } @@ -69,20 +69,20 @@ export function VerifyMountingStep({
From 878412c7949e38a3b16a5c9bf54983c045b1f31c Mon Sep 17 00:00:00 2001 From: Aed Date: Fri, 26 Dec 2025 02:59:50 +0000 Subject: [PATCH 07/27] didnt need that --- .../stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index bc28b5064e..b651ac97fb 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -66,11 +66,7 @@ export function VerifyMountingStep({ onClick={OpenFunc} id="onboarding-automatic_mounting-manual_mounting" /> - +
- -
+ + Date: Mon, 29 Dec 2025 00:13:48 +0000 Subject: [PATCH 10/27] Update gui/src/components/onboarding/pages/mounting/ManualMounting.tsx Co-authored-by: Sapphire --- gui/src/components/onboarding/pages/mounting/ManualMounting.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx index 1e88a12341..366b8ba3e1 100644 --- a/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx +++ b/gui/src/components/onboarding/pages/mounting/ManualMounting.tsx @@ -140,7 +140,7 @@ export function ManualMountingPage() { ); } -export function ManualMountingPageStayAlligned({ +export function ManualMountingPageStayAligned({ children, }: { children: ReactNode; From 374c251899abce618ebda17b9d73d6ee8196d4f2 Mon Sep 17 00:00:00 2001 From: Aed <145398159+Aed-1@users.noreply.github.com> Date: Mon, 29 Dec 2025 00:14:37 +0000 Subject: [PATCH 11/27] Update gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx Co-authored-by: Sapphire --- .../pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 21e8520c04..3d64032866 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -6,7 +6,7 @@ import { ResetButton } from '@/components/home/ResetButton'; import { useBreakpoint } from '@/hooks/breakpoint'; import { VerticalStepComponentProps } from '@/components/commons/VerticalStepper'; import { BaseModal } from '@/components/commons/BaseModal'; -import { ManualMountingPageStayAlligned } from '@/components/onboarding/pages/mounting/ManualMounting'; +import { ManualMountingPageStayAligned } from '@/components/onboarding/pages/mounting/ManualMounting'; export function VerifyMountingStep({ nextStep, prevStep, From 7674c82f3ca9720518f78caa7f0957aeaa17bd05 Mon Sep 17 00:00:00 2001 From: Aed <145398159+Aed-1@users.noreply.github.com> Date: Mon, 29 Dec 2025 00:14:50 +0000 Subject: [PATCH 12/27] Update gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx Co-authored-by: Sapphire --- .../pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 3d64032866..234e5f62dd 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -67,7 +67,7 @@ export function VerifyMountingStep({ id="onboarding-automatic_mounting-manual_mounting" /> - +
-
+
Date: Mon, 29 Dec 2025 00:22:28 +0000 Subject: [PATCH 13/27] Update gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx Co-authored-by: Sapphire --- .../stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 234e5f62dd..6983284412 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -14,16 +14,10 @@ export function VerifyMountingStep({ const { isMobile } = useBreakpoint('mobile'); const [isOpen, setOpen] = useState(false); - function OpenFunc() { - setOpen(true); - } - function ProgressFunc() { + const goNextStep = () => { setOpen(false); nextStep(); - } - function CloseFunc() { - setOpen(false); - } + }; return (
From fe3144df3c8b8454fc1d587dc07afe004a283d9a Mon Sep 17 00:00:00 2001 From: Aed <145398159+Aed-1@users.noreply.github.com> Date: Mon, 29 Dec 2025 00:22:34 +0000 Subject: [PATCH 14/27] Update gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx Co-authored-by: Sapphire --- .../pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 6983284412..29843d7161 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -65,7 +65,7 @@ export function VerifyMountingStep({
From c9daf9663e689cf63516d2d32a865c59d29fc537 Mon Sep 17 00:00:00 2001 From: Aed <145398159+Aed-1@users.noreply.github.com> Date: Mon, 29 Dec 2025 00:22:41 +0000 Subject: [PATCH 15/27] Update gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx Co-authored-by: Sapphire --- .../pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx index 29843d7161..89615acb2e 100644 --- a/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx +++ b/gui/src/components/onboarding/pages/stay-aligned/stay-aligned-steps/VerifyMounting.tsx @@ -57,7 +57,7 @@ export function VerifyMountingStep({
From dc580ad9868af2c2d2a6807f7a8a0b0f9ed6d15a Mon Sep 17 00:00:00 2001 From: Aed Date: Mon, 29 Dec 2025 01:33:00 +0000 Subject: [PATCH 18/27] add suggestion --- gui/src/components/home/ResetButton.tsx | 8 +++++++- .../stay-aligned/stay-aligned-steps/VerifyMounting.tsx | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index 8d8fc52d7d..eea4460def 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -28,15 +28,21 @@ export function ResetButtonIcon(options: UseResetOptions) { } export function ResetButton({ + onClick, className, onReseted, children, ...options }: { + onClick?: () => void; className?: string; children?: ReactNode; onReseted?: () => void; } & UseResetOptions) { + function triggerResetInstant() { + if (onClick) onClick(); + triggerReset(); + } const { triggerReset, status, timer, disabled, name, error } = useReset( options, onReseted @@ -60,7 +66,7 @@ export function ResetButton({ >
From e4839e49843d88b6ff1fc6360d2090199af1b6c5 Mon Sep 17 00:00:00 2001 From: Aed Date: Wed, 31 Dec 2025 01:54:26 +0000 Subject: [PATCH 20/27] fix this --- gui/src/components/home/ResetButton.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index 7799810e5e..e663b645a1 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -46,10 +46,12 @@ export function ResetButton({ if (onClick) onClick(); triggerReset(); - new Promise((res) => setTimeout(res, 3.1)); //number bigger than 3 as to check after the rest finnishes + if (options.type === ResetType.Full) { + new Promise((res) => setTimeout(res, 3.1)); //number bigger than 3 as to check after the rest finnishes - if (status !== 'finished') { - if (onFailed) onFailed(); + if (status !== 'finished') { + if (onFailed) onFailed(); + } } } const { triggerReset, status, timer, disabled, name, error } = useReset( From d4723d1ad313675a586bbde50e99f762987f01ec Mon Sep 17 00:00:00 2001 From: Aed Date: Wed, 31 Dec 2025 01:56:20 +0000 Subject: [PATCH 21/27] fix lint --- gui/src/components/home/ResetButton.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index e663b645a1..f70d1c0bb1 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -2,7 +2,7 @@ import { Localized } from '@fluent/react'; import { ResetType } from 'solarxr-protocol'; import { Button } from '@/components/commons/Button'; import classNames from 'classnames'; -import { ResetBtnStatus, useReset, UseResetOptions } from '@/hooks/reset'; +import { useReset, UseResetOptions } from '@/hooks/reset'; import { FullResetIcon, YawResetIcon, @@ -13,7 +13,6 @@ import { FootIcon } from '@/components/commons/icon/FootIcon'; import { FingersIcon } from '@/components/commons/icon/FingersIcon'; import { Tooltip } from '@/components/commons/Tooltip'; import { Typography } from '@/components/commons/Typography'; -import { stat } from 'fs'; export function ResetButtonIcon(options: UseResetOptions) { if (options.type === ResetType.Mounting && !options.group) From c81beab0a9af973dc8e6021dc3346eeb7fbbd88c Mon Sep 17 00:00:00 2001 From: Aed Date: Wed, 31 Dec 2025 02:05:43 +0000 Subject: [PATCH 22/27] bruh we have a function for this already --- gui/src/components/home/ResetButton.tsx | 15 ++++----------- gui/src/hooks/reset.ts | 4 ++++ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index f70d1c0bb1..1918c625c9 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -44,19 +44,12 @@ export function ResetButton({ function triggerResetInstant() { if (onClick) onClick(); triggerReset(); - - if (options.type === ResetType.Full) { - new Promise((res) => setTimeout(res, 3.1)); //number bigger than 3 as to check after the rest finnishes - - if (status !== 'finished') { - if (onFailed) onFailed(); - } + if (canceled === true) { + if (onFailed) onFailed(); } } - const { triggerReset, status, timer, disabled, name, error } = useReset( - options, - onReseted - ); + const { triggerReset, status, timer, disabled, name, error, canceled } = + useReset(options, onReseted); return ( void) { const [status, setStatus] = useState('idle'); const [progress, setProgress] = useState(0); const [duration, setDuration] = useState(0); + const [canceled, setCanceled] = useState(false); + const parts = BODY_PARTS_GROUPS['group' in options ? options.group : 'default']; @@ -62,6 +64,7 @@ export function useReset(options: UseResetOptions, onReseted?: () => void) { const onResetCanceled = () => { if (status !== 'finished') setStatus('idle'); + setCanceled(true); }; useEffect(() => { @@ -163,6 +166,7 @@ export function useReset(options: UseResetOptions, onReseted?: () => void) { disabled, name, error, + canceled, timer: localized.format(duration - progress), }; } From 810e0850e47e1f62f34cf1690693b6a4880d014b Mon Sep 17 00:00:00 2001 From: Aed Date: Wed, 31 Dec 2025 02:17:29 +0000 Subject: [PATCH 23/27] different way for this --- gui/src/components/home/ResetButton.tsx | 10 +++++----- gui/src/hooks/reset.ts | 6 ++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index 1918c625c9..2be613ac78 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -44,12 +44,12 @@ export function ResetButton({ function triggerResetInstant() { if (onClick) onClick(); triggerReset(); - if (canceled === true) { - if (onFailed) onFailed(); - } } - const { triggerReset, status, timer, disabled, name, error, canceled } = - useReset(options, onReseted); + const { triggerReset, status, timer, disabled, name, error } = useReset( + options, + onReseted, + onFailed + ); return ( = { fingers: FINGER_BODY_PARTS, }; -export function useReset(options: UseResetOptions, onReseted?: () => void) { +export function useReset(options: UseResetOptions, onReseted?: () => void, onFailed?: () => void) { if (options.type === ResetType.Mounting && !options.group) options.group = 'default'; const serverGuards = useAtomValue(serverGuardsAtom); @@ -38,7 +38,6 @@ export function useReset(options: UseResetOptions, onReseted?: () => void) { const [status, setStatus] = useState('idle'); const [progress, setProgress] = useState(0); const [duration, setDuration] = useState(0); - const [canceled, setCanceled] = useState(false); const parts = BODY_PARTS_GROUPS['group' in options ? options.group : 'default']; @@ -64,7 +63,7 @@ export function useReset(options: UseResetOptions, onReseted?: () => void) { const onResetCanceled = () => { if (status !== 'finished') setStatus('idle'); - setCanceled(true); + if (onFailed) onFailed(); }; useEffect(() => { @@ -166,7 +165,6 @@ export function useReset(options: UseResetOptions, onReseted?: () => void) { disabled, name, error, - canceled, timer: localized.format(duration - progress), }; } From 2b386b74da5ed40574e2ac573d86c327807e6b34 Mon Sep 17 00:00:00 2001 From: Aed Date: Wed, 31 Dec 2025 02:25:49 +0000 Subject: [PATCH 24/27] apply requested changes --- gui/src/components/home/ResetButton.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gui/src/components/home/ResetButton.tsx b/gui/src/components/home/ResetButton.tsx index 2be613ac78..18da3c5c5f 100644 --- a/gui/src/components/home/ResetButton.tsx +++ b/gui/src/components/home/ResetButton.tsx @@ -41,10 +41,6 @@ export function ResetButton({ onReseted?: () => void; onFailed?: () => void; } & UseResetOptions) { - function triggerResetInstant() { - if (onClick) onClick(); - triggerReset(); - } const { triggerReset, status, timer, disabled, name, error } = useReset( options, onReseted, @@ -69,7 +65,10 @@ export function ResetButton({ >