client: Hide native title bar setting on web

This commit is contained in:
Elian Doran 2024-08-16 21:41:15 +03:00
parent bd732386e4
commit 4a8c3d719f
No known key found for this signature in database
5 changed files with 22 additions and 0 deletions

View File

@ -0,0 +1,8 @@
import test, { expect } from "@playwright/test";
test("Native Title Bar not displayed on web", async ({ page }) => {
await page.goto('http://localhost:8082/#root/_hidden/_options/_optionsAppearance');
await expect(page.getByRole('heading', { name: 'Theme' })).toBeVisible();
await expect(page.getByRole('heading', { name: 'Native Title Bar (requires' })).toBeHidden();
});

View File

@ -85,6 +85,9 @@ function now() {
return formatTimeWithSeconds(new Date());
}
/**
* Returns `true` if the client is currently running under Electron, or `false` if running in a web browser.
*/
function isElectron() {
return !!(window && window.process && window.process.type);
}

View File

@ -131,6 +131,10 @@ class BasicWidget extends Component {
return this.$widget;
}
/**
* Indicates if the widget is enabled. Widgets are enabled by default. Generally setting this to `false` will cause the widget not to be displayed, however it will still be available on the DOM but hidden.
* @returns
*/
isEnabled() {
return true;
}

View File

@ -48,6 +48,8 @@ class NoteContextAwareWidget extends BasicWidget {
}
/**
* @inheritdoc
*
* @returns {boolean} true when an active note exists
*/
isEnabled() {

View File

@ -1,5 +1,6 @@
import OptionsWidget from "../options_widget.js";
import { t } from "../../../../services/i18n.js";
import utils from "../../../../services/utils.js";
const TPL = `
<div class="options-section">
@ -21,6 +22,10 @@ export default class NativeTitleBarOptions extends OptionsWidget {
this.updateOption('nativeTitleBarVisible', nativeTitleBarVisible);
});
}
isEnabled() {
return utils.isElectron();
}
async optionsLoaded(options) {
this.$nativeTitleBarSelect.val(options.nativeTitleBarVisible === 'true' ? 'show' : 'hide');