@sentecacommerce-theme/lib 0.12.86-alpha.7 → 0.12.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", {
3
3
  });
4
4
  exports.BasicListingSEO = void 0;
5
5
  var _react = _interopRequireDefault(require("react"));
6
+ var _head = _interopRequireDefault(require("next/head"));
7
+ var _router = require("next/router");
6
8
  var _useConfig = require("../../hooks/useConfig");
7
9
  var _seo = require("../../seo");
8
10
  var _hooks = require("../hooks");
@@ -12,19 +14,33 @@ function _interopRequireDefault(obj) {
12
14
  };
13
15
  }
14
16
  var BasicListingSEO = function(param) {
15
- var _favorTitleTemplateOverMeta = param.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = param.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = param.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = param.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
16
- var ref, ref1, ref2, ref3, ref4, ref5;
17
- var ref6 = (0, _hooks).useListingMeta(), displayName = ref6.displayName, metaTitle = ref6.metaTitle, metaKeywords = ref6.metaKeywords, metaDescription = ref6.metaDescription, getAssetByKey = ref6.getAssetByKey;
18
- var image = (ref = getAssetByKey('image')) === null || ref === void 0 ? void 0 : (ref1 = ref.sources) === null || ref1 === void 0 ? void 0 : (ref2 = ref1[0]) === null || ref2 === void 0 ? void 0 : ref2.url;
17
+ var _favorTitleTemplateOverMeta = param.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = param.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = param.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = param.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate, _pageTemplate = param.pageTemplate, pageTemplate = _pageTemplate === void 0 ? ':page' : _pageTemplate;
18
+ var ref9, ref1, ref2, ref3, ref4, ref5, ref6;
19
+ var ref7 = (0, _hooks).useListingMeta(), displayName = ref7.displayName, metaTitle = ref7.metaTitle, metaKeywords = ref7.metaKeywords, metaDescription = ref7.metaDescription, getAssetByKey = ref7.getAssetByKey;
20
+ var ref8 = (0, _useConfig).useConfigState(), imagesConfig = ref8.imagesConfig, domain = ref8.domain;
21
+ var image = (ref9 = getAssetByKey('image')) === null || ref9 === void 0 ? void 0 : (ref1 = ref9.sources) === null || ref1 === void 0 ? void 0 : (ref2 = ref1[0]) === null || ref2 === void 0 ? void 0 : ref2.url;
19
22
  var topBanner = (ref3 = getAssetByKey('top-banner')) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.sources) === null || ref4 === void 0 ? void 0 : (ref5 = ref4[0]) === null || ref5 === void 0 ? void 0 : ref5.url;
20
- var imagesConfig = (0, _useConfig).useConfigState().imagesConfig;
23
+ var router = (0, _router).useRouter();
24
+ var url = "https://".concat(domain).concat(router === null || router === void 0 ? void 0 : (ref6 = router.asPath) === null || ref6 === void 0 ? void 0 : ref6.split('?')[0]);
25
+ var isSearchPage = router.asPath.includes('/search?q=');
26
+ var pagination = (0, _hooks).useListingPagination().pagination;
21
27
  var createTemplate = function(template) {
28
+ var ref;
22
29
  if (!template) return '';
23
- return template.replace(':title:', metaTitle || displayName).replace(':name:', displayName).replace(':description:', metaDescription);
30
+ return template.replace(':title:', metaTitle || displayName).replace(':name:', displayName).replace(':description:', metaDescription).replace(':page', Boolean(((ref = pagination) === null || ref === void 0 ? void 0 : ref.currentPage) - 1) ? "".concat(pagination === null || pagination === void 0 ? void 0 : pagination.currentPage) : '');
24
31
  };
25
32
  var formattedTitle = favorTitleTemplateOverMeta ? createTemplate(titleTemplate) : metaTitle || createTemplate(titleTemplate);
26
33
  var formattedDescription = favorDescriptionTemplateOverMeta ? createTemplate(descriptionTemplate) : metaDescription || createTemplate(descriptionTemplate);
27
- return(/*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_seo.BasicSEO, {
34
+ return(/*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_head.default, null, isSearchPage && /*#__PURE__*/ _react.default.createElement("meta", {
35
+ name: "robots",
36
+ content: "noindex"
37
+ }), (pagination === null || pagination === void 0 ? void 0 : pagination.hasPrevious) && /*#__PURE__*/ _react.default.createElement("link", {
38
+ rel: "prev",
39
+ href: "".concat(url, "?page=").concat(pagination.previousQuery.page)
40
+ }), (pagination === null || pagination === void 0 ? void 0 : pagination.hasNext) && /*#__PURE__*/ _react.default.createElement("link", {
41
+ rel: "next",
42
+ href: "".concat(url, "?page=").concat(pagination.nextQuery.page)
43
+ })), /*#__PURE__*/ _react.default.createElement(_seo.BasicSEO, {
28
44
  title: formattedTitle,
29
45
  keywords: metaKeywords,
30
46
  description: formattedDescription
@@ -1,26 +1,42 @@
1
1
  import React from 'react';
2
+ import Head from 'next/head';
3
+ import { useRouter } from 'next/router';
2
4
  import { useConfigState } from '../../hooks/useConfig';
3
5
  import { BasicSEO, OpenGraph } from '../../seo';
4
- import { useListingMeta } from '../hooks';
6
+ import { useListingMeta, useListingPagination } from '../hooks';
5
7
  /**
6
8
  * Template Options:
7
9
  * :title: -> is going to be replace with the title
8
10
  * :description: -> is going to be replace with the description
9
11
  * :name: -> is going to be replace with the name
10
12
  */ export var BasicListingSEO = function(param) {
11
- var _favorTitleTemplateOverMeta = param.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = param.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = param.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = param.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
12
- var ref, ref1, ref2, ref3, ref4, ref5;
13
- var ref6 = useListingMeta(), displayName = ref6.displayName, metaTitle = ref6.metaTitle, metaKeywords = ref6.metaKeywords, metaDescription = ref6.metaDescription, getAssetByKey = ref6.getAssetByKey;
14
- var image = (ref = getAssetByKey('image')) === null || ref === void 0 ? void 0 : (ref1 = ref.sources) === null || ref1 === void 0 ? void 0 : (ref2 = ref1[0]) === null || ref2 === void 0 ? void 0 : ref2.url;
13
+ var _favorTitleTemplateOverMeta = param.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = param.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = param.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = param.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate, _pageTemplate = param.pageTemplate, pageTemplate = _pageTemplate === void 0 ? ':page' : _pageTemplate;
14
+ var ref9, ref1, ref2, ref3, ref4, ref5, ref6;
15
+ var ref7 = useListingMeta(), displayName = ref7.displayName, metaTitle = ref7.metaTitle, metaKeywords = ref7.metaKeywords, metaDescription = ref7.metaDescription, getAssetByKey = ref7.getAssetByKey;
16
+ var ref8 = useConfigState(), imagesConfig = ref8.imagesConfig, domain = ref8.domain;
17
+ var image = (ref9 = getAssetByKey('image')) === null || ref9 === void 0 ? void 0 : (ref1 = ref9.sources) === null || ref1 === void 0 ? void 0 : (ref2 = ref1[0]) === null || ref2 === void 0 ? void 0 : ref2.url;
15
18
  var topBanner = (ref3 = getAssetByKey('top-banner')) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.sources) === null || ref4 === void 0 ? void 0 : (ref5 = ref4[0]) === null || ref5 === void 0 ? void 0 : ref5.url;
16
- var imagesConfig = useConfigState().imagesConfig;
19
+ var router = useRouter();
20
+ var url = "https://".concat(domain).concat(router === null || router === void 0 ? void 0 : (ref6 = router.asPath) === null || ref6 === void 0 ? void 0 : ref6.split('?')[0]);
21
+ var isSearchPage = router.asPath.includes('/search?q=');
22
+ var pagination = useListingPagination().pagination;
17
23
  var createTemplate = function(template) {
24
+ var ref;
18
25
  if (!template) return '';
19
- return template.replace(':title:', metaTitle || displayName).replace(':name:', displayName).replace(':description:', metaDescription);
26
+ return template.replace(':title:', metaTitle || displayName).replace(':name:', displayName).replace(':description:', metaDescription).replace(':page', Boolean(((ref = pagination) === null || ref === void 0 ? void 0 : ref.currentPage) - 1) ? "".concat(pagination === null || pagination === void 0 ? void 0 : pagination.currentPage) : '');
20
27
  };
21
28
  var formattedTitle = favorTitleTemplateOverMeta ? createTemplate(titleTemplate) : metaTitle || createTemplate(titleTemplate);
22
29
  var formattedDescription = favorDescriptionTemplateOverMeta ? createTemplate(descriptionTemplate) : metaDescription || createTemplate(descriptionTemplate);
23
- return(/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(BasicSEO, {
30
+ return(/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Head, null, isSearchPage && /*#__PURE__*/ React.createElement("meta", {
31
+ name: "robots",
32
+ content: "noindex"
33
+ }), (pagination === null || pagination === void 0 ? void 0 : pagination.hasPrevious) && /*#__PURE__*/ React.createElement("link", {
34
+ rel: "prev",
35
+ href: "".concat(url, "?page=").concat(pagination.previousQuery.page)
36
+ }), (pagination === null || pagination === void 0 ? void 0 : pagination.hasNext) && /*#__PURE__*/ React.createElement("link", {
37
+ rel: "next",
38
+ href: "".concat(url, "?page=").concat(pagination.nextQuery.page)
39
+ })), /*#__PURE__*/ React.createElement(BasicSEO, {
24
40
  title: formattedTitle,
25
41
  keywords: metaKeywords,
26
42
  description: formattedDescription
@@ -3,6 +3,8 @@ export declare type BasicListingSEOProps = {
3
3
  favorDescriptionTemplateOverMeta?: boolean;
4
4
  titleTemplate?: string;
5
5
  descriptionTemplate?: string;
6
+ pageTemplate?: string;
7
+ currentPageTemplate?: string;
6
8
  };
7
9
  /**
8
10
  * Template Options:
@@ -10,4 +12,4 @@ export declare type BasicListingSEOProps = {
10
12
  * :description: -> is going to be replace with the description
11
13
  * :name: -> is going to be replace with the name
12
14
  */
13
- export declare const BasicListingSEO: ({ favorTitleTemplateOverMeta, favorDescriptionTemplateOverMeta, titleTemplate, descriptionTemplate, }: BasicListingSEOProps) => JSX.Element;
15
+ export declare const BasicListingSEO: ({ favorTitleTemplateOverMeta, favorDescriptionTemplateOverMeta, titleTemplate, descriptionTemplate, pageTemplate, }: BasicListingSEOProps) => JSX.Element;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentecacommerce-theme/lib",
3
3
  "sideEffects": false,
4
- "version": "0.12.86-alpha.7",
4
+ "version": "0.12.89",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -31,13 +31,13 @@
31
31
  "watch:cjs": "swc src --out-dir dist/cjs -w",
32
32
  "watch:esm": "swc src --out-dir dist/esm --no-swcrc -w"
33
33
  },
34
- "gitHead": "2cc45e6514f382b744a031abb745659fadc59142",
34
+ "gitHead": "c33bd6a03d6f288f79cde744a489527bc0d48040",
35
35
  "peerDependencies": {
36
36
  "react-query": "^2.26.2"
37
37
  },
38
38
  "dependencies": {
39
- "@sentecacommerce-theme/base": "^0.12.85",
40
- "@sentecacommerce-theme/cms": "^0.12.86-alpha.3",
39
+ "@sentecacommerce-theme/base": "^0.12.89",
40
+ "@sentecacommerce-theme/cms": "^0.12.89",
41
41
  "@sentecacommerce/sdk": "2.0.161",
42
42
  "body-scroll-lock": "^3.1.5",
43
43
  "copy-to-clipboard": "^3.3.1",