Skip to content

Commit caf0d11

Browse files
committed
4565: Added slide with theme fixture
1 parent 435f3ed commit caf0d11

File tree

5 files changed

+45
-12
lines changed

5 files changed

+45
-12
lines changed

assets/shared/slide-utils/slide-util.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ function ThemeStyles({ id, css = null }) {
6363
const slideCss = css.replaceAll("#SLIDE_ID", `#${id}`);
6464

6565
const ThemeComponent = createGlobalStyle`${slideCss}`;
66+
6667
return <ThemeComponent />;
6768
}
6869

assets/shared/templates/image-text.jsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ function ImageText({ slide, content, run, slideDone, executionId }) {
4444
const imageTimeoutRef = useRef();
4545
const [images, setImages] = useState([]);
4646
const [currentImage, setCurrentImage] = useState();
47-
const [themeCss, setThemeCss] = useState(null);
4847
const logo = slide?.theme?.logo;
4948
const {
5049
showLogo,
@@ -69,15 +68,6 @@ function ImageText({ slide, content, run, slideDone, executionId }) {
6968
logoClasses.push(logoPosition);
7069
}
7170

72-
// Set theme styles.
73-
useEffect(() => {
74-
if (slide?.theme?.cssStyles) {
75-
setThemeCss(
76-
<ThemeStyles id={executionId} css={slide?.theme?.cssStyles} />,
77-
);
78-
}
79-
}, [slide]);
80-
8171
// Styling from content
8272
const {
8373
separator,
@@ -257,7 +247,9 @@ function ImageText({ slide, content, run, slideDone, executionId }) {
257247
)}
258248
</div>
259249

260-
{themeCss}
250+
{slide?.theme?.cssStyles && (
251+
<ThemeStyles id={executionId} css={slide.theme.cssStyles} />
252+
)}
261253
</>
262254
);
263255
}

assets/template/fixtures/slide-fixtures.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,27 @@ const slideFixtures = [
883883
fontSize: "font-size-lg",
884884
},
885885
},
886+
{
887+
id: "image-text-4-test-theme",
888+
templateData: {
889+
id: "01FP2SNGFN0BZQH03KCBXHKYHG",
890+
},
891+
themeFile: "/fixtures/example.css",
892+
content: {
893+
duration: 5000,
894+
title: "Overskriften er her",
895+
text: "Dette er brødtekst lorem ipsum dolor sit amet....",
896+
image: [],
897+
boxAlign: "top",
898+
boxMargin: false,
899+
shadow: true,
900+
separator: false,
901+
halfSize: false,
902+
reversed: false,
903+
mediaContain: true,
904+
fontSize: "font-size-xl",
905+
},
906+
},
886907
{
887908
id: "instagram-0",
888909
templateData: {

assets/template/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const Slide = ({ slide: inputSlide }) => {
7070
useEffect(() => {
7171
if (inputSlide !== null) {
7272
const newSlide = { ...inputSlide };
73-
newSlide.executionId = "" + new Date().getTime();
73+
newSlide.executionId = "SLIDE_ID";
7474

7575
// Attach theme.
7676
if (newSlide?.themeFile) {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Example theme file
3+
* #SLIDE_ID should always encapsulate all your theme styling
4+
* #SLIDE_ID will be replaced at runtime with the given slide execution id to make sure the theme styling
5+
* only applies to the given slide.
6+
*/
7+
8+
#SLIDE_ID {
9+
--bg-light: red;
10+
--bg-dark: blue;
11+
--text-light: purple;
12+
--text-dark: green;
13+
--text-color: yellow;
14+
}
15+
16+
#SLIDE_ID .text {
17+
background-color: var(--bg-light);
18+
color: var(--text-color);
19+
}

0 commit comments

Comments
 (0)