mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-04-28 18:38:12 -04:00
* Remove relay * restructure p2p * wip * cleanup webrtc * split up P2P docs * wip * more wip * the fork has moved * finish local network discovery * Document the relay system * be less stupid * a * remote ip from deploy script * remove debug from deploy script * Explain relay setup and usage * Physical pain * fix * error handling for relay setup * Listeners Relay state + merge it into NLM state * `node_remote_identity` * redo libraries hook * toggle relay active in settings * Dedicated network settings page * Stablise P2P debug page * warning for rspc remote * Linear links in docs * fix p2p settings switches * fix typescript errors on general page * fix ipv6 listener status * discovery method in UI * Remove p2p debug menu on the sidebar * wip * lol * wat * fix * another attempt at fixing library hook * fix * Remove sync from sidebar * fix load library code * I hate this * Detect connections over the relay * fix * fixes * a * fix mDNS * a bunch o fixes * a bunch of state management fixes * Metadata sync on connection * skill issue * fix markdown * Clippy cleanup * Backport #2380 * Update interface/locales/en/common.json Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/local-network-discovery.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/local-network-discovery.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p_proto.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/overview.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/overview.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/relay.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p_proto.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p_proto.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/transport-layer.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p_proto.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/local-network-discovery.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * Update docs/developers/p2p/sd_p2p_proto.mdx Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com> * a * Cleaning binario section * cleanup Docker message * idk * Idempotent listeners * Manual peers working???? * minor fixes * crazy idea - don't panic in the event loop * fixes * debug * debug * LAN badge in network settings * Use `dns_lookup` instead of `tokio::net::lookup_host` * fix * bruh sandwich * proper dialing * a * remove logs * fix * Small cleanup * manual peers state on connected device * a * Fix manual discovery state + give it a badge * Clippy improvements * flip discovery priority * Add `addrs` to debug query * connection candidates in debug * Fix state * Clippppppppppppy * Manual discovery badge * Flesh out ping example * Usage guide * `sd_p2p_proto` examples * More discovery docs * More docs work * docs docs docs and more docs * PONG * rename --------- Co-authored-by: Matthew Yung <117509016+myung03@users.noreply.github.com>
77 lines
1.7 KiB
TypeScript
77 lines
1.7 KiB
TypeScript
import { useEffect, useRef } from 'react';
|
|
import { useBridgeQuery } from '@sd/client';
|
|
import { toast } from '@sd/ui';
|
|
import { useLocale } from '~/hooks';
|
|
|
|
const errorMessages = {
|
|
ipv4_ipv6: 'ipv4_ipv6_listeners_error',
|
|
ipv4: 'ipv4_listeners_error',
|
|
ipv6: 'ipv6_listeners_error',
|
|
relay: 'relay_listeners_error'
|
|
};
|
|
|
|
export function useP2PErrorToast() {
|
|
const listeners = useBridgeQuery(['p2p.listeners']);
|
|
const didShowError = useRef(false);
|
|
const { t } = useLocale();
|
|
|
|
useEffect(() => {
|
|
if (!listeners.data || didShowError.current) return;
|
|
|
|
const getErrorBody = (type: keyof typeof errorMessages, error: string) => (
|
|
<div>
|
|
<p>{t(errorMessages[type])}</p>
|
|
<p>{error}</p>
|
|
</div>
|
|
);
|
|
|
|
let body: JSX.Element | undefined;
|
|
|
|
switch (true) {
|
|
case listeners.data.ipv4.type === 'Error' && listeners.data.ipv6.type === 'Error':
|
|
body = getErrorBody('ipv4_ipv6', listeners.data.ipv4.error);
|
|
break;
|
|
case listeners.data.ipv4.type === 'Error':
|
|
body = getErrorBody('ipv4', listeners.data.ipv4.error);
|
|
break;
|
|
case listeners.data.ipv6.type === 'Error':
|
|
body = getErrorBody('ipv6', listeners.data.ipv6.error);
|
|
break;
|
|
case listeners.data.relay.type === 'Error':
|
|
body = getErrorBody('relay', listeners.data.relay.error);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if (body) {
|
|
toast.error(
|
|
{
|
|
title: t('networking_error'),
|
|
body
|
|
},
|
|
{
|
|
id: 'p2p-listener-error'
|
|
}
|
|
);
|
|
didShowError.current = true;
|
|
}
|
|
|
|
if (body) {
|
|
toast.error(
|
|
{
|
|
title: t('networking_error'),
|
|
body
|
|
},
|
|
{
|
|
id: 'p2p-listener-error'
|
|
}
|
|
);
|
|
didShowError.current = true;
|
|
}
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [listeners.data, t]);
|
|
|
|
return null;
|
|
}
|