import { useEntity, useReplicache } from "src/replicache"; import { useEntitySetContext } from "components/EntitySetProvider"; import { pickers, SectionArrow, setColorAttribute } from "./ThemeSetter"; import { SubpageBackgroundPicker, PageThemePickers, } from "./Pickers/PageThemePickers"; import { useMemo, useState } from "react"; import { theme } from "tailwind.config"; import { ButtonPrimary } from "components/Buttons"; import { PaintSmall } from "components/Icons/PaintSmall"; import { AccentPickers } from "./Pickers/AccentPickers"; import Page from "twilio/lib/base/Page"; export const PageThemeSetter = (props: { entityID: string }) => { let { rootEntity } = useReplicache(); let permission = useEntitySetContext().permissions.write; let [openPicker, setOpenPicker] = useState("null"); let leafletBGImage = useEntity(rootEntity, "theme/background-image"); let leafletBGRepeat = useEntity(rootEntity, "theme/background-image-repeat"); if (!permission) return null; let { rep } = useReplicache(); let set = useMemo(() => { return setColorAttribute(rep, props.entityID); }, [rep, props.entityID]); return ( <>
Theme Page
setOpenPicker(pickers)} hideFonts />
setOpenPicker(pickers)} />
); }; const ResetButton = (props: { entityID: string }) => { let { rep } = useReplicache(); return ( { if (!rep) return; rep.mutate.retractAttribute({ entity: props.entityID, attribute: [ "theme/primary", "theme/card-background", "theme/accent-background", "theme/accent-text", "theme/card-background-image", "theme/card-background-image-repeat", "theme/card-background-image-opacity", "theme/card-border-hidden", "canvas/background-pattern", ], }); }} > reset ); }; const SamplePage = (props: { entityID: string }) => { let { rootEntity } = useReplicache(); let rootBackgroundImage = useEntity( rootEntity, "theme/card-background-image", ); let rootBackgroundRepeat = useEntity( rootEntity, "theme/card-background-image-repeat", ); let rootBackgroundOpacity = useEntity( rootEntity, "theme/card-background-image-opacity", ); let pageBackgroundImage = useEntity(props.entityID, "theme/card-background-image") || rootBackgroundImage; let pageBackgroundImageRepeat = useEntity(props.entityID, "theme/card-background-image-repeat") || rootBackgroundRepeat; let pageBackgroundImageOpacity = useEntity(props.entityID, "theme/card-background-image-opacity") || rootBackgroundOpacity; let rootPageBorderHidden = useEntity(rootEntity, "theme/card-border-hidden"); let entityPageBorderHidden = useEntity( props.entityID, "theme/card-border-hidden", ); let pageBorderHidden = (entityPageBorderHidden || rootPageBorderHidden)?.data .value; return (

Theme Each Page!

OMG! You can theme each page individually in{" "} Leaflet!
Buttons and sections appear like:
Happy Theming!
Button
); };