Skip to content

Commit 18c4c6d

Browse files
authored
Merge pull request #2425 from dxc-technology/jialecl/export-fix
[doc]export theme correctly exports the correct json
2 parents 6e09f2e + ef63a08 commit 18c4c6d

4 files changed

Lines changed: 22 additions & 23 deletions

File tree

apps/website/screens/theme-generator/ThemeGeneratorConfigPage.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useRef, useState } from "react";
1+
import { useMemo, useRef, useState } from "react";
22
import { DxcContainer, DxcFlex, DxcWizard } from "@dxc-technology/halstack-react";
33
import StepHeading from "./components/StepHeading";
44
import BottomButtons from "./components/BottomButtons";
@@ -57,6 +57,19 @@ const ThemeGeneratorConfigPage = () => {
5757
const [tokens, setTokens] = useState<Record<string, string>>({});
5858
const lastGeneratedColorsRef = useRef<string>("");
5959

60+
const themeJson = useMemo(() => {
61+
const themeObject = {
62+
tokens: tokens,
63+
logos: {
64+
mainLogo: "",
65+
footerLogo: "",
66+
footerReducedLogo: "",
67+
favicon: "",
68+
},
69+
};
70+
return JSON.stringify(themeObject, null, 2);
71+
}, [tokens]);
72+
6073
const generateTokensFromColors = () => {
6174
try {
6275
const mappedColors = {
@@ -93,7 +106,7 @@ const ThemeGeneratorConfigPage = () => {
93106
case 1:
94107
return <ThemeGeneratorPreviewPage tokens={tokens} logos={logos} />;
95108
case 2:
96-
return <ReviewDetails generatedTokens={tokens} logos={logos} />;
109+
return <ReviewDetails tokens={tokens} logos={logos} themeJson={themeJson} />;
97110
}
98111
};
99112

@@ -131,7 +144,7 @@ const ThemeGeneratorConfigPage = () => {
131144
<BottomButtons
132145
currentStep={currentStep}
133146
onChangeStep={handleChangeStep}
134-
onExport={() => handleExport(tokens)}
147+
onExport={() => handleExport(themeJson)}
135148
/>
136149
</DxcFlex>
137150
</DxcContainer>

apps/website/screens/theme-generator/components/review/ReviewTokensGrid.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { Tokens } from "../../types";
33
import React, { useMemo } from "react";
44
import { divideColorTokens, SHADE_VALUES } from "../../utils";
55

6-
const ReviewTokensGrid = ({ generatedTokens }: { generatedTokens: Tokens }) => {
7-
const tokenGroups = useMemo(() => divideColorTokens(generatedTokens), [generatedTokens]);
6+
const ReviewTokensGrid = ({ tokens }: { tokens: Tokens }) => {
7+
const tokenGroups = useMemo(() => divideColorTokens(tokens), [tokens]);
88
return (
99
<DxcGrid
1010
templateColumns={["100px", "repeat(10, 1fr)"]}

apps/website/screens/theme-generator/steps/ReviewDetails.tsx

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,9 @@ import ReviewTokensGrid from "../components/review/ReviewTokensGrid";
44
import ReviewTokensList from "../components/review/ReviewTokensList";
55
import ReviewBrandingAssets from "../components/review/ReviewBrandingAssets";
66
import useCopyToClipboard from "hooks/useCopyToClipboard";
7-
import { useMemo } from "react";
87
import ReviewSectionContainer from "../components/review/ReviewSectionContainer";
98

10-
const ReviewDetails = ({ generatedTokens, logos }: { generatedTokens: Tokens; logos: Logos }) => {
11-
const themeJson = useMemo(() => {
12-
const themeObject = {
13-
tokens: generatedTokens,
14-
logos: {
15-
mainLogo: "",
16-
footerLogo: "",
17-
footerReducedLogo: "",
18-
favicon: "",
19-
},
20-
};
21-
return JSON.stringify(themeObject, null, 2);
22-
}, [generatedTokens]);
23-
9+
const ReviewDetails = ({ tokens, logos, themeJson }: { tokens: Tokens; logos: Logos; themeJson: string }) => {
2410
const handleCopy = useCopyToClipboard();
2511

2612
return (
@@ -42,7 +28,7 @@ const ReviewDetails = ({ generatedTokens, logos }: { generatedTokens: Tokens; lo
4228
>
4329
<DxcGrid templateColumns={["2fr", "1fr"]} templateRows={["368px"]} gap="var(--spacing-gap-m)">
4430
<DxcFlex justifyContent="center">
45-
<ReviewTokensGrid generatedTokens={generatedTokens} />
31+
<ReviewTokensGrid tokens={tokens} />
4632
</DxcFlex>
4733
<ReviewTokensList themeJson={themeJson} />
4834
</DxcGrid>

apps/website/screens/theme-generator/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ export const generateTokens = (baseColors: BaseColors): Tokens => {
9393
return generateTokensObject(baseColors);
9494
};
9595

96-
export const handleExport = (tokens: Tokens) => {
97-
const dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(tokens, null, 2));
96+
export const handleExport = (themeJson: string) => {
97+
const dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(themeJson);
9898
const downloadAnchorNode = document.createElement("a");
9999
downloadAnchorNode.setAttribute("href", dataStr);
100100
downloadAnchorNode.setAttribute("download", "halstack-theme-tokens.json");

0 commit comments

Comments
 (0)