apphouse
Version:
Component library for React that uses observable state management and theme-able components.
129 lines (128 loc) • 3.63 kB
TypeScript
import { ButtonProps, ButtonStyles } from '../components/Button';
import { PositionOptionsType } from '../utils/styles/getStylesForPosition';
import { ApphouseComponent } from '../components/component.interfaces';
import { CSSProperties } from 'glamor';
import React from 'react';
import { PopupStyles } from '../components/popup/Popup.interface';
/**
* Interface for a cookie banner action
*/
export interface CookieBannerAction extends Omit<ButtonProps, 'children'> {
/**
* The id of the action
* must be unique
*/
id: string;
/**
* Callback function to be executed when the cookie banner
* button is clicked
*/
action: () => void;
/**
* The label of the action
*/
label: string;
}
export interface CookieBannerStyles {
popup?: PopupStyles;
container?: CSSProperties;
button?: ButtonStyles;
}
/**
* Interface for the cookie banner component
*/
export interface CookieBannerProps extends ApphouseComponent<CookieBannerStyles> {
/**
* The actions of the cookie banner
*/
actions: CookieBannerAction[];
/**
* The content of the cookie banner
*/
content: React.ReactNode;
/**
* The position of the cookie banner
* @default 'bottom'
* @optional
*/
position?: keyof typeof PositionOptionsType;
/**
* Additional content to be rendered in the footer
*/
additionalFooterContent?: React.ReactNode;
/**
* The content of the popup
*/
children?: React.ReactNode;
/**
* If true, the popup will be cleared when it is closed
*/
clear?: boolean;
/**
* If true, the popup will close when the user clicks outside of it
*/
closeOnClickOutside?: boolean;
/**
* If true, the popup will be rendered in fullscreen
*/
fullscreen?: boolean;
/**
* Unique id for the popup
* and how it will be referenced in the store
*/
id: string;
/**
* The title of the popup
*/
title: React.ReactNode;
/**
* If true, the popup will be rendered with a close button
* that will be rendered in the top right corner
* that will close the popup when clicked
* @optional
* @default false
*/
showCloseButton?: boolean;
/**
* The width of the popup
*/
width?: string;
/**
* If true, the popup will not be closable unless user closes it via the actions
* @optional
* @default false
*/
disableClosing?: boolean;
/**
* If true, the popup will allow clicks to pass through
* and there will be no overlay
*/
allowOverlayPassThrough?: boolean;
}
/**
* ePrivacy Directive (The Cookie Law)
* The Privacy and Electronic Communications Directive 2002/58/EC is a
* set of rules passed in 2002 and amended in 2009 that govern data *
* protection and privacy in the EU.
*
* The ePD — or EU Cookie Law — requires that a website obtains its
* user’s consent before storing cookies, other than those deemed
* strictly * necessary, in the user’s browser.
*
* - General Data Protection Regulation (GDPR)
*
* - California Consumer Privacy Act (CCPA)
*
* - Information Commissioner’s Office (ICO)
*
* - Commission Nationale de L’informatique et des Libertés (CNIL)
*
* - Lei Geral de Protecao de Dados (LGPD)
*
* - Personal Information Protection and Electronic Documents Act (PIPEDA)
*
* - Personal Data Protection Act (PDPA)
*
* @returns Cookie Banner Template
*/
export declare const CookieBanner: (props: CookieBannerProps) => import("react/jsx-runtime").JSX.Element;