import React from 'react'; import Paper from '@mui/material/Paper'; import {FormControlLabel, Checkbox, Stack, Tooltip, ListItem, List, Radio, RadioGroup, Typography} from "@mui/material"; import NumberTextField from "./NumberTextField"; import {azim_int_settings} from "../openapi"; import _ from "lodash"; import ButtonWithSnackbar from "./ButtonWithSnackbar"; import FormControl from "@mui/material/FormControl"; type MyProps = { s?: azim_int_settings }; type MyState = { s: azim_int_settings last_downloaded_s: azim_int_settings download_counter: number low_q_error: boolean high_q_error: boolean q_spacing_error: boolean }; const default_azim_int_settings : azim_int_settings = { solid_angle_corr: true, polarization_corr: true, high_q_recipA: 5, low_q_recipA: 0.1, q_spacing: 0.1, azimuthal_bins: 1, force_cpu: false } class AzIntSettings extends React.Component { state : MyState = { s: default_azim_int_settings, last_downloaded_s: default_azim_int_settings, download_counter: 0, low_q_error: false, high_q_error: false, q_spacing_error: false, } getValues = () => { if (this.props.s !== undefined) { let format_set: azim_int_settings = this.props.s; if (!_.isEqual(format_set, this.state.last_downloaded_s)) { this.setState(prevState => ({ s: format_set, last_downloaded_s: format_set, download_counter: prevState.download_counter + 1 })); } } } componentDidMount() { this.getValues(); } componentDidUpdate() { this.getValues(); } render() { return
Azimuthal integration settings
{ this.setState(prevState => ({ s: {...prevState.s, q_spacing: val}, q_spacing_error: err })); }} fullWidth/> { this.setState(prevState => ({ s: {...prevState.s, low_q_recipA: val}, low_q_error: err })); }} fullWidth/> { this.setState(prevState => ({ s: {...prevState.s, high_q_recipA: val}, high_q_error: err })); }} fullWidth/> ) => { this.state.s.solid_angle_corr = event.target.checked; }} />} label="Solid angle correction"/> ) => { this.state.s.polarization_corr = event.target.checked; }} />} label="Polarization correction"/> ) => { this.state.s.force_cpu = event.target.checked; }} />} label="Force CPU calculation in FPGA workflow"/> Azimuthal bins ) => { this.setState(prevState => ({ s: {...prevState.s, azimuthal_bins: Number(event.target.value)} })); }} > {[1, 2, 4, 8, 16, 32, 64, 128].map((value) => ( } label={value.toString()} /> ))}

} } export default AzIntSettings;