Fix private calls
This commit is contained in:
@@ -103,6 +103,40 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rounded-lg border border-border bg-secondary/20 p-4">
|
||||
<div class="flex items-center justify-between gap-4">
|
||||
<div>
|
||||
<p class="text-sm font-medium text-foreground">Experimental VLC.js playback</p>
|
||||
@if (experimentalMedia.vlcJsRuntimeStatus() === 'checking') {
|
||||
<p class="text-xs text-muted-foreground">Checking for a bundled VLC.js runtime...</p>
|
||||
} @else if (experimentalMedia.vlcJsRuntimeAvailable()) {
|
||||
<p class="text-xs text-muted-foreground">Offer a manual player for unsupported downloaded audio and video files.</p>
|
||||
} @else {
|
||||
<p class="text-xs text-muted-foreground">No VLC.js runtime is bundled. Unsupported desktop media can be opened in the system player.</p>
|
||||
}
|
||||
</div>
|
||||
|
||||
<label
|
||||
class="relative inline-flex items-center"
|
||||
[class.cursor-pointer]="experimentalMedia.vlcJsRuntimeAvailable()"
|
||||
[class.cursor-not-allowed]="!experimentalMedia.vlcJsRuntimeAvailable()"
|
||||
>
|
||||
<input
|
||||
type="checkbox"
|
||||
[checked]="experimentalMedia.vlcJsPlaybackEnabled()"
|
||||
[disabled]="!experimentalMedia.vlcJsRuntimeAvailable()"
|
||||
(change)="onExperimentalVlcPlaybackChange($event)"
|
||||
id="general-experimental-vlc-playback-toggle"
|
||||
aria-label="Toggle experimental VLC.js playback"
|
||||
class="sr-only peer"
|
||||
/>
|
||||
<div
|
||||
class="w-10 h-5 bg-secondary rounded-full peer peer-checked:bg-primary peer-disabled:bg-muted/80 peer-disabled:after:bg-muted-foreground/40 peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all"
|
||||
></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@@ -12,6 +12,7 @@ import type { DesktopSettingsSnapshot } from '../../../../core/platform/electron
|
||||
import { loadGeneralSettingsFromStorage, saveGeneralSettingsToStorage } from '../../../../infrastructure/persistence';
|
||||
import { ElectronBridgeService } from '../../../../core/platform/electron/electron-bridge.service';
|
||||
import { PlatformService } from '../../../../core/platform';
|
||||
import { ExperimentalMediaSettingsService } from '../../../../domains/experimental-media/application/services/experimental-media-settings.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-general-settings',
|
||||
@@ -27,6 +28,7 @@ import { PlatformService } from '../../../../core/platform';
|
||||
export class GeneralSettingsComponent {
|
||||
private platform = inject(PlatformService);
|
||||
private electronBridge = inject(ElectronBridgeService);
|
||||
readonly experimentalMedia = inject(ExperimentalMediaSettingsService);
|
||||
|
||||
readonly isElectron = this.platform.isElectron;
|
||||
reopenLastViewedChat = signal(true);
|
||||
@@ -98,6 +100,13 @@ export class GeneralSettingsComponent {
|
||||
}
|
||||
}
|
||||
|
||||
onExperimentalVlcPlaybackChange(event: Event): void {
|
||||
const input = event.target as HTMLInputElement;
|
||||
|
||||
this.experimentalMedia.setVlcJsPlaybackEnabled(!!input.checked);
|
||||
input.checked = this.experimentalMedia.vlcJsPlaybackEnabled();
|
||||
}
|
||||
|
||||
private async loadDesktopSettings(): Promise<void> {
|
||||
const api = this.electronBridge.getApi();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user