mirror of
https://github.com/Radarr/Radarr
synced 2026-05-08 16:11:04 +02: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 }) => {
|
onSelectAllChange = ({ value }) => {
|
||||||
// Only select non-dupes
|
// Only select non-dupes
|
||||||
this.setState(selectAll(this.state.selectedState, value));
|
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||||
};
|
};
|
||||||
|
|
||||||
onSelectedChange = ({ id, value, shiftKey = false }) => {
|
onSelectedChange = ({ id, value, shiftKey = false }) => {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class ImportMovieSelectMovie extends Component {
|
||||||
this._addListener();
|
this._addListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({ isOpen: !this.state.isOpen });
|
this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
|
||||||
};
|
};
|
||||||
|
|
||||||
onSearchInputChange = ({ value }) => {
|
onSearchInputChange = ({ value }) => {
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ class Collection extends Component {
|
||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
const order = Object.keys(characters).sort();
|
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||||
|
|
||||||
// Reverse if sorting descending
|
// Reverse if sorting descending
|
||||||
if (sortDirection === sortDirections.DESCENDING) {
|
if (sortDirection === sortDirections.DESCENDING) {
|
||||||
|
|
@ -182,11 +182,13 @@ class Collection extends Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
onSelectAllChange = ({ value }) => {
|
onSelectAllChange = ({ value }) => {
|
||||||
this.setState(selectAll(this.state.selectedState, value));
|
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||||
};
|
};
|
||||||
|
|
||||||
onSelectAllPress = () => {
|
onSelectAllPress = () => {
|
||||||
this.onSelectAllChange({ value: !this.state.allSelected });
|
this.setState((prevState) =>
|
||||||
|
selectAll(prevState.selectedState, !prevState.allSelected)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
onRefreshMovieCollectionsPress = () => {
|
onRefreshMovieCollectionsPress = () => {
|
||||||
|
|
|
||||||
|
|
@ -94,10 +94,7 @@ function QualityProfileSelectInput({
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (!value || !values.some((option) => option.key === value)) {
|
||||||
!value ||
|
|
||||||
!values.some((option) => option.key === value || option.key === value)
|
|
||||||
) {
|
|
||||||
const firstValue = values.find(
|
const firstValue = values.find(
|
||||||
(option) => typeof option.key === 'number'
|
(option) => typeof option.key === 'number'
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ class DiscoverMovie extends Component {
|
||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
const order = Object.keys(characters).sort();
|
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||||
|
|
||||||
// Reverse if sorting descending
|
// Reverse if sorting descending
|
||||||
if (sortDirection === sortDirections.DESCENDING) {
|
if (sortDirection === sortDirections.DESCENDING) {
|
||||||
|
|
@ -214,11 +214,13 @@ class DiscoverMovie extends Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
onSelectAllChange = ({ value }) => {
|
onSelectAllChange = ({ value }) => {
|
||||||
this.setState(selectAll(this.state.selectedState, value));
|
this.setState((prevState) => selectAll(prevState.selectedState, value));
|
||||||
};
|
};
|
||||||
|
|
||||||
onSelectAllPress = () => {
|
onSelectAllPress = () => {
|
||||||
this.onSelectAllChange({ value: !this.state.allSelected });
|
this.setState((prevState) =>
|
||||||
|
selectAll(prevState.selectedState, !prevState.allSelected)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
onImportListSyncPress = () => {
|
onImportListSyncPress = () => {
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ const MovieIndex = withScrollPosition((props: Readonly<MovieIndexProps>) => {
|
||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
const order = Object.keys(characters).sort();
|
const order = Object.keys(characters).sort((a, b) => a.localeCompare(b));
|
||||||
|
|
||||||
// Reverse if sorting descending
|
// Reverse if sorting descending
|
||||||
if (sortDirection === DESCENDING) {
|
if (sortDirection === DESCENDING) {
|
||||||
|
|
|
||||||
|
|
@ -474,7 +474,7 @@ class EditQualityProfileModalContentConnector extends Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
onToggleEditGroupsMode = () => {
|
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
|
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
|
public static bool IsConnected
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue