Disable onchain for swaps

This commit is contained in:
koalasat
2025-07-10 12:56:37 +02:00
parent 6cd043f2b8
commit 83829811a3
4 changed files with 17 additions and 11 deletions

View File

@ -1025,7 +1025,7 @@ const MakerForm = ({
<SelectCoordinator <SelectCoordinator
coordinatorAlias={maker.coordinator} coordinatorAlias={maker.coordinator}
setCoordinator={(coordinatorAlias) => { setCoordinatorAlias={(coordinatorAlias) => {
setMaker((maker) => { setMaker((maker) => {
return { ...maker, coordinator: coordinatorAlias }; return { ...maker, coordinator: coordinatorAlias };
}); });

View File

@ -1,4 +1,4 @@
import React, { useContext } from 'react'; import React, { useContext, useEffect, useState } from 'react';
import { import {
Grid, Grid,
Select, Select,
@ -17,20 +17,22 @@ import { AppContext, type UseAppStoreType } from '../../contexts/AppContext';
import { useTheme } from '@emotion/react'; import { useTheme } from '@emotion/react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { FederationContext, type UseFederationStoreType } from '../../contexts/FederationContext'; import { FederationContext, type UseFederationStoreType } from '../../contexts/FederationContext';
import { Coordinator } from '../../models';
interface SelectCoordinatorProps { interface SelectCoordinatorProps {
coordinatorAlias: string; coordinatorAlias: string;
setCoordinator: (coordinatorAlias: string) => void; setCoordinatorAlias: (coordinatorAlias: string) => void;
} }
const SelectCoordinator: React.FC<SelectCoordinatorProps> = ({ const SelectCoordinator: React.FC<SelectCoordinatorProps> = ({
coordinatorAlias, coordinatorAlias,
setCoordinator, setCoordinatorAlias,
}) => { }) => {
const { setOpen } = useContext<UseAppStoreType>(AppContext); const { setOpen } = useContext<UseAppStoreType>(AppContext);
const { federation } = useContext<UseFederationStoreType>(FederationContext); const { federation } = useContext<UseFederationStoreType>(FederationContext);
const theme = useTheme(); const theme = useTheme();
const { t } = useTranslation(); const { t } = useTranslation();
const [coordinator, setCoordinator] = useState<Coordinator>();
const onClickCurrentCoordinator = function (shortAlias: string): void { const onClickCurrentCoordinator = function (shortAlias: string): void {
setOpen((open) => { setOpen((open) => {
@ -39,10 +41,13 @@ const SelectCoordinator: React.FC<SelectCoordinatorProps> = ({
}; };
const handleCoordinatorChange = (e: SelectChangeEvent<string>): void => { const handleCoordinatorChange = (e: SelectChangeEvent<string>): void => {
setCoordinator(e.target.value); setCoordinatorAlias(e.target.value);
}; };
const coordinator = federation.getCoordinator(coordinatorAlias); useEffect(() => {
const selectedCoordinator = federation.getCoordinator(coordinatorAlias);
if (selectedCoordinator) setCoordinator(selectedCoordinator);
}, [coordinatorAlias]);
return ( return (
<Grid item> <Grid item>
@ -90,8 +95,8 @@ const SelectCoordinator: React.FC<SelectCoordinatorProps> = ({
> >
<Grid item> <Grid item>
<RobotAvatar <RobotAvatar
shortAlias={coordinator?.federated ? coordinator?.shortAlias : undefined} shortAlias={coordinatorAlias}
hashId={coordinator?.federated ? undefined : coordinator?.mainnet.onion} hashId={!coordinator?.federated ? coordinator?.mainnet.onion : undefined}
style={{ width: '3em', height: '3em' }} style={{ width: '3em', height: '3em' }}
smooth={true} smooth={true}
flipHorizontally={false} flipHorizontally={false}

View File

@ -47,6 +47,7 @@ const RobotAvatar: React.FC<Props> = ({
onLoad = () => {}, onLoad = () => {},
}) => { }) => {
const { hostUrl, client } = useContext<UseAppStoreType>(AppContext); const { hostUrl, client } = useContext<UseAppStoreType>(AppContext);
const backgroundFadeTime = 3000;
const defaultAvatarSrc = useMemo(() => { const defaultAvatarSrc = useMemo(() => {
return client !== 'mobile' return client !== 'mobile'
? `${hostUrl}/static/federation/avatars/${shortAlias}${small ? '.small' : ''}.webp` ? `${hostUrl}/static/federation/avatars/${shortAlias}${small ? '.small' : ''}.webp`
@ -55,9 +56,8 @@ const RobotAvatar: React.FC<Props> = ({
const [avatarSrc, setAvatarSrc] = useState<string>(defaultAvatarSrc); const [avatarSrc, setAvatarSrc] = useState<string>(defaultAvatarSrc);
const [activeBackground, setActiveBackground] = useState<boolean>(true); const [activeBackground, setActiveBackground] = useState<boolean>(true);
const backgroundFadeTime = 3000;
const [backgroundData] = useState<BackgroundData>(placeholder.loading); const [backgroundData] = useState<BackgroundData>(placeholder.loading);
const backgroundImage = `url(data:${backgroundData.mime};base64,${backgroundData.data})`; const backgroundImage = `url(data:${backgroundData.mime};base64,${backgroundData.data})`;
const className = placeholderType === 'loading' ? 'loadingAvatar' : 'generatingAvatar'; const className = placeholderType === 'loading' ? 'loadingAvatar' : 'generatingAvatar';
@ -79,6 +79,7 @@ const RobotAvatar: React.FC<Props> = ({
useEffect(() => { useEffect(() => {
if (shortAlias && shortAlias !== '') { if (shortAlias && shortAlias !== '') {
setAvatarSrc(defaultAvatarSrc);
setTimeout(() => { setTimeout(() => {
setActiveBackground(false); setActiveBackground(false);
}, backgroundFadeTime); }, backgroundFadeTime);

View File

@ -92,7 +92,7 @@ export const PayoutPrompt = ({
<Bolt /> {t('Lightning')} <Bolt /> {t('Lightning')}
</div> </div>
</ToggleButton> </ToggleButton>
<ToggleButton value='onchain' disabled={!order.swap_allowed}> <ToggleButton value='onchain' disabled={!order.swap_allowed || order.currency === 1000}>
<div <div
style={{ style={{
display: 'flex', display: 'flex',