mirror of
https://github.com/bytedream/stream-bypass.git
synced 2026-08-04 21:10:40 +02:00
clean empty per site settings
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
import HostsTable from '@/entrypoints/popup/pages/settings/HostsTable.svelte';
|
import HostsTable from '@/entrypoints/popup/pages/settings/HostsTable.svelte';
|
||||||
import PerSiteDisables from '@/entrypoints/popup/pages/settings/PerSiteDisables.svelte';
|
import PerSiteDisables from '@/entrypoints/popup/pages/settings/PerSiteDisables.svelte';
|
||||||
import { isMobile } from '@/entrypoints/popup/state';
|
import { isMobile } from '@/entrypoints/popup/state';
|
||||||
|
import { PerDomainSettings } from '@/lib/settings';
|
||||||
|
|
||||||
/* types */
|
/* types */
|
||||||
interface Props {
|
interface Props {
|
||||||
@@ -16,6 +17,8 @@
|
|||||||
/* states */
|
/* states */
|
||||||
let { onSettingsCloseRequest }: Props = $props();
|
let { onSettingsCloseRequest }: Props = $props();
|
||||||
let searchQuery = $state('');
|
let searchQuery = $state('');
|
||||||
|
|
||||||
|
onDestroy(PerDomainSettings.cleanEmpty);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
import PerSiteHostsList from '@/entrypoints/popup/pages/site-config/PerSiteHostsList.svelte';
|
import PerSiteHostsList from '@/entrypoints/popup/pages/site-config/PerSiteHostsList.svelte';
|
||||||
import { listenTabMessages, sendTabMessageToActiveTab, TabMessageType } from '@/lib/communication';
|
import { listenTabMessages, sendTabMessageToActiveTab, TabMessageType } from '@/lib/communication';
|
||||||
import { hosts, type Host } from '@/lib/host';
|
import { hosts, type Host } from '@/lib/host';
|
||||||
|
import { PerDomainSettings } from '@/lib/settings';
|
||||||
|
|
||||||
/* types */
|
/* types */
|
||||||
interface Props {
|
interface Props {
|
||||||
@@ -35,7 +36,10 @@
|
|||||||
currentDomain = new URL(url).hostname;
|
currentDomain = new URL(url).hostname;
|
||||||
});
|
});
|
||||||
|
|
||||||
onDestroy(cancel);
|
onDestroy(() => {
|
||||||
|
cancel();
|
||||||
|
PerDomainSettings.cleanEmpty();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
|
|||||||
@@ -108,4 +108,12 @@ export class PerDomainSettings {
|
|||||||
delete val[domain];
|
delete val[domain];
|
||||||
return val;
|
return val;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
static cleanEmpty = () =>
|
||||||
|
this.storage.update((val) => {
|
||||||
|
for (const [domain, settings] of Object.entries(val)) {
|
||||||
|
if (!settings.allDisabled && settings.disabledHostIds.length === 0) delete val[domain];
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user