mirror of
https://github.com/Radarr/Radarr
synced 2026-01-24 08:23:54 +01:00
Fix SonarCloud bugs: threading, React state, sorting
Backend: - S2445: Make _connections readonly in MessageHub.cs to fix locking issue Frontend: - S6756: Use callback form of setState when referencing previous state - Collection.js, DiscoverMovie.js, ImportMovie.js - ImportMovieSelectMovie.js, EditQualityProfileModalContentConnector.js - S2871: Add localeCompare for proper alphabetical sorting - Collection.js, DiscoverMovie.js, MovieIndex.tsx - S1764: Remove duplicate condition in QualityProfileSelectInput.tsx
This commit is contained in:
parent
220eba471b
commit
6d17e5eaff
8 changed files with 16 additions and 15 deletions
|
|
@ -50,7 +50,7 @@ class ImportMovie extends Component {
|
|||
|
||||
onSelectAllChange = ({ value }) => {
|
||||
// Only select non-dupes
|
||||
this.setState(selectAll(this.state.selectedState, value));
|
||||
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||
};
|
||||
|
||||
onSelectedChange = ({ id, value, shiftKey = false }) => {
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ class ImportMovieSelectMovie extends Component {
|
|||
this._addListener();
|
||||
}
|
||||
|
||||
this.setState({ isOpen: !this.state.isOpen });
|
||||
this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
|
||||
};
|
||||
|
||||
onSearchInputChange = ({ value }) => {
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ class Collection extends Component {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
const order = Object.keys(characters).sort();
|
||||
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||
|
||||
// Reverse if sorting descending
|
||||
if (sortDirection === sortDirections.DESCENDING) {
|
||||
|
|
@ -182,11 +182,13 @@ class Collection extends Component {
|
|||
};
|
||||
|
||||
onSelectAllChange = ({ value }) => {
|
||||
this.setState(selectAll(this.state.selectedState, value));
|
||||
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||
};
|
||||
|
||||
onSelectAllPress = () => {
|
||||
this.onSelectAllChange({ value: !this.state.allSelected });
|
||||
this.setState((prevState) =>
|
||||
selectAll(prevState.selectedState, !prevState.allSelected)
|
||||
);
|
||||
};
|
||||
|
||||
onRefreshMovieCollectionsPress = () => {
|
||||
|
|
|
|||
|
|
@ -94,10 +94,7 @@ function QualityProfileSelectInput({
|
|||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
!value ||
|
||||
!values.some((option) => option.key === value || option.key === value)
|
||||
) {
|
||||
if (!value || !values.some((option) => option.key === value)) {
|
||||
const firstValue = values.find(
|
||||
(option) => typeof option.key === 'number'
|
||||
);
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ class DiscoverMovie extends Component {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
const order = Object.keys(characters).sort();
|
||||
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||
|
||||
// Reverse if sorting descending
|
||||
if (sortDirection === sortDirections.DESCENDING) {
|
||||
|
|
@ -214,11 +214,13 @@ class DiscoverMovie extends Component {
|
|||
};
|
||||
|
||||
onSelectAllChange = ({ value }) => {
|
||||
this.setState(selectAll(this.state.selectedState, value));
|
||||
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||
};
|
||||
|
||||
onSelectAllPress = () => {
|
||||
this.onSelectAllChange({ value: !this.state.allSelected });
|
||||
this.setState((prevState) =>
|
||||
selectAll(prevState.selectedState, !prevState.allSelected)
|
||||
);
|
||||
};
|
||||
|
||||
onImportListSyncPress = () => {
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ const MovieIndex = withScrollPosition((props: Readonly<MovieIndexProps>) => {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
const order = Object.keys(characters).sort();
|
||||
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||
|
||||
// Reverse if sorting descending
|
||||
if (sortDirection === DESCENDING) {
|
||||
|
|
|
|||
|
|
@ -474,7 +474,7 @@ class EditQualityProfileModalContentConnector extends Component {
|
|||
};
|
||||
|
||||
onToggleEditGroupsMode = () => {
|
||||
this.setState({ editGroups: !this.state.editGroups });
|
||||
this.setState((prevState) => ({ editGroups: !prevState.editGroups }));
|
||||
};
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public async Task BroadcastMessage(SignalRMessage message)
|
|||
|
||||
public class MessageHub : Hub
|
||||
{
|
||||
private static HashSet<string> _connections = new HashSet<string>();
|
||||
private static readonly HashSet<string> _connections = new HashSet<string>();
|
||||
|
||||
public static bool IsConnected
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue