From 381617c3bd17a4e513d9a5353b15ecbdd59bd166 Mon Sep 17 00:00:00 2001 From: duckietm Date: Thu, 11 Jul 2024 16:24:26 +0200 Subject: [PATCH] :up: Set the WiredConditionFurniHasAvatarOnView to have a default to select only 1 Furni --- src/components/wired/views/WiredBaseView.tsx | 13 +++++++++---- .../wired/views/WiredFurniSelectorView.tsx | 15 ++++++++++++--- .../views/conditions/WiredConditionBaseView.tsx | 5 +++-- .../WiredConditionFurniHasAvatarOnView.tsx | 4 ++-- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/components/wired/views/WiredBaseView.tsx b/src/components/wired/views/WiredBaseView.tsx index 92cc77f..8dc194d 100644 --- a/src/components/wired/views/WiredBaseView.tsx +++ b/src/components/wired/views/WiredBaseView.tsx @@ -11,11 +11,12 @@ export interface WiredBaseViewProps hasSpecialInput: boolean; save: () => void; validate?: () => boolean; + maxItemSelectionCount?: number; } export const WiredBaseView: FC> = props => { - const { wiredType = '', requiresFurni = WiredFurniType.STUFF_SELECTION_OPTION_NONE, save = null, validate = null, children = null, hasSpecialInput = false } = props; + const { wiredType = '', requiresFurni = WiredFurniType.STUFF_SELECTION_OPTION_NONE, save = null, validate = null, children = null, hasSpecialInput = false, maxItemSelectionCount = 5 } = props; // Default to 5 const [ wiredName, setWiredName ] = useState(null); const [ wiredDescription, setWiredDescription ] = useState(null); const [ needsSave, setNeedsSave ] = useState(false); @@ -83,7 +84,11 @@ export const WiredBaseView: FC> = props => } setAllowsFurni(requiresFurni); - }, [ trigger, hasSpecialInput, requiresFurni, setIntParams, setStringParam, setFurniIds, setAllowsFurni ]); + + // Set max item selection count + WiredSelectionVisualizer.setMaxItemSelectionCount(maxItemSelectionCount); // Use the passed value + + }, [ trigger, hasSpecialInput, requiresFurni, setIntParams, setStringParam, setFurniIds, setAllowsFurni, maxItemSelectionCount ]); return ( @@ -101,7 +106,7 @@ export const WiredBaseView: FC> = props => { (requiresFurni > WiredFurniType.STUFF_SELECTION_OPTION_NONE) && <>
- + {/* Pass the count */} } @@ -110,4 +115,4 @@ export const WiredBaseView: FC> = props =>
); -} +} \ No newline at end of file diff --git a/src/components/wired/views/WiredFurniSelectorView.tsx b/src/components/wired/views/WiredFurniSelectorView.tsx index 9b38f97..f2fb5c0 100644 --- a/src/components/wired/views/WiredFurniSelectorView.tsx +++ b/src/components/wired/views/WiredFurniSelectorView.tsx @@ -3,13 +3,22 @@ import { LocalizeText } from '../../../api'; import { Column, Text } from '../../../common'; import { useWired } from '../../../hooks'; -export const WiredFurniSelectorView: FC<{}> = props => +export interface WiredFurniSelectorViewProps { + maxItemSelectionCount: number; +} + +export const WiredFurniSelectorView: FC = props => +{ + const { maxItemSelectionCount } = props; const { trigger = null, furniIds = [] } = useWired(); - + + // Enforce the selection limit + const selectionText = LocalizeText('wiredfurni.pickfurnis.caption', [ 'count', 'limit' ], [ furniIds.length.toString(), maxItemSelectionCount.toString() ]); + return ( - { LocalizeText('wiredfurni.pickfurnis.caption', [ 'count', 'limit' ], [ furniIds.length.toString(), trigger.maximumItemSelectionCount.toString() ]) } + { selectionText } { LocalizeText('wiredfurni.pickfurnis.desc') } ); diff --git a/src/components/wired/views/conditions/WiredConditionBaseView.tsx b/src/components/wired/views/conditions/WiredConditionBaseView.tsx index fc49215..172e591 100644 --- a/src/components/wired/views/conditions/WiredConditionBaseView.tsx +++ b/src/components/wired/views/conditions/WiredConditionBaseView.tsx @@ -7,16 +7,17 @@ export interface WiredConditionBaseViewProps hasSpecialInput: boolean; requiresFurni: number; save: () => void; + maxItemSelectionCount?: number; // Optional parameter } export const WiredConditionBaseView: FC> = props => { - const { requiresFurni = WiredFurniType.STUFF_SELECTION_OPTION_NONE, save = null, hasSpecialInput = false, children = null } = props; + const { requiresFurni = WiredFurniType.STUFF_SELECTION_OPTION_NONE, save = null, hasSpecialInput = false, children = null, maxItemSelectionCount = 5 } = props; const onSave = () => (save && save()); return ( - + { children } ); diff --git a/src/components/wired/views/conditions/WiredConditionFurniHasAvatarOnView.tsx b/src/components/wired/views/conditions/WiredConditionFurniHasAvatarOnView.tsx index aa3ba14..35c9f43 100644 --- a/src/components/wired/views/conditions/WiredConditionFurniHasAvatarOnView.tsx +++ b/src/components/wired/views/conditions/WiredConditionFurniHasAvatarOnView.tsx @@ -4,5 +4,5 @@ import { WiredConditionBaseView } from './WiredConditionBaseView'; export const WiredConditionFurniHasAvatarOnView: FC<{}> = props => { - return ; -} + return ; +} \ No newline at end of file