This repository was archived by the owner on Feb 27, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ import queryDefaultSeo from '../_global/queryDefaultSeo'
2
+ import formatDefaultSeoData from '@/functions/formatDefaultSeoData'
3
+ import { initializeWpApollo } from '../connector'
4
+
5
+ // Define SEO for Frontend routes.
6
+ export const frontendPageSeo = {
7
+ search : {
8
+ title : 'Search' ,
9
+ description : 'Search page'
10
+ }
11
+ }
12
+
13
+ /**
14
+ * Retrieve data for Frontend-only route (i.e., page does not exist in WordPress).
15
+ *
16
+ * @author WebDevStudios
17
+ * @param {string } route Frontend route.
18
+ * @return {object } Object containing Apollo client instance and post data or error object.
19
+ */
20
+ export default async function getFrontendPage ( route ) {
21
+ // Get/create Apollo instance.
22
+ const apolloClient = initializeWpApollo ( )
23
+
24
+ // Set up return object.
25
+ const response = {
26
+ apolloClient,
27
+ error : false ,
28
+ errorMessage : null
29
+ }
30
+
31
+ // Execute query.
32
+ response . post = await apolloClient
33
+ . query ( { query : queryDefaultSeo } )
34
+ . then ( ( res ) => {
35
+ const { homepageSettings, siteSeo} = res . data
36
+
37
+ // Retrieve default SEO data.
38
+ response . defaultSeo = formatDefaultSeoData ( { homepageSettings, siteSeo} )
39
+
40
+ // Set route SEO.
41
+ return ! frontendPageSeo ?. [ route ]
42
+ ? null
43
+ : {
44
+ seo : {
45
+ title : frontendPageSeo [ route ] ?. title ,
46
+ description : frontendPageSeo [ route ] ?. description
47
+ }
48
+ }
49
+ } )
50
+ . catch ( ( error ) => {
51
+ response . error = true
52
+ response . errorMessage = error . message
53
+
54
+ return null
55
+ } )
56
+
57
+ return response
58
+ }
You can’t perform that action at this time.
0 commit comments