banner: add control swap
This commit is contained in:
@@ -38,6 +38,8 @@
|
|||||||
})
|
})
|
||||||
| null;
|
| null;
|
||||||
dismiss?: Omit<BannerControlButton, 'framed'> | null;
|
dismiss?: Omit<BannerControlButton, 'framed'> | null;
|
||||||
|
/** if true, accept and decline buttons are swapped with more info */
|
||||||
|
swap?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultBannerControls: BannerControls = {
|
const defaultBannerControls: BannerControls = {
|
||||||
@@ -53,7 +55,8 @@
|
|||||||
},
|
},
|
||||||
dismiss: {
|
dismiss: {
|
||||||
action: (banner) => banner.close()
|
action: (banner) => banner.close()
|
||||||
}
|
},
|
||||||
|
swap: false
|
||||||
};
|
};
|
||||||
|
|
||||||
const mergeBannerControls = (
|
const mergeBannerControls = (
|
||||||
@@ -66,7 +69,8 @@
|
|||||||
accept: overrides.accept ?? defaults.accept,
|
accept: overrides.accept ?? defaults.accept,
|
||||||
decline: overrides.decline ?? defaults.decline,
|
decline: overrides.decline ?? defaults.decline,
|
||||||
moreInfo: overrides.moreInfo ?? defaults.moreInfo,
|
moreInfo: overrides.moreInfo ?? defaults.moreInfo,
|
||||||
dismiss: overrides.dismiss ?? defaults.dismiss
|
dismiss: overrides.dismiss ?? defaults.dismiss,
|
||||||
|
swap: overrides.swap ?? defaults.swap
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -171,7 +175,9 @@
|
|||||||
{@render children?.()}
|
{@render children?.()}
|
||||||
|
|
||||||
{#if controls !== null}
|
{#if controls !== null}
|
||||||
<div class="mt-4 flex flex-wrap justify-between gap-4">
|
<div
|
||||||
|
class={['mt-4 flex flex-wrap justify-between gap-4', controls.swap && 'flex-row-reverse']}
|
||||||
|
>
|
||||||
<!-- More info button/link -->
|
<!-- More info button/link -->
|
||||||
{#if controls.moreInfo}
|
{#if controls.moreInfo}
|
||||||
{#if controls.moreInfo.type === 'link' && controls.moreInfo.href}
|
{#if controls.moreInfo.type === 'link' && controls.moreInfo.href}
|
||||||
@@ -200,7 +206,9 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="ml-auto flex justify-end gap-4">
|
<div
|
||||||
|
class={['flex justify-end gap-4', controls.swap ? 'mr-auto flex-row-reverse' : 'ml-auto']}
|
||||||
|
>
|
||||||
<!-- Decline button -->
|
<!-- Decline button -->
|
||||||
{@render buttonControl(controls.decline, handleDecline, false)}
|
{@render buttonControl(controls.decline, handleDecline, false)}
|
||||||
<!-- Accept button -->
|
<!-- Accept button -->
|
||||||
|
|||||||
@@ -83,7 +83,8 @@
|
|||||||
<Banner
|
<Banner
|
||||||
title="Manage Cookies"
|
title="Manage Cookies"
|
||||||
controls={{
|
controls={{
|
||||||
moreInfo: { label: 'More Info', type: 'link', href: '#!' }
|
moreInfo: { label: 'More Info', type: 'link', href: '#!' },
|
||||||
|
swap: true
|
||||||
}}
|
}}
|
||||||
onaccept={() => console.log('Cookies accepted!')}
|
onaccept={() => console.log('Cookies accepted!')}
|
||||||
ondecline={() => console.log('Cookies declined!')}
|
ondecline={() => console.log('Cookies declined!')}
|
||||||
|
|||||||
Reference in New Issue
Block a user