mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-08 08:39:59 +00:00
Move media type checking to receiver selectors
This commit is contained in:
@@ -119,6 +119,12 @@ class ViewController : NSViewController {
|
||||
|
||||
receiverView.receiverViewDelegate = self
|
||||
|
||||
if UInt(initData!.availableMediaTypes) == 0
|
||||
|| (initData!.availableMediaTypes
|
||||
& initData!.defaultMediaType.rawValue) == 0 {
|
||||
receiverView.isEnabled = false
|
||||
}
|
||||
|
||||
|
||||
self.receiverViews.append(receiverView)
|
||||
|
||||
@@ -146,6 +152,12 @@ extension ViewController : NSMenuDelegate {
|
||||
let mediaType = MediaType(
|
||||
rawValue: self.mediaTypePopUpButton.selectedItem!.tag)!
|
||||
|
||||
if self.initData.availableMediaTypes & mediaType.rawValue != 0 {
|
||||
for receiverView in self.receiverViews {
|
||||
receiverView.isEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
let fileItem = self.mediaTypePopUpButton
|
||||
.item(at: self.mediaTypePopUpButton.indexOfItem(
|
||||
withTag: MediaType.file.rawValue))!
|
||||
|
||||
@@ -97,14 +97,6 @@ async function getSelection (
|
||||
availableMediaTypes &= ~ReceiverSelectorMediaType.File;
|
||||
}
|
||||
|
||||
if (!availableMediaTypes || availableMediaTypes
|
||||
=== ReceiverSelectorMediaType.File) {
|
||||
console.error("fx_cast (Debug): No available media types");
|
||||
resolve(null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Ensure status manager is initialized
|
||||
await StatusManager.init();
|
||||
|
||||
@@ -109,6 +109,9 @@ class PopupApp extends Component<{}, PopupAppState> {
|
||||
}
|
||||
|
||||
|
||||
const canCast = !!(this.state.availableMediaTypes
|
||||
&& this.state.availableMediaTypes & this.state.mediaType);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="media-select">
|
||||
@@ -150,6 +153,7 @@ class PopupApp extends Component<{}, PopupAppState> {
|
||||
<ReceiverEntry receiver={ receiver }
|
||||
onCast={ this.onCast }
|
||||
isLoading={ this.state.isLoading }
|
||||
canCast={ canCast }
|
||||
key={ i }/> ))}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -208,6 +212,7 @@ class PopupApp extends Component<{}, PopupAppState> {
|
||||
interface ReceiverEntryProps {
|
||||
receiver: Receiver;
|
||||
isLoading: boolean;
|
||||
canCast: boolean;
|
||||
onCast (receiver: Receiver): void;
|
||||
}
|
||||
|
||||
@@ -244,7 +249,7 @@ class ReceiverEntry extends Component<ReceiverEntryProps, ReceiverEntryState> {
|
||||
</div>
|
||||
<button className="receiver-connect"
|
||||
onClick={ this.handleCast }
|
||||
disabled={this.props.isLoading}>
|
||||
disabled={this.props.isLoading || !this.props.canCast}>
|
||||
{ this.state.isLoading
|
||||
? _("popupCastingButtonTitle"
|
||||
, (this.state.isLoading
|
||||
|
||||
Reference in New Issue
Block a user