feat(wired): update source-aware furni and signal UI

This commit is contained in:
Lorenzune
2026-03-16 15:12:42 +01:00
parent ba0208c654
commit 31d3dfea44
23 changed files with 339 additions and 516 deletions
@@ -1,6 +1,6 @@
import { FC, useEffect, useState } from 'react';
import { FriendlyTime, LocalizeText, WiredFurniType } from '../../../../api';
import { Text } from '../../../../common';
import { Slider, Text } from '../../../../common';
import { useWired } from '../../../../hooks';
import { WiredTriggerBaseView } from './WiredTriggerBaseView';
@@ -1,6 +1,6 @@
import { FC, useEffect, useState } from 'react';
import { GetWiredTimeLocale, LocalizeText, WiredFurniType } from '../../../../api';
import { Text } from '../../../../common';
import { Slider, Text } from '../../../../common';
import { useWired } from '../../../../hooks';
import { WiredTriggerBaseView } from './WiredTriggerBaseView';
@@ -4,12 +4,14 @@ import { Text } from '../../../../common';
import { useWired } from '../../../../hooks';
import { WiredTriggerBaseView } from './WiredTriggerBaseView';
const ANTENNA_INTERACTION_TYPES = [ 'antenna' ];
export const WiredTriggerReceiveSignalView: FC<{}> = () =>
{
const [ senderCount, setSenderCount ] = useState(0);
const [ maxSenders, setMaxSenders ] = useState(5);
const { trigger = null } = useWired();
const { trigger = null, setAllowedInteractionTypes } = useWired();
useEffect(() =>
{
@@ -20,8 +22,15 @@ export const WiredTriggerReceiveSignalView: FC<{}> = () =>
if(p.length >= 3) setMaxSenders(p[2]);
}, [ trigger ]);
useEffect(() =>
{
setAllowedInteractionTypes(ANTENNA_INTERACTION_TYPES);
return () => setAllowedInteractionTypes(null);
}, [ setAllowedInteractionTypes ]);
return (
<WiredTriggerBaseView hasSpecialInput={ true } requiresFurni={ WiredFurniType.STUFF_SELECTION_OPTION_NONE } save={ null }>
<WiredTriggerBaseView hasSpecialInput={ true } requiresFurni={ WiredFurniType.STUFF_SELECTION_OPTION_BY_ID } save={ null }>
<div className="flex items-center justify-between">
<Text small>{ LocalizeText('wiredfurni.params.signal.senders_connected') }</Text>
<Text bold small>{ senderCount }/{ maxSenders }</Text>