fix: SonarCloud bugs batch 2

- S2445: Make _connections readonly for thread-safe locking (MessageHub.cs)
- S6756: Use setState callbacks for 5 React components
- S1764: Remove duplicate expression in QualityProfileSelectInput.tsx
- S2583: Remove unreachable conditions in NotificationDefinition.cs
- S2259: Fix null reference in Pushcut.cs
This commit is contained in:
admin 2025-12-19 15:22:56 -06:00
parent 5aa9fd0abe
commit 835ec47313
9 changed files with 15 additions and 14 deletions

View file

@ -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 }) => {

View file

@ -78,7 +78,7 @@ class ImportMovieSelectMovie extends Component {
this._addListener();
}
this.setState({ isOpen: !this.state.isOpen });
this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
};
onSearchInputChange = ({ value }) => {

View file

@ -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 = () => {

View file

@ -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'
);

View file

@ -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 = () => {

View file

@ -474,7 +474,7 @@ class EditQualityProfileModalContentConnector extends Component {
};
onToggleEditGroupsMode = () => {
this.setState({ editGroups: !this.state.editGroups });
this.setState((prevState) => ({ editGroups: !prevState.editGroups }));
};
//

View file

@ -59,7 +59,7 @@ public class NotificationDefinition : ProviderDefinition, IEquatable<Notificatio
public bool SupportsOnManualInteractionRequired { get; set; }
[MemberwiseEqualityIgnore]
public override bool Enable => OnGrab || OnDownload || (OnDownload && OnUpgrade) || OnRename || OnMovieAdded || OnMovieDelete || OnMovieFileDelete || (OnMovieFileDelete && OnMovieFileDeleteForUpgrade) || OnHealthIssue || OnHealthRestored || OnApplicationUpdate || OnManualInteractionRequired;
public override bool Enable => OnGrab || OnDownload || OnRename || OnMovieAdded || OnMovieDelete || OnMovieFileDelete || OnHealthIssue || OnHealthRestored || OnApplicationUpdate || OnManualInteractionRequired;
public bool Equals(NotificationDefinition other)
{

View file

@ -31,7 +31,7 @@ public override ValidationResult Test()
public override void OnGrab(GrabMessage grabMessage)
{
_proxy.SendNotification(MOVIE_GRABBED_TITLE, grabMessage?.Message, GetPosterUrl(grabMessage.Movie), GetLinks(grabMessage.Movie), Settings);
_proxy.SendNotification(MOVIE_GRABBED_TITLE, grabMessage?.Message, GetPosterUrl(grabMessage?.Movie), GetLinks(grabMessage?.Movie), Settings);
}
public override void OnDownload(DownloadMessage downloadMessage)

View file

@ -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
{