Skip to content

Commit 4d5fff8

Browse files
refactor(code-help): escape snippets centrally instead of in source strings (#8062)
1 parent 0668c09 commit 4d5fff8

17 files changed

Lines changed: 72 additions & 96 deletions

File tree

frontend/common/code-help/create-user/create-user-next.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default function HomePage() {
2323
2424
export default function App({ Component, pageProps, flagsmithState } {
2525
return (
26-
<FlagsmithProvider
26+
<FlagsmithProvider
2727
serverState={flagsmithState}
2828
options={{
2929
environmentID: "${envId}",${
@@ -32,9 +32,9 @@ export default function App({ Component, pageProps, flagsmithState } {
3232
: ''
3333
}
3434
}}
35-
flagsmith={flagsmith}&gt;
36-
&lt;Component {...pageProps} />
37-
&lt;/FlagsmithProvider>
35+
flagsmith={flagsmith}>
36+
<Component {...pageProps} />
37+
</FlagsmithProvider>
3838
);
3939
}
4040

frontend/common/code-help/create-user/create-user-react.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { FlagsmithProvider } from '${NPM_CLIENT}/react';
1010
1111
export default function App() {
1212
return (
13-
&lt;FlagsmithProvider
13+
<FlagsmithProvider
1414
options={{
1515
environmentID: '${envId}',${
1616
Constants.isCustomFlagsmithUrl()
@@ -20,9 +20,9 @@ export default function App() {
2020
identity: '${userId || USER_ID}',
2121
traits: {${TRAIT_NAME}: 21},
2222
}}
23-
flagsmith={flagsmith}&gt;
23+
flagsmith={flagsmith}>
2424
{...Your app}
25-
&lt;/FlagsmithProvider>
25+
</FlagsmithProvider>
2626
);
2727
}
2828

frontend/common/code-help/init/init-next-app-router.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { FeatureFlagProvider } from "./components/FeatureFlagProvider";
99
1010
export default async function RootLayout({
1111
children,
12-
}: Readonly&lt;{
12+
}: Readonly<{
1313
children: React.ReactNode;
14-
}&gt;) {
14+
}>) {
1515
await flagsmith.init({
1616
environmentID: "${envId}",${
1717
Constants.isCustomFlagsmithUrl()
@@ -21,16 +21,16 @@ export default async function RootLayout({
2121
const serverState = flagsmith.getState();
2222
2323
return (
24-
&lt;html lang="en"&gt;
25-
&lt;head&gt;
26-
&lt;meta name="viewport" content="initial-scale=1, width=device-width" /&gt;
27-
&lt;/head&gt;
28-
&lt;body&gt;
29-
&lt;FeatureFlagProvider serverState={serverState}&gt;
24+
<html lang="en">
25+
<head>
26+
<meta name="viewport" content="initial-scale=1, width=device-width" />
27+
</head>
28+
<body>
29+
<FeatureFlagProvider serverState={serverState}>
3030
{children}
31-
&lt;/FeatureFlagProvider&gt;
32-
&lt;/body&gt;
33-
&lt;/html&gt;
31+
</FeatureFlagProvider>
32+
</body>
33+
</html>
3434
);
3535
}
3636
@@ -48,13 +48,13 @@ export const FeatureFlagProvider = ({
4848
}: {
4949
serverState: IState;
5050
children: ReactNode;
51-
}) =&gt; {
51+
}) => {
5252
const flagsmithInstance = useRef(createFlagsmithInstance());
5353
5454
return (
55-
&lt;FlagsmithProvider flagsmith={flagsmithInstance.current} serverState={serverState}>
56-
&lt;&gt;{children}&lt;/&gt;
57-
&lt;/FlagsmithProvider&gt;
55+
<FlagsmithProvider flagsmith={flagsmithInstance.current} serverState={serverState}>
56+
<>{children}</>
57+
</FlagsmithProvider>
5858
);
5959
};
6060
@@ -69,6 +69,6 @@ export default function HomePage() {
6969
const ${FEATURE_NAME_ALT} = flags.${FEATURE_NAME_ALT}.value
7070
7171
return (
72-
&lt;&gt;{...}&lt;/&gt;
72+
<>{...}</>
7373
);
7474
}`

frontend/common/code-help/init/init-next-pages-router.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { FlagsmithProvider } from '@flagsmith/flagsmith/react';
88
99
export default function App({ Component, pageProps, flagsmithState } {
1010
return (
11-
&lt;FlagsmithProvider
11+
<FlagsmithProvider
1212
serverState={flagsmithState}
1313
options={{
1414
environmentID: "${envId}",${
@@ -17,9 +17,9 @@ export default function App({ Component, pageProps, flagsmithState } {
1717
: ''
1818
}
1919
}}
20-
flagsmith={flagsmith}&gt;
21-
&lt;Component {...pageProps} />
22-
&lt;/FlagsmithProvider>
20+
flagsmith={flagsmith}>
21+
<Component {...pageProps} />
22+
</FlagsmithProvider>
2323
);
2424
}
2525
@@ -43,6 +43,6 @@ export default function HomePage() {
4343
const ${FEATURE_NAME} = flags.${FEATURE_NAME}.enabled
4444
const ${FEATURE_NAME_ALT} = flags.${FEATURE_NAME_ALT}.value
4545
return (
46-
&lt;>{...}&lt;/>
46+
<>{...}</>
4747
);
4848
}`

frontend/common/code-help/init/init-react.js

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,33 @@ import Constants from 'common/constants'
33
export default (
44
envId,
55
{ FEATURE_NAME, FEATURE_NAME_ALT, LIB_NAME, NPM_CLIENT },
6-
) => `// App root
7-
import ${LIB_NAME} from "${NPM_CLIENT}";
8-
import { FlagsmithProvider } from '@flagsmith/flagsmith/react';
6+
) => `import ${LIB_NAME} from "${NPM_CLIENT}";
7+
import { FlagsmithProvider, useFlags } from '${NPM_CLIENT}/react';
8+
9+
export function HomePage() {
10+
const flags = useFlags(['${FEATURE_NAME}','${FEATURE_NAME_ALT}']); // only causes re-render if specified flag values / traits change
11+
const ${FEATURE_NAME} = flags.${FEATURE_NAME}.enabled
12+
const ${FEATURE_NAME_ALT} = flags.${FEATURE_NAME_ALT}.value
13+
return (
14+
<>
15+
{\`${FEATURE_NAME}: \${${FEATURE_NAME}}\`}
16+
{\`${FEATURE_NAME_ALT}: \${${FEATURE_NAME_ALT}}\`}
17+
</>
18+
);
19+
}
920
1021
export default function App() {
1122
return (
12-
&lt;FlagsmithProvider
23+
<FlagsmithProvider
1324
options={{
1425
environmentID: '${envId}',${
1526
Constants.isCustomFlagsmithUrl()
1627
? `\n api: '${Constants.getFlagsmithSDKUrl()}',`
1728
: ''
1829
}
1930
}}
20-
flagsmith={flagsmith}&gt;
21-
{...Your app}
22-
&lt;/FlagsmithProvider>
23-
);
24-
}
25-
26-
// Home Page
27-
import ${LIB_NAME} from '${NPM_CLIENT}';
28-
import { useFlags, useFlagsmith } from '${NPM_CLIENT}/react';
29-
30-
export default function HomePage() {
31-
const flags = useFlags(['${FEATURE_NAME}','${FEATURE_NAME_ALT}']); // only causes re-render if specified flag values / traits change
32-
const ${FEATURE_NAME} = flags.${FEATURE_NAME}.enabled
33-
const ${FEATURE_NAME_ALT} = flags.${FEATURE_NAME_ALT}.value
34-
return (
35-
&lt;>{...}&lt;/>
31+
flagsmith={${LIB_NAME}}>
32+
<HomePage />
33+
</FlagsmithProvider>
3634
);
3735
}`
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
export default () => `You can access the API directly with tools like <a href="https://curl.haxx.se/">curl</a> or <a href='https://httpie.org/'>httpie</a>,
1+
export default () => `You can access the API directly with tools like curl or httpie,
22
or with clients for languages that we do not currently have SDKs for.
33
4-
You can view the API via Swagger at <a href="https://api.flagsmith.com/api/v1/docs/">https://api.flagsmith.com/api/v1/docs/</a>.
4+
You can view the API via Swagger at https://api.flagsmith.com/api/v1/docs/.
55
`

frontend/common/code-help/install/install-dotnet.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import Utils from 'common/utils/utils'
2-
31
export default () => `// Package Manager
42
PM> Install-Package Flagsmith -Version 4.0.0
53
64
// .NET CLI
75
dotnet add package Flagsmith --version 4.0.0
86
97
// PackageReference
10-
${Utils.escapeHtml('<PackageReference Include="Flagsmith" Version="4.0.0" />')}
8+
<PackageReference Include="Flagsmith" Version="4.0.0" />
119
1210
// Paket CLI
1311
paket add Flagsmith --version 4.0.0

frontend/common/code-help/install/install-flutter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export default () => `The client library is available from the <a href='https://pub.dev/packages/flagsmith'>https://pub.dev/packages/flagsmith</a>:
1+
export default () => `The client library is available from the https://pub.dev/packages/flagsmith:
22
33
dependencies:
44
flagsmith:

frontend/common/code-help/install/install-java.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import Utils from 'common/utils/utils'
2-
31
export default () => `// Maven
4-
${Utils.escapeHtml('<dependency>')}
5-
${Utils.escapeHtml('<groupId>com.flagsmith</groupId>')}
6-
${Utils.escapeHtml('<artifactId>flagsmith-java-client</artifactId>')}
7-
${Utils.escapeHtml('<version>7.4.1</version>')}
8-
${Utils.escapeHtml('</dependency>')}
2+
<dependency>
3+
<groupId>com.flagsmith</groupId>
4+
<artifactId>flagsmith-java-client</artifactId>
5+
<version>7.4.1</version>
6+
</dependency>
97
108
// Gradle
119
implementation 'com.flagsmith:flagsmith-java-client:7.4.1'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export default () =>
2-
'The package can be found at <a href="https://crates.io/crates/flagsmith">https://crates.io/crates/flagsmith</a>;'
2+
'The package can be found at https://crates.io/crates/flagsmith;'

0 commit comments

Comments
 (0)