Skip to content

Commit a92a4b3

Browse files
committedFeb 25, 2025·
fix(angular): use DOCUMENT injection for client
1 parent 4fecbf5 commit a92a4b3

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed
 

Diff for: ‎examples/angular/src/app/app.config.client.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
22
import { appConfig } from './app.config';
3-
import { provideClientHead } from '@unhead/angular'
3+
import { provideClientHead } from '@unhead/angular/client'
44

55
const clientConfig: ApplicationConfig = {
66
providers: [

Diff for: ‎examples/angular/src/app/app.config.server.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { provideServerRendering } from '@angular/platform-server';
33
import { provideServerRoutesConfig } from '@angular/ssr';
44
import { appConfig } from './app.config';
55
import { serverRoutes } from './app.routes.server';
6-
import { provideServerHead } from '@unhead/angular'
6+
import { provideServerHead } from '@unhead/angular/server'
77

88
const serverConfig: ApplicationConfig = {
99
providers: [

Diff for: ‎packages/angular/client/src/client.ts

+15-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
import type { CreateClientHeadOptions } from 'unhead/types'
2-
import { makeEnvironmentProviders } from '@angular/core'
2+
import { DOCUMENT } from '@angular/common'
3+
import { inject, makeEnvironmentProviders } from '@angular/core'
34
import { UnheadInjectionToken } from '@unhead/angular'
45
import { createHead as _createClientHead, createDebouncedFn, renderDOMHead } from 'unhead/client'
56

67
export function provideClientHead(options: CreateClientHeadOptions = {}) {
7-
const head = _createClientHead({
8-
domOptions: {
9-
render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),
8+
return makeEnvironmentProviders([{
9+
provide: UnheadInjectionToken,
10+
useFactory: () => {
11+
const document = inject(DOCUMENT)
12+
const head = _createClientHead({
13+
document,
14+
domOptions: {
15+
render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),
16+
},
17+
...options,
18+
})
19+
return head
1020
},
11-
...options,
12-
})
13-
return makeEnvironmentProviders([
14-
{ provide: UnheadInjectionToken, useValue: head },
15-
])
21+
}])
1622
}

0 commit comments

Comments
 (0)
Please sign in to comment.