@opinly/next 0.1.25 → 1.0.0-alpha.0
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.
- package/dist/config.cjs +16 -7
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +7 -2
- package/dist/config.d.ts +7 -2
- package/dist/config.js +16 -7
- package/dist/config.js.map +1 -1
- package/dist/index.cjs +33 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/json-ld.cjs +61 -0
- package/dist/json-ld.cjs.map +1 -0
- package/dist/json-ld.d.cts +17 -0
- package/dist/json-ld.d.ts +17 -0
- package/dist/json-ld.js +38 -0
- package/dist/json-ld.js.map +1 -0
- package/dist/utils/generate-metadata.cjs +23 -32
- package/dist/utils/generate-metadata.cjs.map +1 -1
- package/dist/utils/generate-metadata.d.cts +11 -2
- package/dist/utils/generate-metadata.d.ts +11 -2
- package/dist/utils/generate-metadata.js +23 -32
- package/dist/utils/generate-metadata.js.map +1 -1
- package/dist/utils/generate-sitemap-xml.cjs.map +1 -1
- package/dist/utils/generate-sitemap-xml.d.cts +5 -3
- package/dist/utils/generate-sitemap-xml.d.ts +5 -3
- package/dist/utils/generate-sitemap-xml.js.map +1 -1
- package/dist/utils/sdk-config.cjs +6 -2
- package/dist/utils/sdk-config.cjs.map +1 -1
- package/dist/utils/sdk-config.d.cts +4 -0
- package/dist/utils/sdk-config.d.ts +4 -0
- package/dist/utils/sdk-config.js +6 -2
- package/dist/utils/sdk-config.js.map +1 -1
- package/package.json +9 -23
- package/dist/components/author-page/_helpers/json-ld.cjs +0 -44
- package/dist/components/author-page/_helpers/json-ld.cjs.map +0 -1
- package/dist/components/author-page/_helpers/json-ld.d.cts +0 -8
- package/dist/components/author-page/_helpers/json-ld.d.ts +0 -8
- package/dist/components/author-page/_helpers/json-ld.js +0 -20
- package/dist/components/author-page/_helpers/json-ld.js.map +0 -1
- package/dist/components/author-page/index.cjs +0 -104
- package/dist/components/author-page/index.cjs.map +0 -1
- package/dist/components/author-page/index.d.cts +0 -10
- package/dist/components/author-page/index.d.ts +0 -10
- package/dist/components/author-page/index.js +0 -70
- package/dist/components/author-page/index.js.map +0 -1
- package/dist/components/authors-page/_helpers/json-ld.cjs +0 -53
- package/dist/components/authors-page/_helpers/json-ld.cjs.map +0 -1
- package/dist/components/authors-page/_helpers/json-ld.d.cts +0 -8
- package/dist/components/authors-page/_helpers/json-ld.d.ts +0 -8
- package/dist/components/authors-page/_helpers/json-ld.js +0 -29
- package/dist/components/authors-page/_helpers/json-ld.js.map +0 -1
- package/dist/components/authors-page/index.cjs +0 -121
- package/dist/components/authors-page/index.cjs.map +0 -1
- package/dist/components/authors-page/index.d.cts +0 -10
- package/dist/components/authors-page/index.d.ts +0 -10
- package/dist/components/authors-page/index.js +0 -87
- package/dist/components/authors-page/index.js.map +0 -1
- package/dist/components/blog-post/_components/content.cjs +0 -157
- package/dist/components/blog-post/_components/content.cjs.map +0 -1
- package/dist/components/blog-post/_components/content.d.cts +0 -10
- package/dist/components/blog-post/_components/content.d.ts +0 -10
- package/dist/components/blog-post/_components/content.js +0 -123
- package/dist/components/blog-post/_components/content.js.map +0 -1
- package/dist/components/blog-post/_components/faq.cjs +0 -39
- package/dist/components/blog-post/_components/faq.cjs.map +0 -1
- package/dist/components/blog-post/_components/faq.d.cts +0 -9
- package/dist/components/blog-post/_components/faq.d.ts +0 -9
- package/dist/components/blog-post/_components/faq.js +0 -15
- package/dist/components/blog-post/_components/faq.js.map +0 -1
- package/dist/components/blog-post/_components/share.cjs +0 -100
- package/dist/components/blog-post/_components/share.cjs.map +0 -1
- package/dist/components/blog-post/_components/share.d.cts +0 -9
- package/dist/components/blog-post/_components/share.d.ts +0 -9
- package/dist/components/blog-post/_components/share.js +0 -66
- package/dist/components/blog-post/_components/share.js.map +0 -1
- package/dist/components/blog-post/_components/table-of-contents.cjs +0 -111
- package/dist/components/blog-post/_components/table-of-contents.cjs.map +0 -1
- package/dist/components/blog-post/_components/table-of-contents.d.cts +0 -14
- package/dist/components/blog-post/_components/table-of-contents.d.ts +0 -14
- package/dist/components/blog-post/_components/table-of-contents.js +0 -77
- package/dist/components/blog-post/_components/table-of-contents.js.map +0 -1
- package/dist/components/blog-post/_helpers/calc-reading-time.cjs +0 -2
- package/dist/components/blog-post/_helpers/calc-reading-time.cjs.map +0 -1
- package/dist/components/blog-post/_helpers/calc-reading-time.d.cts +0 -2
- package/dist/components/blog-post/_helpers/calc-reading-time.d.ts +0 -2
- package/dist/components/blog-post/_helpers/calc-reading-time.js +0 -1
- package/dist/components/blog-post/_helpers/calc-reading-time.js.map +0 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs +0 -45
- package/dist/components/blog-post/_helpers/extract-headings.cjs.map +0 -1
- package/dist/components/blog-post/_helpers/extract-headings.d.cts +0 -9
- package/dist/components/blog-post/_helpers/extract-headings.d.ts +0 -9
- package/dist/components/blog-post/_helpers/extract-headings.js +0 -21
- package/dist/components/blog-post/_helpers/extract-headings.js.map +0 -1
- package/dist/components/blog-post/_helpers/json-ld.cjs +0 -162
- package/dist/components/blog-post/_helpers/json-ld.cjs.map +0 -1
- package/dist/components/blog-post/_helpers/json-ld.d.cts +0 -15
- package/dist/components/blog-post/_helpers/json-ld.d.ts +0 -15
- package/dist/components/blog-post/_helpers/json-ld.js +0 -135
- package/dist/components/blog-post/_helpers/json-ld.js.map +0 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs +0 -50
- package/dist/components/blog-post/_helpers/reading-time.cjs.map +0 -1
- package/dist/components/blog-post/_helpers/reading-time.d.cts +0 -6
- package/dist/components/blog-post/_helpers/reading-time.d.ts +0 -6
- package/dist/components/blog-post/_helpers/reading-time.js +0 -25
- package/dist/components/blog-post/_helpers/reading-time.js.map +0 -1
- package/dist/components/blog-post/_types/blog-post.cjs +0 -17
- package/dist/components/blog-post/_types/blog-post.cjs.map +0 -1
- package/dist/components/blog-post/_types/blog-post.d.cts +0 -7
- package/dist/components/blog-post/_types/blog-post.d.ts +0 -7
- package/dist/components/blog-post/_types/blog-post.js +0 -1
- package/dist/components/blog-post/_types/blog-post.js.map +0 -1
- package/dist/components/blog-post/_types/class-names.cjs +0 -17
- package/dist/components/blog-post/_types/class-names.cjs.map +0 -1
- package/dist/components/blog-post/_types/class-names.d.cts +0 -12
- package/dist/components/blog-post/_types/class-names.d.ts +0 -12
- package/dist/components/blog-post/_types/class-names.js +0 -1
- package/dist/components/blog-post/_types/class-names.js.map +0 -1
- package/dist/components/blog-post/index.cjs +0 -134
- package/dist/components/blog-post/index.cjs.map +0 -1
- package/dist/components/blog-post/index.d.cts +0 -15
- package/dist/components/blog-post/index.d.ts +0 -15
- package/dist/components/blog-post/index.js +0 -100
- package/dist/components/blog-post/index.js.map +0 -1
- package/dist/components/bread-crumbs.cjs +0 -60
- package/dist/components/bread-crumbs.cjs.map +0 -1
- package/dist/components/bread-crumbs.d.cts +0 -10
- package/dist/components/bread-crumbs.d.ts +0 -10
- package/dist/components/bread-crumbs.js +0 -26
- package/dist/components/bread-crumbs.js.map +0 -1
- package/dist/components/folder-page/_helpers/json-ld.cjs +0 -43
- package/dist/components/folder-page/_helpers/json-ld.cjs.map +0 -1
- package/dist/components/folder-page/_helpers/json-ld.d.cts +0 -8
- package/dist/components/folder-page/_helpers/json-ld.d.ts +0 -8
- package/dist/components/folder-page/_helpers/json-ld.js +0 -19
- package/dist/components/folder-page/_helpers/json-ld.js.map +0 -1
- package/dist/components/folder-page/index.cjs +0 -84
- package/dist/components/folder-page/index.cjs.map +0 -1
- package/dist/components/folder-page/index.d.cts +0 -10
- package/dist/components/folder-page/index.d.ts +0 -10
- package/dist/components/folder-page/index.js +0 -60
- package/dist/components/folder-page/index.js.map +0 -1
- package/dist/components/home-page/_helpers/json-ld.cjs +0 -43
- package/dist/components/home-page/_helpers/json-ld.cjs.map +0 -1
- package/dist/components/home-page/_helpers/json-ld.d.cts +0 -3
- package/dist/components/home-page/_helpers/json-ld.d.ts +0 -3
- package/dist/components/home-page/_helpers/json-ld.js +0 -19
- package/dist/components/home-page/_helpers/json-ld.js.map +0 -1
- package/dist/components/home-page/folders.cjs +0 -108
- package/dist/components/home-page/folders.cjs.map +0 -1
- package/dist/components/home-page/folders.d.cts +0 -11
- package/dist/components/home-page/folders.d.ts +0 -11
- package/dist/components/home-page/folders.js +0 -73
- package/dist/components/home-page/folders.js.map +0 -1
- package/dist/components/home-page/index.cjs +0 -50
- package/dist/components/home-page/index.cjs.map +0 -1
- package/dist/components/home-page/index.d.cts +0 -14
- package/dist/components/home-page/index.d.ts +0 -14
- package/dist/components/home-page/index.js +0 -26
- package/dist/components/home-page/index.js.map +0 -1
- package/dist/components/home-page/pagination.cjs +0 -97
- package/dist/components/home-page/pagination.cjs.map +0 -1
- package/dist/components/home-page/pagination.d.cts +0 -9
- package/dist/components/home-page/pagination.d.ts +0 -9
- package/dist/components/home-page/pagination.js +0 -63
- package/dist/components/home-page/pagination.js.map +0 -1
- package/dist/components/home-page/top-posts.cjs +0 -35
- package/dist/components/home-page/top-posts.cjs.map +0 -1
- package/dist/components/home-page/top-posts.d.cts +0 -10
- package/dist/components/home-page/top-posts.d.ts +0 -10
- package/dist/components/home-page/top-posts.js +0 -11
- package/dist/components/home-page/top-posts.js.map +0 -1
- package/dist/components/json-ld.cjs +0 -92
- package/dist/components/json-ld.cjs.map +0 -1
- package/dist/components/json-ld.d.cts +0 -13
- package/dist/components/json-ld.d.ts +0 -13
- package/dist/components/json-ld.js +0 -57
- package/dist/components/json-ld.js.map +0 -1
- package/dist/components/opinly-blog.cjs +0 -59
- package/dist/components/opinly-blog.cjs.map +0 -1
- package/dist/components/opinly-blog.d.cts +0 -16
- package/dist/components/opinly-blog.d.ts +0 -16
- package/dist/components/opinly-blog.js +0 -35
- package/dist/components/opinly-blog.js.map +0 -1
- package/dist/components/post-preview.cjs +0 -114
- package/dist/components/post-preview.cjs.map +0 -1
- package/dist/components/post-preview.d.cts +0 -10
- package/dist/components/post-preview.d.ts +0 -10
- package/dist/components/post-preview.js +0 -79
- package/dist/components/post-preview.js.map +0 -1
- package/dist/pages/index.cjs +0 -23
- package/dist/pages/index.cjs.map +0 -1
- package/dist/pages/index.d.cts +0 -3
- package/dist/pages/index.d.ts +0 -3
- package/dist/pages/index.js +0 -2
- package/dist/pages/index.js.map +0 -1
- package/dist/pages/opinly-blog-pages.cjs +0 -127
- package/dist/pages/opinly-blog-pages.cjs.map +0 -1
- package/dist/pages/opinly-blog-pages.d.cts +0 -9
- package/dist/pages/opinly-blog-pages.d.ts +0 -9
- package/dist/pages/opinly-blog-pages.js +0 -103
- package/dist/pages/opinly-blog-pages.js.map +0 -1
- package/dist/utils/json-ld.cjs +0 -2
- package/dist/utils/json-ld.cjs.map +0 -1
- package/dist/utils/json-ld.d.cts +0 -2
- package/dist/utils/json-ld.d.ts +0 -2
- package/dist/utils/json-ld.js +0 -1
- package/dist/utils/json-ld.js.map +0 -1
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { opinlyConfig } from "../../../utils/sdk-config";
|
|
2
|
-
const folderCollectionJSONLD = (folder) => {
|
|
3
|
-
const jsonLD = {
|
|
4
|
-
"@context": "https://schema.org",
|
|
5
|
-
"@type": "CollectionPage",
|
|
6
|
-
name: folder.name,
|
|
7
|
-
description: folder.description || `Explore articles in ${folder.name}.`,
|
|
8
|
-
url: `${opinlyConfig.blogUrl}/${folder.slug}`,
|
|
9
|
-
publisher: {
|
|
10
|
-
"@type": "Organization",
|
|
11
|
-
name: opinlyConfig.siteName
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
return JSON.stringify(jsonLD);
|
|
15
|
-
};
|
|
16
|
-
export {
|
|
17
|
-
folderCollectionJSONLD
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=json-ld.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/folder-page/_helpers/json-ld.ts"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { CollectionPage, WithContext } from \"schema-dts\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\n\ntype FolderRes = Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"folder\" }\n>[\"data\"];\n\nexport const folderCollectionJSONLD = (folder: FolderRes) => {\n const jsonLD: WithContext<CollectionPage> = {\n \"@context\": \"https://schema.org\",\n \"@type\": \"CollectionPage\",\n name: folder.name,\n description: folder.description || `Explore articles in ${folder.name}.`,\n url: `${opinlyConfig.blogUrl}/${folder.slug}`,\n publisher: {\n \"@type\": \"Organization\",\n name: opinlyConfig.siteName,\n },\n };\n\n return JSON.stringify(jsonLD);\n};\n"],"mappings":"AAEA,SAAS,oBAAoB;AAOtB,MAAM,yBAAyB,CAAC,WAAsB;AAC3D,QAAM,SAAsC;AAAA,IAC1C,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM,OAAO;AAAA,IACb,aAAa,OAAO,eAAe,uBAAuB,OAAO,IAAI;AAAA,IACrE,KAAK,GAAG,aAAa,OAAO,IAAI,OAAO,IAAI;AAAA,IAC3C,WAAW;AAAA,MACT,SAAS;AAAA,MACT,MAAM,aAAa;AAAA,IACrB;AAAA,EACF;AAEA,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var folder_page_exports = {};
|
|
20
|
-
__export(folder_page_exports, {
|
|
21
|
-
FolderPage: () => FolderPage
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(folder_page_exports);
|
|
24
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
-
var import_post_preview = require("../post-preview");
|
|
26
|
-
var import_bread_crumbs = require("../bread-crumbs");
|
|
27
|
-
var import_sdk_config = require("../../utils/sdk-config");
|
|
28
|
-
var import_json_ld = require("../json-ld");
|
|
29
|
-
const FolderPage = ({
|
|
30
|
-
folder
|
|
31
|
-
}) => {
|
|
32
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
33
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
34
|
-
import_json_ld.OpinlyBreadCrumbJsonLd,
|
|
35
|
-
{
|
|
36
|
-
items: [
|
|
37
|
-
{
|
|
38
|
-
slugNoPrefixSlash: folder.slug,
|
|
39
|
-
name: folder.name
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
),
|
|
44
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-6xl mx-auto px-4 py-10", children: [
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
46
|
-
import_bread_crumbs.BreadCrumbs,
|
|
47
|
-
{
|
|
48
|
-
breadcrumbs: [
|
|
49
|
-
{
|
|
50
|
-
name: folder.name,
|
|
51
|
-
url: `${import_sdk_config.opinlyConfig.blogUrl}/${folder.slug}`
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
),
|
|
56
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-4xl font-bold mb-2", children: folder.name }),
|
|
57
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground max-w-2xl mb-8", children: folder.description || `Explore articles about ${folder.name}.` }),
|
|
58
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: [
|
|
59
|
-
folder.posts.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-muted-foreground", children: "No posts added yet" }),
|
|
60
|
-
folder.posts.map((post) => {
|
|
61
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_preview.PostPreview, { post }, post.slug);
|
|
62
|
-
})
|
|
63
|
-
] })
|
|
64
|
-
] })
|
|
65
|
-
] });
|
|
66
|
-
};
|
|
67
|
-
function formatDate(dateStr) {
|
|
68
|
-
return new Date(dateStr).toLocaleDateString("en-GB", {
|
|
69
|
-
day: "2-digit",
|
|
70
|
-
month: "short",
|
|
71
|
-
year: "numeric"
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
function formatMinutes(description) {
|
|
75
|
-
if (!description) return "5 min read";
|
|
76
|
-
const words = description.split(" ").length;
|
|
77
|
-
const mins = Math.ceil(words / 200);
|
|
78
|
-
return `${mins} min read`;
|
|
79
|
-
}
|
|
80
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
-
0 && (module.exports = {
|
|
82
|
-
FolderPage
|
|
83
|
-
});
|
|
84
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/folder-page/index.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"../post-preview\";\nimport { BreadCrumbs } from \"../bread-crumbs\";\nimport { BreadcrumbJsonLd } from \"next-seo\";\nimport { opinlyConfig } from \"../../utils/sdk-config\";\nimport { OpinlyBreadCrumbJsonLd } from \"../json-ld\";\n\nexport const FolderPage = ({\n folder,\n}: {\n folder: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"folder\" }\n >[\"data\"];\n}) => {\n return (\n <>\n <OpinlyBreadCrumbJsonLd\n items={[\n {\n slugNoPrefixSlash: folder.slug,\n name: folder.name,\n },\n ]}\n />\n\n <div className=\"max-w-6xl mx-auto px-4 py-10\">\n <BreadCrumbs\n breadcrumbs={[\n {\n name: folder.name,\n url: `${opinlyConfig.blogUrl}/${folder.slug}`,\n },\n ]}\n />\n\n <h1 className=\"text-4xl font-bold mb-2\">{folder.name}</h1>\n <p className=\"text-muted-foreground max-w-2xl mb-8\">\n {folder.description || `Explore articles about ${folder.name}.`}\n </p>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8\">\n {folder.posts.length === 0 && (\n <div className=\"text-muted-foreground\">No posts added yet</div>\n )}\n {folder.posts.map((post) => {\n return <PostPreview key={post.slug} post={post} />;\n })}\n </div>\n </div>\n </>\n );\n};\n\nfunction formatDate(dateStr: string) {\n return new Date(dateStr).toLocaleDateString(\"en-GB\", {\n day: \"2-digit\",\n month: \"short\",\n year: \"numeric\",\n });\n}\n\nfunction formatMinutes(description: string | null) {\n // Fake estimate based on length of description\n if (!description) return \"5 min read\";\n const words = description.split(\" \").length;\n const mins = Math.ceil(words / 200);\n return `${mins} min read`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBI;AAfJ,0BAA4B;AAC5B,0BAA4B;AAE5B,wBAA6B;AAC7B,qBAAuC;AAEhC,MAAM,aAAa,CAAC;AAAA,EACzB;AACF,MAKM;AACJ,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL;AAAA,YACE,mBAAmB,OAAO;AAAA,YAC1B,MAAM,OAAO;AAAA,UACf;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEA,6CAAC,SAAI,WAAU,gCACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAa;AAAA,YACX;AAAA,cACE,MAAM,OAAO;AAAA,cACb,KAAK,GAAG,+BAAa,OAAO,IAAI,OAAO,IAAI;AAAA,YAC7C;AAAA,UACF;AAAA;AAAA,MACF;AAAA,MAEA,4CAAC,QAAG,WAAU,2BAA2B,iBAAO,MAAK;AAAA,MACrD,4CAAC,OAAE,WAAU,wCACV,iBAAO,eAAe,0BAA0B,OAAO,IAAI,KAC9D;AAAA,MAEA,6CAAC,SAAI,WAAU,wDACZ;AAAA,eAAO,MAAM,WAAW,KACvB,4CAAC,SAAI,WAAU,yBAAwB,gCAAkB;AAAA,QAE1D,OAAO,MAAM,IAAI,CAAC,SAAS;AAC1B,iBAAO,4CAAC,mCAA4B,QAAX,KAAK,IAAkB;AAAA,QAClD,CAAC;AAAA,SACH;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,SAAS,WAAW,SAAiB;AACnC,SAAO,IAAI,KAAK,OAAO,EAAE,mBAAmB,SAAS;AAAA,IACnD,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AACH;AAEA,SAAS,cAAc,aAA4B;AAEjD,MAAI,CAAC,YAAa,QAAO;AACzB,QAAM,QAAQ,YAAY,MAAM,GAAG,EAAE;AACrC,QAAM,OAAO,KAAK,KAAK,QAAQ,GAAG;AAClC,SAAO,GAAG,IAAI;AAChB;","names":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
declare const FolderPage: ({ folder, }: {
|
|
5
|
-
folder: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
6
|
-
type: "folder";
|
|
7
|
-
}>["data"];
|
|
8
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
9
|
-
|
|
10
|
-
export { FolderPage };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
declare const FolderPage: ({ folder, }: {
|
|
5
|
-
folder: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
6
|
-
type: "folder";
|
|
7
|
-
}>["data"];
|
|
8
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
9
|
-
|
|
10
|
-
export { FolderPage };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { PostPreview } from "../post-preview";
|
|
3
|
-
import { BreadCrumbs } from "../bread-crumbs";
|
|
4
|
-
import { opinlyConfig } from "../../utils/sdk-config";
|
|
5
|
-
import { OpinlyBreadCrumbJsonLd } from "../json-ld";
|
|
6
|
-
const FolderPage = ({
|
|
7
|
-
folder
|
|
8
|
-
}) => {
|
|
9
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10
|
-
/* @__PURE__ */ jsx(
|
|
11
|
-
OpinlyBreadCrumbJsonLd,
|
|
12
|
-
{
|
|
13
|
-
items: [
|
|
14
|
-
{
|
|
15
|
-
slugNoPrefixSlash: folder.slug,
|
|
16
|
-
name: folder.name
|
|
17
|
-
}
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
),
|
|
21
|
-
/* @__PURE__ */ jsxs("div", { className: "max-w-6xl mx-auto px-4 py-10", children: [
|
|
22
|
-
/* @__PURE__ */ jsx(
|
|
23
|
-
BreadCrumbs,
|
|
24
|
-
{
|
|
25
|
-
breadcrumbs: [
|
|
26
|
-
{
|
|
27
|
-
name: folder.name,
|
|
28
|
-
url: `${opinlyConfig.blogUrl}/${folder.slug}`
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
),
|
|
33
|
-
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold mb-2", children: folder.name }),
|
|
34
|
-
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground max-w-2xl mb-8", children: folder.description || `Explore articles about ${folder.name}.` }),
|
|
35
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: [
|
|
36
|
-
folder.posts.length === 0 && /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: "No posts added yet" }),
|
|
37
|
-
folder.posts.map((post) => {
|
|
38
|
-
return /* @__PURE__ */ jsx(PostPreview, { post }, post.slug);
|
|
39
|
-
})
|
|
40
|
-
] })
|
|
41
|
-
] })
|
|
42
|
-
] });
|
|
43
|
-
};
|
|
44
|
-
function formatDate(dateStr) {
|
|
45
|
-
return new Date(dateStr).toLocaleDateString("en-GB", {
|
|
46
|
-
day: "2-digit",
|
|
47
|
-
month: "short",
|
|
48
|
-
year: "numeric"
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
function formatMinutes(description) {
|
|
52
|
-
if (!description) return "5 min read";
|
|
53
|
-
const words = description.split(" ").length;
|
|
54
|
-
const mins = Math.ceil(words / 200);
|
|
55
|
-
return `${mins} min read`;
|
|
56
|
-
}
|
|
57
|
-
export {
|
|
58
|
-
FolderPage
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/folder-page/index.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"../post-preview\";\nimport { BreadCrumbs } from \"../bread-crumbs\";\nimport { BreadcrumbJsonLd } from \"next-seo\";\nimport { opinlyConfig } from \"../../utils/sdk-config\";\nimport { OpinlyBreadCrumbJsonLd } from \"../json-ld\";\n\nexport const FolderPage = ({\n folder,\n}: {\n folder: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"folder\" }\n >[\"data\"];\n}) => {\n return (\n <>\n <OpinlyBreadCrumbJsonLd\n items={[\n {\n slugNoPrefixSlash: folder.slug,\n name: folder.name,\n },\n ]}\n />\n\n <div className=\"max-w-6xl mx-auto px-4 py-10\">\n <BreadCrumbs\n breadcrumbs={[\n {\n name: folder.name,\n url: `${opinlyConfig.blogUrl}/${folder.slug}`,\n },\n ]}\n />\n\n <h1 className=\"text-4xl font-bold mb-2\">{folder.name}</h1>\n <p className=\"text-muted-foreground max-w-2xl mb-8\">\n {folder.description || `Explore articles about ${folder.name}.`}\n </p>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8\">\n {folder.posts.length === 0 && (\n <div className=\"text-muted-foreground\">No posts added yet</div>\n )}\n {folder.posts.map((post) => {\n return <PostPreview key={post.slug} post={post} />;\n })}\n </div>\n </div>\n </>\n );\n};\n\nfunction formatDate(dateStr: string) {\n return new Date(dateStr).toLocaleDateString(\"en-GB\", {\n day: \"2-digit\",\n month: \"short\",\n year: \"numeric\",\n });\n}\n\nfunction formatMinutes(description: string | null) {\n // Fake estimate based on length of description\n if (!description) return \"5 min read\";\n const words = description.split(\" \").length;\n const mins = Math.ceil(words / 200);\n return `${mins} min read`;\n}\n"],"mappings":"AAgBI,mBACE,KAwBE,YAzBJ;AAfJ,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAE5B,SAAS,oBAAoB;AAC7B,SAAS,8BAA8B;AAEhC,MAAM,aAAa,CAAC;AAAA,EACzB;AACF,MAKM;AACJ,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL;AAAA,YACE,mBAAmB,OAAO;AAAA,YAC1B,MAAM,OAAO;AAAA,UACf;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEA,qBAAC,SAAI,WAAU,gCACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAa;AAAA,YACX;AAAA,cACE,MAAM,OAAO;AAAA,cACb,KAAK,GAAG,aAAa,OAAO,IAAI,OAAO,IAAI;AAAA,YAC7C;AAAA,UACF;AAAA;AAAA,MACF;AAAA,MAEA,oBAAC,QAAG,WAAU,2BAA2B,iBAAO,MAAK;AAAA,MACrD,oBAAC,OAAE,WAAU,wCACV,iBAAO,eAAe,0BAA0B,OAAO,IAAI,KAC9D;AAAA,MAEA,qBAAC,SAAI,WAAU,wDACZ;AAAA,eAAO,MAAM,WAAW,KACvB,oBAAC,SAAI,WAAU,yBAAwB,gCAAkB;AAAA,QAE1D,OAAO,MAAM,IAAI,CAAC,SAAS;AAC1B,iBAAO,oBAAC,eAA4B,QAAX,KAAK,IAAkB;AAAA,QAClD,CAAC;AAAA,SACH;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,SAAS,WAAW,SAAiB;AACnC,SAAO,IAAI,KAAK,OAAO,EAAE,mBAAmB,SAAS;AAAA,IACnD,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AACH;AAEA,SAAS,cAAc,aAA4B;AAEjD,MAAI,CAAC,YAAa,QAAO;AACzB,QAAM,QAAQ,YAAY,MAAM,GAAG,EAAE;AACrC,QAAM,OAAO,KAAK,KAAK,QAAQ,GAAG;AAClC,SAAO,GAAG,IAAI;AAChB;","names":[]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var json_ld_exports = {};
|
|
20
|
-
__export(json_ld_exports, {
|
|
21
|
-
blogJSONLD: () => blogJSONLD
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(json_ld_exports);
|
|
24
|
-
var import_sdk_config = require("../../../utils/sdk-config");
|
|
25
|
-
const blogJSONLD = () => {
|
|
26
|
-
const jsonLD = {
|
|
27
|
-
"@context": "https://schema.org",
|
|
28
|
-
"@type": "Blog",
|
|
29
|
-
name: import_sdk_config.opinlyConfig.siteName,
|
|
30
|
-
description: `Latest news and insights from ${import_sdk_config.opinlyConfig.siteName}`,
|
|
31
|
-
url: import_sdk_config.opinlyConfig.blogUrl,
|
|
32
|
-
publisher: {
|
|
33
|
-
"@type": "Organization",
|
|
34
|
-
name: import_sdk_config.opinlyConfig.siteName
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
return JSON.stringify(jsonLD);
|
|
38
|
-
};
|
|
39
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
-
0 && (module.exports = {
|
|
41
|
-
blogJSONLD
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=json-ld.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/home-page/_helpers/json-ld.ts"],"sourcesContent":["import { Blog, WithContext } from \"schema-dts\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\n\nexport const blogJSONLD = () => {\n const jsonLD: WithContext<Blog> = {\n \"@context\": \"https://schema.org\",\n \"@type\": \"Blog\",\n name: opinlyConfig.siteName,\n description: `Latest news and insights from ${opinlyConfig.siteName}`,\n url: opinlyConfig.blogUrl,\n publisher: {\n \"@type\": \"Organization\",\n name: opinlyConfig.siteName,\n },\n };\n\n return JSON.stringify(jsonLD);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAA6B;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM,SAA4B;AAAA,IAChC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM,+BAAa;AAAA,IACnB,aAAa,iCAAiC,+BAAa,QAAQ;AAAA,IACnE,KAAK,+BAAa;AAAA,IAClB,WAAW;AAAA,MACT,SAAS;AAAA,MACT,MAAM,+BAAa;AAAA,IACrB;AAAA,EACF;AAEA,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { opinlyConfig } from "../../../utils/sdk-config";
|
|
2
|
-
const blogJSONLD = () => {
|
|
3
|
-
const jsonLD = {
|
|
4
|
-
"@context": "https://schema.org",
|
|
5
|
-
"@type": "Blog",
|
|
6
|
-
name: opinlyConfig.siteName,
|
|
7
|
-
description: `Latest news and insights from ${opinlyConfig.siteName}`,
|
|
8
|
-
url: opinlyConfig.blogUrl,
|
|
9
|
-
publisher: {
|
|
10
|
-
"@type": "Organization",
|
|
11
|
-
name: opinlyConfig.siteName
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
return JSON.stringify(jsonLD);
|
|
15
|
-
};
|
|
16
|
-
export {
|
|
17
|
-
blogJSONLD
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=json-ld.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/home-page/_helpers/json-ld.ts"],"sourcesContent":["import { Blog, WithContext } from \"schema-dts\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\n\nexport const blogJSONLD = () => {\n const jsonLD: WithContext<Blog> = {\n \"@context\": \"https://schema.org\",\n \"@type\": \"Blog\",\n name: opinlyConfig.siteName,\n description: `Latest news and insights from ${opinlyConfig.siteName}`,\n url: opinlyConfig.blogUrl,\n publisher: {\n \"@type\": \"Organization\",\n name: opinlyConfig.siteName,\n },\n };\n\n return JSON.stringify(jsonLD);\n};\n"],"mappings":"AACA,SAAS,oBAAoB;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM,SAA4B;AAAA,IAChC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM,aAAa;AAAA,IACnB,aAAa,iCAAiC,aAAa,QAAQ;AAAA,IACnE,KAAK,aAAa;AAAA,IAClB,WAAW;AAAA,MACT,SAAS;AAAA,MACT,MAAM,aAAa;AAAA,IACrB;AAAA,EACF;AAEA,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var folders_exports = {};
|
|
30
|
-
__export(folders_exports, {
|
|
31
|
-
HomePageFolders: () => HomePageFolders,
|
|
32
|
-
HomePageFoldersSkeleton: () => HomePageFoldersSkeleton
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(folders_exports);
|
|
35
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
-
var import_link = __toESM(require("next/link"), 1);
|
|
37
|
-
var import_post_preview = require("../post-preview");
|
|
38
|
-
var import_lucide_react = require("lucide-react");
|
|
39
|
-
const HomePageFoldersSkeleton = () => {
|
|
40
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: Array(2).fill(null).map((_, sectionIdx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-4 mb-5", children: [
|
|
41
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "animate-pulse space-y-2", children: [
|
|
42
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
43
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
44
|
-
] }),
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: [
|
|
46
|
-
Array(3).fill(null).map((__, postIdx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "animate-pulse space-y-3", children: [
|
|
47
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }),
|
|
48
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
49
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" })
|
|
50
|
-
] }, postIdx)),
|
|
51
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex justify-center items-center animate-pulse", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-48 bg-gray-200 text-op-heading rounded" }) })
|
|
52
|
-
] })
|
|
53
|
-
] }, sectionIdx)) });
|
|
54
|
-
};
|
|
55
|
-
const HomePageFolders = ({
|
|
56
|
-
folders
|
|
57
|
-
}) => {
|
|
58
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-10 mt-20", children: folders.map((folder) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-4", children: [
|
|
59
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-2 mb-20", children: [
|
|
60
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
61
|
-
import_link.default,
|
|
62
|
-
{
|
|
63
|
-
href: `/blog/${folder.slug}`,
|
|
64
|
-
className: "text-3xl",
|
|
65
|
-
children: folder.title
|
|
66
|
-
},
|
|
67
|
-
folder.slug
|
|
68
|
-
),
|
|
69
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-op-muted", children: folder.description })
|
|
70
|
-
] }),
|
|
71
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20", children: [
|
|
72
|
-
folder.posts.filter((post) => post !== null).map((post) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
73
|
-
import_post_preview.PostPreview,
|
|
74
|
-
{
|
|
75
|
-
post: {
|
|
76
|
-
...post,
|
|
77
|
-
folder: {
|
|
78
|
-
name: folder.title,
|
|
79
|
-
slug: folder.slug,
|
|
80
|
-
description: folder.description || ""
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
post.slug
|
|
85
|
-
)),
|
|
86
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex justify-center w-full h-full items-center ", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
87
|
-
import_link.default,
|
|
88
|
-
{
|
|
89
|
-
href: `/blog/${folder.slug}`,
|
|
90
|
-
className: "flex items-center gap-2",
|
|
91
|
-
children: [
|
|
92
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
93
|
-
"View all posts in ",
|
|
94
|
-
folder.title
|
|
95
|
-
] }),
|
|
96
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "w-4 h-4" })
|
|
97
|
-
]
|
|
98
|
-
}
|
|
99
|
-
) })
|
|
100
|
-
] })
|
|
101
|
-
] })) });
|
|
102
|
-
};
|
|
103
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
104
|
-
0 && (module.exports = {
|
|
105
|
-
HomePageFolders,
|
|
106
|
-
HomePageFoldersSkeleton
|
|
107
|
-
});
|
|
108
|
-
//# sourceMappingURL=folders.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/folders.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { PostPreview } from \"../post-preview\";\nimport { ArrowRight } from \"lucide-react\";\nimport { Opinly } from \"@opinly/backend\";\n\nexport const HomePageFoldersSkeleton = () => {\n return (\n <>\n {Array(2) // render 2 folder sections\n .fill(null)\n .map((_, sectionIdx) => (\n <div key={sectionIdx} className=\"space-y-4 mb-5\">\n {/* Folder title + description */}\n <div className=\"animate-pulse space-y-2\">\n <div className=\"h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Posts grid */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {Array(3) // 3 post placeholders\n .fill(null)\n .map((__, postIdx) => (\n <div key={postIdx} className=\"animate-pulse space-y-3\">\n {/* Image */}\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n {/* Title bar */}\n <div className=\"h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded\" />\n {/* Description line */}\n <div className=\"h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n\n {/* “View all” link */}\n <div className=\"flex justify-center items-center animate-pulse\">\n <div className=\"h-4 w-48 bg-gray-200 text-op-heading rounded\" />\n </div>\n </div>\n </div>\n ))}\n </>\n );\n};\n\nexport const HomePageFolders = ({\n folders,\n}: {\n folders: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"][\"folders\"];\n}) => {\n return (\n <div className=\"flex flex-col gap-10 mt-20\">\n {folders.map((folder) => (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-2 mb-20\">\n <Link\n key={folder.slug}\n href={`/blog/${folder.slug}`}\n className=\"text-3xl\"\n >\n {folder.title}\n </Link>\n <p className=\"text-sm text-op-muted\">{folder.description}</p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20\">\n {folder.posts\n .filter((post) => post !== null)\n .map((post) => (\n <PostPreview\n key={post.slug}\n post={{\n ...post,\n folder: {\n name: folder.title,\n slug: folder.slug,\n description: folder.description || \"\",\n },\n }}\n />\n ))}\n <div className=\"flex justify-center w-full h-full items-center \">\n <Link\n href={`/blog/${folder.slug}`}\n className=\"flex items-center gap-2\"\n >\n <span>View all posts in {folder.title}</span>\n <ArrowRight className=\"w-4 h-4\" />\n </Link>\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOI;AAPJ,kBAAiB;AACjB,0BAA4B;AAC5B,0BAA2B;AAGpB,MAAM,0BAA0B,MAAM;AAC3C,SACE,2EACG,gBAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,GAAG,eACP,6CAAC,SAAqB,WAAU,kBAE9B;AAAA,iDAAC,SAAI,WAAU,2BACb;AAAA,kDAAC,SAAI,WAAU,kDAAiD;AAAA,MAChE,4CAAC,SAAI,WAAU,kDAAiD;AAAA,OAClE;AAAA,IAGA,6CAAC,SAAI,WAAU,yDACZ;AAAA,YAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,IAAI,YACR,6CAAC,SAAkB,WAAU,2BAE3B;AAAA,oDAAC,SAAI,WAAU,uDAAsD;AAAA,QAErE,4CAAC,SAAI,WAAU,kDAAiD;AAAA,QAEhE,4CAAC,SAAI,WAAU,mDAAkD;AAAA,WANzD,OAOV,CACD;AAAA,MAGH,4CAAC,SAAI,WAAU,kDACb,sDAAC,SAAI,WAAU,gDAA+C,GAChE;AAAA,OACF;AAAA,OA1BQ,UA2BV,CACD,GACL;AAEJ;AAEO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AACF,MAKM;AACJ,SACE,4CAAC,SAAI,WAAU,8BACZ,kBAAQ,IAAI,CAAC,WACZ,6CAAC,SAAI,WAAU,aACb;AAAA,iDAAC,SAAI,WAAU,6BACb;AAAA;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UAEC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAET,iBAAO;AAAA;AAAA,QAJH,OAAO;AAAA,MAKd;AAAA,MACA,4CAAC,OAAE,WAAU,yBAAyB,iBAAO,aAAY;AAAA,OAC3D;AAAA,IACA,6CAAC,SAAI,WAAU,+DACZ;AAAA,aAAO,MACL,OAAO,CAAC,SAAS,SAAS,IAAI,EAC9B,IAAI,CAAC,SACJ;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,YACJ,GAAG;AAAA,YACH,QAAQ;AAAA,cACN,MAAM,OAAO;AAAA,cACb,MAAM,OAAO;AAAA,cACb,aAAa,OAAO,eAAe;AAAA,YACrC;AAAA,UACF;AAAA;AAAA,QARK,KAAK;AAAA,MASZ,CACD;AAAA,MACH,4CAAC,SAAI,WAAU,mDACb;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UACC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAEV;AAAA,yDAAC,UAAK;AAAA;AAAA,cAAmB,OAAO;AAAA,eAAM;AAAA,YACtC,4CAAC,kCAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC,GACF;AAAA,OACF;AAAA,KACF,CACD,GACH;AAEJ;","names":["Link"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
|
|
5
|
-
declare const HomePageFolders: ({ folders, }: {
|
|
6
|
-
folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
7
|
-
type: "home";
|
|
8
|
-
}>["data"]["folders"];
|
|
9
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
10
|
-
|
|
11
|
-
export { HomePageFolders, HomePageFoldersSkeleton };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
|
|
5
|
-
declare const HomePageFolders: ({ folders, }: {
|
|
6
|
-
folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
7
|
-
type: "home";
|
|
8
|
-
}>["data"]["folders"];
|
|
9
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
10
|
-
|
|
11
|
-
export { HomePageFolders, HomePageFoldersSkeleton };
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import Link from "next/link";
|
|
3
|
-
import { PostPreview } from "../post-preview";
|
|
4
|
-
import { ArrowRight } from "lucide-react";
|
|
5
|
-
const HomePageFoldersSkeleton = () => {
|
|
6
|
-
return /* @__PURE__ */ jsx(Fragment, { children: Array(2).fill(null).map((_, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 mb-5", children: [
|
|
7
|
-
/* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-2", children: [
|
|
8
|
-
/* @__PURE__ */ jsx("div", { className: "h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
9
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
10
|
-
] }),
|
|
11
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: [
|
|
12
|
-
Array(3).fill(null).map((__, postIdx) => /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-3", children: [
|
|
13
|
-
/* @__PURE__ */ jsx("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }),
|
|
14
|
-
/* @__PURE__ */ jsx("div", { className: "h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
15
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" })
|
|
16
|
-
] }, postIdx)),
|
|
17
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-center items-center animate-pulse", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-48 bg-gray-200 text-op-heading rounded" }) })
|
|
18
|
-
] })
|
|
19
|
-
] }, sectionIdx)) });
|
|
20
|
-
};
|
|
21
|
-
const HomePageFolders = ({
|
|
22
|
-
folders
|
|
23
|
-
}) => {
|
|
24
|
-
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-10 mt-20", children: folders.map((folder) => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
25
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 mb-20", children: [
|
|
26
|
-
/* @__PURE__ */ jsx(
|
|
27
|
-
Link,
|
|
28
|
-
{
|
|
29
|
-
href: `/blog/${folder.slug}`,
|
|
30
|
-
className: "text-3xl",
|
|
31
|
-
children: folder.title
|
|
32
|
-
},
|
|
33
|
-
folder.slug
|
|
34
|
-
),
|
|
35
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-op-muted", children: folder.description })
|
|
36
|
-
] }),
|
|
37
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20", children: [
|
|
38
|
-
folder.posts.filter((post) => post !== null).map((post) => /* @__PURE__ */ jsx(
|
|
39
|
-
PostPreview,
|
|
40
|
-
{
|
|
41
|
-
post: {
|
|
42
|
-
...post,
|
|
43
|
-
folder: {
|
|
44
|
-
name: folder.title,
|
|
45
|
-
slug: folder.slug,
|
|
46
|
-
description: folder.description || ""
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
post.slug
|
|
51
|
-
)),
|
|
52
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-center w-full h-full items-center ", children: /* @__PURE__ */ jsxs(
|
|
53
|
-
Link,
|
|
54
|
-
{
|
|
55
|
-
href: `/blog/${folder.slug}`,
|
|
56
|
-
className: "flex items-center gap-2",
|
|
57
|
-
children: [
|
|
58
|
-
/* @__PURE__ */ jsxs("span", { children: [
|
|
59
|
-
"View all posts in ",
|
|
60
|
-
folder.title
|
|
61
|
-
] }),
|
|
62
|
-
/* @__PURE__ */ jsx(ArrowRight, { className: "w-4 h-4" })
|
|
63
|
-
]
|
|
64
|
-
}
|
|
65
|
-
) })
|
|
66
|
-
] })
|
|
67
|
-
] })) });
|
|
68
|
-
};
|
|
69
|
-
export {
|
|
70
|
-
HomePageFolders,
|
|
71
|
-
HomePageFoldersSkeleton
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=folders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/folders.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { PostPreview } from \"../post-preview\";\nimport { ArrowRight } from \"lucide-react\";\nimport { Opinly } from \"@opinly/backend\";\n\nexport const HomePageFoldersSkeleton = () => {\n return (\n <>\n {Array(2) // render 2 folder sections\n .fill(null)\n .map((_, sectionIdx) => (\n <div key={sectionIdx} className=\"space-y-4 mb-5\">\n {/* Folder title + description */}\n <div className=\"animate-pulse space-y-2\">\n <div className=\"h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Posts grid */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {Array(3) // 3 post placeholders\n .fill(null)\n .map((__, postIdx) => (\n <div key={postIdx} className=\"animate-pulse space-y-3\">\n {/* Image */}\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n {/* Title bar */}\n <div className=\"h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded\" />\n {/* Description line */}\n <div className=\"h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n\n {/* “View all” link */}\n <div className=\"flex justify-center items-center animate-pulse\">\n <div className=\"h-4 w-48 bg-gray-200 text-op-heading rounded\" />\n </div>\n </div>\n </div>\n ))}\n </>\n );\n};\n\nexport const HomePageFolders = ({\n folders,\n}: {\n folders: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"][\"folders\"];\n}) => {\n return (\n <div className=\"flex flex-col gap-10 mt-20\">\n {folders.map((folder) => (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-2 mb-20\">\n <Link\n key={folder.slug}\n href={`/blog/${folder.slug}`}\n className=\"text-3xl\"\n >\n {folder.title}\n </Link>\n <p className=\"text-sm text-op-muted\">{folder.description}</p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20\">\n {folder.posts\n .filter((post) => post !== null)\n .map((post) => (\n <PostPreview\n key={post.slug}\n post={{\n ...post,\n folder: {\n name: folder.title,\n slug: folder.slug,\n description: folder.description || \"\",\n },\n }}\n />\n ))}\n <div className=\"flex justify-center w-full h-full items-center \">\n <Link\n href={`/blog/${folder.slug}`}\n className=\"flex items-center gap-2\"\n >\n <span>View all posts in {folder.title}</span>\n <ArrowRight className=\"w-4 h-4\" />\n </Link>\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"AAOI,mBAOU,KADF,YANR;AAPJ,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAGpB,MAAM,0BAA0B,MAAM;AAC3C,SACE,gCACG,gBAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,GAAG,eACP,qBAAC,SAAqB,WAAU,kBAE9B;AAAA,yBAAC,SAAI,WAAU,2BACb;AAAA,0BAAC,SAAI,WAAU,kDAAiD;AAAA,MAChE,oBAAC,SAAI,WAAU,kDAAiD;AAAA,OAClE;AAAA,IAGA,qBAAC,SAAI,WAAU,yDACZ;AAAA,YAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,IAAI,YACR,qBAAC,SAAkB,WAAU,2BAE3B;AAAA,4BAAC,SAAI,WAAU,uDAAsD;AAAA,QAErE,oBAAC,SAAI,WAAU,kDAAiD;AAAA,QAEhE,oBAAC,SAAI,WAAU,mDAAkD;AAAA,WANzD,OAOV,CACD;AAAA,MAGH,oBAAC,SAAI,WAAU,kDACb,8BAAC,SAAI,WAAU,gDAA+C,GAChE;AAAA,OACF;AAAA,OA1BQ,UA2BV,CACD,GACL;AAEJ;AAEO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AACF,MAKM;AACJ,SACE,oBAAC,SAAI,WAAU,8BACZ,kBAAQ,IAAI,CAAC,WACZ,qBAAC,SAAI,WAAU,aACb;AAAA,yBAAC,SAAI,WAAU,6BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAET,iBAAO;AAAA;AAAA,QAJH,OAAO;AAAA,MAKd;AAAA,MACA,oBAAC,OAAE,WAAU,yBAAyB,iBAAO,aAAY;AAAA,OAC3D;AAAA,IACA,qBAAC,SAAI,WAAU,+DACZ;AAAA,aAAO,MACL,OAAO,CAAC,SAAS,SAAS,IAAI,EAC9B,IAAI,CAAC,SACJ;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,YACJ,GAAG;AAAA,YACH,QAAQ;AAAA,cACN,MAAM,OAAO;AAAA,cACb,MAAM,OAAO;AAAA,cACb,aAAa,OAAO,eAAe;AAAA,YACrC;AAAA,UACF;AAAA;AAAA,QARK,KAAK;AAAA,MASZ,CACD;AAAA,MACH,oBAAC,SAAI,WAAU,mDACb;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAEV;AAAA,iCAAC,UAAK;AAAA;AAAA,cAAmB,OAAO;AAAA,eAAM;AAAA,YACtC,oBAAC,cAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC,GACF;AAAA,OACF;AAAA,KACF,CACD,GACH;AAEJ;","names":[]}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var home_page_exports = {};
|
|
20
|
-
__export(home_page_exports, {
|
|
21
|
-
HomePage: () => HomePage
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(home_page_exports);
|
|
24
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
-
var import_top_posts = require("./top-posts");
|
|
26
|
-
var import_folders = require("./folders");
|
|
27
|
-
var import_pagination = require("./pagination");
|
|
28
|
-
var import_json_ld = require("./_helpers/json-ld");
|
|
29
|
-
var import_json_ld2 = require("../json-ld");
|
|
30
|
-
const HomePage = ({
|
|
31
|
-
data,
|
|
32
|
-
header,
|
|
33
|
-
cta
|
|
34
|
-
}) => {
|
|
35
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
36
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_json_ld2.OpinlyJSONLD, { content: (0, import_json_ld.blogJSONLD)() }),
|
|
37
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
|
|
38
|
-
header,
|
|
39
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_top_posts.TopPosts, { posts: data.posts }),
|
|
40
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pagination.HomePagePagination, { count: data.count, page: data.page }),
|
|
41
|
-
cta,
|
|
42
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_folders.HomePageFolders, { folders: data.folders })
|
|
43
|
-
] })
|
|
44
|
-
] });
|
|
45
|
-
};
|
|
46
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
-
0 && (module.exports = {
|
|
48
|
-
HomePage
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/index.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { TopPosts } from \"./top-posts\";\nimport { HomePageFolders } from \"./folders\";\nimport { HomePagePagination } from \"./pagination\";\nimport { blogJSONLD } from \"./_helpers/json-ld\";\nimport { OpinlyBreadCrumbJsonLd, OpinlyJSONLD } from \"../json-ld\";\n\nexport type HomePageProps = {\n header?: React.ReactNode;\n cta?: React.ReactNode;\n};\n\nexport const HomePage = ({\n data,\n header,\n cta,\n}: {\n data: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"];\n} & HomePageProps) => {\n return (\n <>\n <OpinlyJSONLD content={blogJSONLD()} />\n\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n {header}\n\n <TopPosts posts={data.posts} />\n <HomePagePagination count={data.count} page={data.page} />\n {cta}\n <HomePageFolders folders={data.folders} />\n </div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBI;AAtBJ,uBAAyB;AACzB,qBAAgC;AAChC,wBAAmC;AACnC,qBAA2B;AAC3B,IAAAA,kBAAqD;AAO9C,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAKsB;AACpB,SACE,4EACE;AAAA,gDAAC,gCAAa,aAAS,2BAAW,GAAG;AAAA,IAErC,6CAAC,SAAI,WAAU,gCACZ;AAAA;AAAA,MAED,4CAAC,6BAAS,OAAO,KAAK,OAAO;AAAA,MAC7B,4CAAC,wCAAmB,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,MACvD;AAAA,MACD,4CAAC,kCAAgB,SAAS,KAAK,SAAS;AAAA,OAC1C;AAAA,KACF;AAEJ;","names":["import_json_ld"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
type HomePageProps = {
|
|
5
|
-
header?: React.ReactNode;
|
|
6
|
-
cta?: React.ReactNode;
|
|
7
|
-
};
|
|
8
|
-
declare const HomePage: ({ data, header, cta, }: {
|
|
9
|
-
data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
10
|
-
type: "home";
|
|
11
|
-
}>["data"];
|
|
12
|
-
} & HomePageProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
-
|
|
14
|
-
export { HomePage, type HomePageProps };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { Opinly } from '@opinly/backend';
|
|
3
|
-
|
|
4
|
-
type HomePageProps = {
|
|
5
|
-
header?: React.ReactNode;
|
|
6
|
-
cta?: React.ReactNode;
|
|
7
|
-
};
|
|
8
|
-
declare const HomePage: ({ data, header, cta, }: {
|
|
9
|
-
data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
10
|
-
type: "home";
|
|
11
|
-
}>["data"];
|
|
12
|
-
} & HomePageProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
-
|
|
14
|
-
export { HomePage, type HomePageProps };
|