Compare commits
3 Commits
54f7924c4a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf77a20ff9 | ||
|
|
42c9bc0bcc | ||
|
|
ed48b404d4 |
@@ -4,7 +4,7 @@
|
||||
"type": "git",
|
||||
"url": "https://gitea.auvem.com/svelte-toolkit/sui.git"
|
||||
},
|
||||
"version": "0.3.2",
|
||||
"version": "0.3.4",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build && pnpm run prepack",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
| null;
|
||||
dismiss?: Omit<BannerControlButton, 'framed'> | null;
|
||||
/** if true, accept and decline buttons are swapped with more info */
|
||||
swap?: boolean;
|
||||
swap?: boolean | null;
|
||||
};
|
||||
|
||||
const defaultBannerControls: BannerControls = {
|
||||
@@ -61,17 +61,34 @@
|
||||
|
||||
const mergeBannerControls = (
|
||||
defaults: BannerControls,
|
||||
overrides: BannerControls | null | undefined
|
||||
overrides?: BannerControls | null
|
||||
): BannerControls => {
|
||||
if (!overrides) return defaults;
|
||||
if (overrides == null) return { ...defaults };
|
||||
|
||||
return {
|
||||
accept: overrides.accept ?? defaults.accept,
|
||||
decline: overrides.decline ?? defaults.decline,
|
||||
moreInfo: overrides.moreInfo ?? defaults.moreInfo,
|
||||
dismiss: overrides.dismiss ?? defaults.dismiss,
|
||||
swap: overrides.swap ?? defaults.swap
|
||||
};
|
||||
const result: BannerControls = { ...defaults };
|
||||
|
||||
const keys: (keyof BannerControls)[] = ['accept', 'decline', 'moreInfo', 'dismiss', 'swap'];
|
||||
|
||||
for (const key of keys) {
|
||||
const ov = overrides[key];
|
||||
if (ov === null) {
|
||||
// explicit disable
|
||||
result[key] = null;
|
||||
continue;
|
||||
}
|
||||
if (ov === undefined) continue; // keep default
|
||||
if (key === 'swap') {
|
||||
result.swap = ov as boolean;
|
||||
continue;
|
||||
}
|
||||
// shallow merge individual control fields
|
||||
result[key] = {
|
||||
...(defaults[key] ?? {}),
|
||||
...(ov as any)
|
||||
} as any;
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
title="Manage Cookies"
|
||||
controls={{
|
||||
moreInfo: { label: 'More Info', type: 'link', href: '#!' },
|
||||
dismiss: null,
|
||||
swap: true
|
||||
}}
|
||||
onaccept={() => console.log('Cookies accepted!')}
|
||||
|
||||
Reference in New Issue
Block a user