diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 26d7a606..95503e67 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -47,6 +47,7 @@ "react-smooth-image": "^1.1.0", "react-world-flags": "^1.6.0", "reconnecting-websocket": "^4.4.0", + "robo-identities-wasm": "^0.1.0", "simple-plist": "^1.3.1", "webln": "^0.3.2", "websocket": "^1.0.34" @@ -14282,6 +14283,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robo-identities-wasm": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/robo-identities-wasm/-/robo-identities-wasm-0.1.0.tgz", + "integrity": "sha512-q6+1Vgq+8d2F5k8Nqm39qwQJYe9uTC7TlR3NbBQ6k2ImBNccdAEoZgb0ikKjN59cK4MvqejlgBV1ybaLXoHbhA==" + }, "node_modules/run-applescript": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 1fd49164..4e145048 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -86,6 +86,7 @@ "react-smooth-image": "^1.1.0", "react-world-flags": "^1.6.0", "reconnecting-websocket": "^4.4.0", + "robo-identities-wasm": "^0.1.0", "simple-plist": "^1.3.1", "webln": "^0.3.2", "websocket": "^1.0.34" diff --git a/frontend/src/basic/BookPage/index.tsx b/frontend/src/basic/BookPage/index.tsx index 85aa695d..30b28ba9 100644 --- a/frontend/src/basic/BookPage/index.tsx +++ b/frontend/src/basic/BookPage/index.tsx @@ -31,7 +31,7 @@ const BookPage = (): JSX.Element => { const chartWidthEm = width - maxBookTableWidth; const onOrderClicked = function (id: number, shortAlias: string): void { - if (garage.getSlot()?.avatarLoaded === true) { + if (Boolean(garage.getSlot()?.hashId)) { setDelay(10000); navigate(`/order/${shortAlias}/${id}`); } else { diff --git a/frontend/src/basic/Main.tsx b/frontend/src/basic/Main.tsx index 1ec99a23..b87d564a 100644 --- a/frontend/src/basic/Main.tsx +++ b/frontend/src/basic/Main.tsx @@ -1,4 +1,4 @@ -import React, { useContext, useEffect, useState } from 'react'; +import React, { useContext } from 'react'; import { MemoryRouter, BrowserRouter, Routes, Route } from 'react-router-dom'; import { Box, Slide, Typography, styled } from '@mui/material'; import { type UseAppStoreType, AppContext, closeAll } from '../contexts/AppContext'; @@ -8,7 +8,6 @@ import RobotAvatar from '../components/RobotAvatar'; import Notifications from '../components/Notifications'; import { useTranslation } from 'react-i18next'; -import { FederationContext, type UseFederationStoreType } from '../contexts/FederationContext'; import { GarageContext, type UseGarageStoreType } from '../contexts/GarageContext'; const Router = window.NativeRobosats === undefined ? BrowserRouter : MemoryRouter; @@ -30,28 +29,13 @@ const MainBox = styled(Box)((props) => ({ const Main: React.FC = () => { const { t } = useTranslation(); - const { settings, page, slideDirection, setOpen, windowSize, navbarHeight, hostUrl } = + const { settings, page, slideDirection, setOpen, windowSize, navbarHeight } = useContext(AppContext); - const { federation, sortedCoordinators } = useContext(FederationContext); const { garage } = useContext(GarageContext); - const [avatarBaseUrl, setAvatarBaseUrl] = useState(hostUrl); - - useEffect(() => { - setAvatarBaseUrl(federation.getCoordinator(sortedCoordinators[0]).getBaseUrl()); - }, [settings.network, settings.selfhostedClient, federation, sortedCoordinators]); - - const onLoad = (): void => { - garage.updateSlot({ avatarLoaded: true }); - }; return ( - + { @@ -81,7 +65,7 @@ const Main: React.FC = () => { appear={slideDirection.in !== undefined} >
- +
} diff --git a/frontend/src/basic/MakerPage/index.tsx b/frontend/src/basic/MakerPage/index.tsx index 8fee6249..c4f4d585 100644 --- a/frontend/src/basic/MakerPage/index.tsx +++ b/frontend/src/basic/MakerPage/index.tsx @@ -51,7 +51,7 @@ const MakerPage = (): JSX.Element => { ]); const onOrderClicked = function (id: number): void { - if (garage.getSlot()?.avatarLoaded === true) { + if (Boolean(garage.getSlot()?.hashId)) { navigate(`/order/${id}`); } else { setOpenNoRobot(true); diff --git a/frontend/src/basic/NavBar/NavBar.tsx b/frontend/src/basic/NavBar/NavBar.tsx index 5f7148ac..34cbbfaf 100644 --- a/frontend/src/basic/NavBar/NavBar.tsx +++ b/frontend/src/basic/NavBar/NavBar.tsx @@ -32,7 +32,7 @@ const NavBar = (): JSX.Element => { navbarHeight, hostUrl, } = useContext(AppContext); - const { garage, orderUpdatedAt } = useContext(GarageContext); + const { garage, orderUpdatedAt, robotUpdatedAt } = useContext(GarageContext); const navigate = useNavigate(); const location = useLocation(); @@ -42,7 +42,7 @@ const NavBar = (): JSX.Element => { const tabSx = smallBar ? { position: 'relative', - bottom: garage.getSlot()?.avatarLoaded === true ? '0.9em' : '0.13em', + bottom: Boolean(garage.getSlot()?.hashId) ? '0.9em' : '0.13em', minWidth: '1em', } : { position: 'relative', bottom: '1em', minWidth: '2em' }; @@ -65,7 +65,7 @@ const NavBar = (): JSX.Element => { if (isPage(pathPage)) { setPage(pathPage); } - }, [location, navigate, setPage, orderUpdatedAt]); + }, [location, navigate, setPage, orderUpdatedAt, robotUpdatedAt]); const handleSlideDirection = function (oldPage: Page, newPage: Page): void { const oldPos: number = pagesPosition[oldPage]; @@ -121,17 +121,16 @@ const NavBar = (): JSX.Element => { { setOpen({ ...closeAll, profile: !open.profile }); }} icon={ - slot?.getRobot()?.nickname != null && slot?.avatarLoaded ? ( + slot?.hashId ? ( ) : ( <> @@ -166,7 +165,7 @@ const NavBar = (): JSX.Element => { label={smallBar ? undefined : t('Order')} value='order' disabled={ - slot?.avatarLoaded === false || + !Boolean(slot?.hashId) || !(slot?.getRobot(slot?.activeShortAlias ?? '')?.activeOrderId != null) } icon={} diff --git a/frontend/src/basic/RobotPage/Onboarding.tsx b/frontend/src/basic/RobotPage/Onboarding.tsx index 2b666f53..323dc4c5 100644 --- a/frontend/src/basic/RobotPage/Onboarding.tsx +++ b/frontend/src/basic/RobotPage/Onboarding.tsx @@ -151,7 +151,7 @@ const Onboarding = ({ - {slot?.avatarLoaded === true && Boolean(robot?.nickname) ? ( + {Boolean(slot?.hashId) ? ( t('This is your trading avatar') ) : ( <> @@ -164,7 +164,7 @@ const Onboarding = ({ - {slot?.avatarLoaded === true && Boolean(robot?.nickname) ? ( + {Boolean(slot?.hashId) ? ( {t('Hi! My name is')} @@ -199,7 +198,7 @@ const Onboarding = ({ width: '1.5em', }} /> - {robot.nickname} + {slot?.nickname} ) : null} - +