Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JSS][angular] dk-DA language is not rendered in connected and disconnected mode #734

Merged
merged 2 commits into from
Jun 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 76 additions & 1 deletion docs/data/routes/docs/nextjs/graphql/sample-app/en.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,79 @@ name: sample-app
routeTemplate: ./data/component-templates/article.yml
title: Sitecore GraphQL in the sample app
---
# Sitecore GraphQL in the sample app
# Sitecore GraphQL in the sample app

## Disconnected mode

If you created the app using `jss create my-app nextjs --fetchWith GraphQL`, your services will use the Sitecore GraphQL endpoint.

Sitecore GraphQL does not come with a disconnected mock service, so it can only operate with a Next.js app in Connected mode. The disconnected server emulates the REST services only.

Therefore, your service factories must return a REST service if you need to work in disconnected mode.

To return a REST service for disconnected development from your service factories, leverage the `JSS_MODE` environment variable, as follows:

1. Edit `src/lib/layout-service-factory.ts`:

```js
import {
LayoutService,
GraphQLLayoutService,
RestLayoutService,
JSS_MODE_DISCONNECTED,
} from '@sitecore-jss/sitecore-jss-nextjs';
import config from 'temp/config';

export class LayoutServiceFactory {
create(): LayoutService {
// Switch to REST endpoint if we are in disconnected mode
if (process.env.JSS_MODE === JSS_MODE_DISCONNECTED) {
return new RestLayoutService({
apiHost: `http://localhost:${process.env.PROXY_PORT || 3042}`,
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
});
}

return new GraphQLLayoutService({
endpoint: config.graphQLEndpoint,
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
});
}
}

export const layoutServiceFactory = new LayoutServiceFactory();
```

2. Edit `src/lib/dictionary-service-factory.ts`:
```js
import {
DictionaryService,
RestDictionaryService,
GraphQLDictionaryService,
JSS_MODE_DISCONNECTED,
} from '@sitecore-jss/sitecore-jss-nextjs';
import config from 'temp/config';

export class DictionaryServiceFactory {
create(): DictionaryService {
// Switch to REST endpoint if we are in disconnected mode
if (process.env.JSS_MODE === JSS_MODE_DISCONNECTED) {
return new RestDictionaryService({
apiHost: `http://localhost:${process.env.PROXY_PORT || 3042}`,
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
});
}

return new GraphQLDictionaryService({
endpoint: config.graphQLEndpoint,
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
});
}
}

export const dictionaryServiceFactory = new DictionaryServiceFactory();
```
8 changes: 4 additions & 4 deletions docs/src/app/components/Navigation/nextjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@ export default {
// url: 'edge-schema-introduction',
// displayName: 'Introduction to the Edge Schema',
//},
//{
// url: 'sample-app',
// displayName: 'Sitecore GraphQL in the sample app',
//},
{
url: 'sample-app',
displayName: 'Sitecore GraphQL in the sample app',
},
{
url: 'introspection',
displayName: 'Introspecting the GraphQL schema'
Expand Down
1 change: 1 addition & 0 deletions samples/angular/src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<base href="/">
<title>JSS Angular</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
Expand Down