Skip to content

Commit cdbf7d6

Browse files
authored
disableIdentityWidgetInjection — inject identity widget to admin (#46)
1 parent 1642a9c commit cdbf7d6

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

Diff for: .changeset/strong-icons-sort.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"astro-netlify-cms": patch
3+
---
4+
5+
Include identity widget on admin route even when `disableIdentityWidgetInjection` is set to `true`

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ previewStyles: [
129129
**Type:** `boolean`
130130
**Default:** `false`
131131

132-
By default, `astro-netlify-cms` injects Netlify’s [Identity Widget](https://github.com/netlify/netlify-identity-widget) across your site to enable authentication. If you are handling this in some other way, you can disable this by setting `disableIdentityWidgetInjection: true`.
132+
By default, `astro-netlify-cms` injects Netlify’s [Identity Widget](https://github.com/netlify/netlify-identity-widget) across your site to enable authentication. If you only want to inject the widget on the admin route, you can set `disableIdentityWidgetInjection: true`.
133133

134134
## To-do
135135

Diff for: integration/index.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export default function NetlifyCMS({
4646
injectScript,
4747
updateConfig,
4848
}) => {
49+
const identityWidgetScript = `import { initIdentity } from '${widgetPath}'; initIdentity('${adminPath}');`;
4950
const newConfig: AstroUserConfig = {
5051
// Default to the URL provided by Netlify when building there. See:
5152
// https://docs.netlify.com/configure-builds/environment-variables/#deploy-urls-and-metadata
@@ -56,6 +57,9 @@ export default function NetlifyCMS({
5657
AdminDashboard({
5758
config: cmsConfig,
5859
previewStyles,
60+
identityWidget: disableIdentityWidgetInjection
61+
? identityWidgetScript
62+
: '',
5963
}),
6064
],
6165
},
@@ -66,11 +70,9 @@ export default function NetlifyCMS({
6670
pattern: adminPath,
6771
entryPoint: 'astro-netlify-cms/admin-dashboard.astro',
6872
});
73+
6974
if (!disableIdentityWidgetInjection) {
70-
injectScript(
71-
'page',
72-
`import { initIdentity } from '${widgetPath}'; initIdentity('${adminPath}')`
73-
);
75+
injectScript('page', identityWidgetScript);
7476
}
7577
},
7678

Diff for: integration/vite-plugin-admin-dashboard.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ const resolvedVirtualModuleId = '\0' + virtualModuleId;
88
function generateVirtualConfigModule({
99
config,
1010
previewStyles = [],
11+
identityWidget,
1112
}: {
1213
config: CmsConfig;
1314
previewStyles: Array<string | [string] | [string, { raw: boolean }]>;
15+
identityWidget: string;
1416
}) {
1517
const imports: string[] = [];
1618
const styles: string[] = [];
@@ -29,6 +31,7 @@ function generateVirtualConfigModule({
2931

3032
return `${imports.join('\n')}
3133
import * as NCMS from 'netlify-cms-app';
34+
${identityWidget}
3235
export default {
3336
cms: NCMS,
3437
config: JSON.parse('${JSON.stringify(config)}'),
@@ -40,9 +43,11 @@ export default {
4043
export default function AdminDashboardPlugin({
4144
config,
4245
previewStyles,
46+
identityWidget,
4347
}: {
4448
config: Omit<CmsConfig, 'load_config_file' | 'local_backend'>;
4549
previewStyles: PreviewStyle[];
50+
identityWidget: string;
4651
}): Plugin {
4752
return {
4853
name: 'vite-plugin-netlify-cms-admin-dashboard',
@@ -53,7 +58,11 @@ export default function AdminDashboardPlugin({
5358

5459
load(id) {
5560
if (id === resolvedVirtualModuleId)
56-
return generateVirtualConfigModule({ config, previewStyles });
61+
return generateVirtualConfigModule({
62+
config,
63+
previewStyles,
64+
identityWidget,
65+
});
5766
},
5867
};
5968
}

0 commit comments

Comments
 (0)