2022-06-07 10:48:47 +00:00
|
|
|
import { createDefinedContext } from "../../utils/definedContext";
|
|
|
|
|
|
|
|
|
2022-06-09 21:43:38 +00:00
|
|
|
/**
|
|
|
|
* The string to be used as the [`background-image`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-image) CSS property of the postcard.
|
|
|
|
*/
|
|
|
|
export type PostcardImage = string;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* How the postcard is displayed on the page.
|
|
|
|
*/
|
|
|
|
export enum PostcardVisibility {
|
|
|
|
/**
|
|
|
|
* The postcard is filtered, blurred, and rendered behind all elements on the page.
|
|
|
|
*/
|
|
|
|
BACKGROUND = "background",
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The postcard is fully visible and rendered above all other elements.
|
|
|
|
*/
|
|
|
|
FOREGROUND = "foreground",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Contents of the {@link PostcardContext}.
|
|
|
|
*/
|
|
|
|
type PostcardContextValue = {
|
|
|
|
image: PostcardImage,
|
|
|
|
setImage: React.Dispatch<React.SetStateAction<PostcardImage>>,
|
|
|
|
visibility: PostcardVisibility,
|
|
|
|
setVisibility: React.Dispatch<React.SetStateAction<PostcardVisibility>>,
|
2022-06-07 10:48:47 +00:00
|
|
|
}
|
2022-06-04 03:13:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Context containing data about the website's current postcard, the blurred background image.
|
|
|
|
*/
|
2022-06-07 10:48:47 +00:00
|
|
|
export const PostcardContext = createDefinedContext<PostcardContextValue>()
|