Skip to content

Commit 0456087

Browse files
committed
Don't send unnecessary get/set parameter calls when there are no ROS parameters
1 parent 37b29c2 commit 0456087

File tree

1 file changed

+46
-33
lines changed

1 file changed

+46
-33
lines changed

feedingwebapp/src/Pages/Settings/SettingsPageParent.jsx

Lines changed: 46 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ const SettingsPageParent = (props) => {
7676
*/
7777
const setLocalParametersToGlobalValues = useCallback(
7878
(preset) => {
79+
if (props.paramNames.length === 0) {
80+
console.log('Skipping setLocalParametersToGlobalValues because there are no parameters to get.')
81+
return
82+
}
83+
7984
let service = getParametersService.current
8085
let setLocalParamValues = props.setLocalParamValues
8186

@@ -134,6 +139,10 @@ const SettingsPageParent = (props) => {
134139
* Save the current parameter values to the current namespace.
135140
*/
136141
const setGlobalParameter = useCallback(() => {
142+
if (props.paramNames.length === 0) {
143+
console.log('Skipping setGlobalParameter because there are no parameters to set.')
144+
return
145+
}
137146
if (props.localParamValues.every((element) => element === null)) {
138147
console.log('Skipping setGlobalParameter because all values are null.')
139148
return
@@ -240,42 +249,46 @@ const SettingsPageParent = (props) => {
240249
height: '100%'
241250
}}
242251
>
243-
<View
244-
style={{
245-
flex: 4,
246-
flexDirection: 'row',
247-
alignItems: 'center',
248-
justifyContent: 'center',
249-
width: '100%',
250-
height: '100%',
251-
zIndex: 1
252-
}}
253-
>
254-
<p style={{ textAlign: 'center', fontSize: textFontSize.toString() + sizeSuffix, margin: 0 }} className='txt-huge'>
255-
{props.title}
256-
</p>
257-
<SplitButton
258-
variant='secondary'
259-
className='mx-2 mb-2 btn-huge'
260-
size='lg'
252+
{props.paramNames.length === 0 ? (
253+
<></>
254+
) : (
255+
<View
261256
style={{
262-
fontSize: textFontSize.toString() + sizeSuffix,
263-
marginLeft: '1rem'
257+
flex: 4,
258+
flexDirection: 'row',
259+
alignItems: 'center',
260+
justifyContent: 'center',
261+
width: '100%',
262+
height: '100%',
263+
zIndex: 1
264264
}}
265-
title={settingsPresets.current}
266265
>
267-
<Dropdown.Item key={DEFAULT_NAMESPACE} onClick={() => resetToPreset(DEFAULT_NAMESPACE)}>
268-
Reset parameter to {DEFAULT_NAMESPACE}
269-
</Dropdown.Item>
270-
{settingsPresets.customNames
271-
.filter((preset) => preset !== settingsPresets.current)
272-
.map((preset) => (
273-
<Dropdown.Item key={preset} onClick={() => resetToPreset(preset)}>
274-
Reset parameter to {preset}
275-
</Dropdown.Item>
276-
))}
277-
</SplitButton>
278-
</View>
266+
<p style={{ textAlign: 'center', fontSize: textFontSize.toString() + sizeSuffix, margin: 0 }} className='txt-huge'>
267+
{props.title}
268+
</p>
269+
<SplitButton
270+
variant='secondary'
271+
className='mx-2 mb-2 btn-huge'
272+
size='lg'
273+
style={{
274+
fontSize: textFontSize.toString() + sizeSuffix,
275+
marginLeft: '1rem'
276+
}}
277+
title={settingsPresets.current}
278+
>
279+
<Dropdown.Item key={DEFAULT_NAMESPACE} onClick={() => resetToPreset(DEFAULT_NAMESPACE)}>
280+
Reset parameter to {DEFAULT_NAMESPACE}
281+
</Dropdown.Item>
282+
{settingsPresets.customNames
283+
.filter((preset) => preset !== settingsPresets.current)
284+
.map((preset) => (
285+
<Dropdown.Item key={preset} onClick={() => resetToPreset(preset)}>
286+
Reset parameter to {preset}
287+
</Dropdown.Item>
288+
))}
289+
</SplitButton>
290+
</View>
291+
)}
279292
<View
280293
style={{
281294
flex: 32,

0 commit comments

Comments
 (0)