web/state/settings: add "disable analytics" option
This commit is contained in:
parent
578150e40e
commit
ee9421b831
3 changed files with 18 additions and 1 deletions
|
@ -3,7 +3,7 @@ import { defaultLocale } from "$lib/i18n/translations";
|
|||
import type { CobaltSettings } from "$lib/types/settings";
|
||||
|
||||
const defaultSettings: CobaltSettings = {
|
||||
schemaVersion: 1,
|
||||
schemaVersion: 2,
|
||||
advanced: {
|
||||
debug: false,
|
||||
},
|
||||
|
@ -27,6 +27,9 @@ const defaultSettings: CobaltSettings = {
|
|||
youtubeVideoCodec: "h264",
|
||||
youtubeDubBrowserLang: false,
|
||||
},
|
||||
privacy: {
|
||||
disableAnalytics: false
|
||||
}
|
||||
}
|
||||
|
||||
const defaultSettingsPage = () => {
|
||||
|
|
|
@ -9,6 +9,14 @@ import defaultSettings from '../settings/defaults';
|
|||
type PartialSettings = RecursivePartial<CobaltSettings>;
|
||||
type PartialSettingsWithSchema = RecursivePartial<CobaltSettings> & { schemaVersion: number };
|
||||
|
||||
const updatePlausiblePreference = (settings: PartialSettings) => {
|
||||
if (settings.privacy?.disableAnalytics) {
|
||||
localStorage.setItem('plausible_ignore', 'true');
|
||||
} else if (localStorage.getItem('plausible_ignore') !== null) {
|
||||
localStorage.removeItem('plausible_ignore');
|
||||
}
|
||||
}
|
||||
|
||||
const writeToStorage = (settings: PartialSettings) => {
|
||||
localStorage.setItem(
|
||||
"settings",
|
||||
|
@ -69,6 +77,7 @@ export function updateSetting(partial: PartialSettings) {
|
|||
)
|
||||
);
|
||||
|
||||
updatePlausiblePreference(partial);
|
||||
return updated;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -19,6 +19,10 @@ type CobaltSettingsAdvanced = {
|
|||
debug: boolean,
|
||||
};
|
||||
|
||||
type CobaltSettingsPrivacy = {
|
||||
disableAnalytics: boolean
|
||||
};
|
||||
|
||||
type CobaltSettingsSave = {
|
||||
audioFormat: typeof audioFormatOptions[number],
|
||||
disableMetadata: boolean,
|
||||
|
@ -38,6 +42,7 @@ export type CobaltSettings = {
|
|||
advanced: CobaltSettingsAdvanced,
|
||||
appearance: CobaltSettingsAppearance,
|
||||
save: CobaltSettingsSave,
|
||||
privacy: CobaltSettingsPrivacy
|
||||
};
|
||||
|
||||
export type DownloadModeOption = CobaltSettings['save']['downloadMode'];
|
||||
|
|
Loading…
Reference in a new issue