@opinly/next 0.1.17 → 0.1.18
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/components/author-page/index.cjs +51 -25
- package/dist/components/author-page/index.cjs.map +1 -1
- package/dist/components/author-page/index.js +52 -26
- package/dist/components/author-page/index.js.map +1 -1
- package/dist/components/blog-post/_components/content.cjs +5 -8
- package/dist/components/blog-post/_components/content.cjs.map +1 -1
- package/dist/components/blog-post/_components/content.js +5 -8
- package/dist/components/blog-post/_components/content.js.map +1 -1
- package/dist/components/blog-post/_components/faq.cjs +2 -2
- package/dist/components/blog-post/_components/faq.cjs.map +1 -1
- package/dist/components/blog-post/_components/faq.js +2 -2
- package/dist/components/blog-post/_components/faq.js.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.cjs +36 -9
- package/dist/components/blog-post/_components/table-of-contents.cjs.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.js +36 -9
- package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs +2 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.d.cts +1 -0
- package/dist/components/blog-post/_helpers/extract-headings.d.ts +1 -0
- package/dist/components/blog-post/_helpers/extract-headings.js +2 -1
- package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
- package/dist/components/blog-post/_helpers/json-ld.cjs +5 -12
- package/dist/components/blog-post/_helpers/json-ld.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/json-ld.d.cts +6 -2
- package/dist/components/blog-post/_helpers/json-ld.d.ts +6 -2
- package/dist/components/blog-post/_helpers/json-ld.js +5 -12
- package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs +1 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
- package/dist/components/blog-post/index.cjs +20 -17
- package/dist/components/blog-post/index.cjs.map +1 -1
- package/dist/components/blog-post/index.js +20 -17
- package/dist/components/blog-post/index.js.map +1 -1
- package/dist/components/bread-crumbs.cjs +1 -1
- package/dist/components/bread-crumbs.cjs.map +1 -1
- package/dist/components/bread-crumbs.js +1 -1
- package/dist/components/bread-crumbs.js.map +1 -1
- package/dist/components/folder-page/index.cjs +46 -11
- package/dist/components/folder-page/index.cjs.map +1 -1
- package/dist/components/folder-page/index.js +47 -12
- package/dist/components/folder-page/index.js.map +1 -1
- package/dist/components/home-page/folders.cjs +6 -9
- package/dist/components/home-page/folders.cjs.map +1 -1
- package/dist/components/home-page/folders.d.cts +4 -2
- package/dist/components/home-page/folders.d.ts +4 -2
- package/dist/components/home-page/folders.js +6 -9
- package/dist/components/home-page/folders.js.map +1 -1
- package/dist/components/home-page/index.cjs +5 -7
- package/dist/components/home-page/index.cjs.map +1 -1
- package/dist/components/home-page/index.d.cts +4 -5
- package/dist/components/home-page/index.d.ts +4 -5
- package/dist/components/home-page/index.js +5 -7
- package/dist/components/home-page/index.js.map +1 -1
- package/dist/components/home-page/pagination.cjs +23 -17
- package/dist/components/home-page/pagination.cjs.map +1 -1
- package/dist/components/home-page/pagination.d.cts +2 -3
- package/dist/components/home-page/pagination.d.ts +2 -3
- package/dist/components/home-page/pagination.js +23 -17
- package/dist/components/home-page/pagination.js.map +1 -1
- package/dist/components/home-page/top-posts.cjs +2 -19
- package/dist/components/home-page/top-posts.cjs.map +1 -1
- package/dist/components/home-page/top-posts.d.cts +4 -3
- package/dist/components/home-page/top-posts.d.ts +4 -3
- package/dist/components/home-page/top-posts.js +4 -21
- package/dist/components/home-page/top-posts.js.map +1 -1
- package/dist/components/opinly-blog.cjs +6 -6
- package/dist/components/opinly-blog.cjs.map +1 -1
- package/dist/components/opinly-blog.d.cts +4 -7
- package/dist/components/opinly-blog.d.ts +4 -7
- package/dist/components/opinly-blog.js +6 -6
- package/dist/components/opinly-blog.js.map +1 -1
- package/dist/components/post-preview.cjs +7 -6
- package/dist/components/post-preview.cjs.map +1 -1
- package/dist/components/post-preview.js +7 -6
- package/dist/components/post-preview.js.map +1 -1
- package/dist/{utils/with-opinly-config.cjs → config.cjs} +17 -9
- package/dist/config.cjs.map +1 -0
- package/dist/{utils/with-opinly-config.d.cts → config.d.cts} +3 -0
- package/dist/{utils/with-opinly-config.d.ts → config.d.ts} +3 -0
- package/dist/{utils/with-opinly-config.js → config.js} +14 -6
- package/dist/config.js.map +1 -0
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/index.cjs +23 -0
- package/dist/pages/index.cjs.map +1 -0
- package/dist/pages/index.d.cts +3 -0
- package/dist/pages/index.d.ts +3 -0
- package/dist/pages/index.js +2 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/opinly-blog-pages.cjs +128 -0
- package/dist/pages/opinly-blog-pages.cjs.map +1 -0
- package/dist/pages/opinly-blog-pages.d.cts +9 -0
- package/dist/pages/opinly-blog-pages.d.ts +9 -0
- package/dist/pages/opinly-blog-pages.js +104 -0
- package/dist/pages/opinly-blog-pages.js.map +1 -0
- package/dist/utils/generate-metadata.cjs +1 -1
- package/dist/utils/generate-metadata.cjs.map +1 -1
- package/dist/utils/generate-metadata.d.cts +2 -4
- package/dist/utils/generate-metadata.d.ts +2 -4
- package/dist/utils/generate-metadata.js +1 -1
- package/dist/utils/generate-metadata.js.map +1 -1
- package/dist/utils/generate-sitemap-xml.cjs +42 -0
- package/dist/utils/generate-sitemap-xml.cjs.map +1 -0
- package/dist/utils/generate-sitemap-xml.d.cts +5 -0
- package/dist/utils/generate-sitemap-xml.d.ts +5 -0
- package/dist/utils/generate-sitemap-xml.js +18 -0
- package/dist/utils/generate-sitemap-xml.js.map +1 -0
- package/dist/utils/sdk-config.cjs +4 -2
- package/dist/utils/sdk-config.cjs.map +1 -1
- package/dist/utils/sdk-config.d.cts +2 -0
- package/dist/utils/sdk-config.d.ts +2 -0
- package/dist/utils/sdk-config.js +4 -2
- package/dist/utils/sdk-config.js.map +1 -1
- package/package.json +12 -3
- package/dist/components/not-found.cjs +0 -60
- package/dist/components/not-found.cjs.map +0 -1
- package/dist/components/not-found.d.cts +0 -5
- package/dist/components/not-found.d.ts +0 -5
- package/dist/components/not-found.js +0 -26
- package/dist/components/not-found.js.map +0 -1
- package/dist/utils/with-opinly-config.cjs.map +0 -1
- package/dist/utils/with-opinly-config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/blog-post/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { JSONContent } from \"@tiptap/core\";\nimport Link from \"next/link\";\nimport { cn } from \"../../utils/merge\";\nimport { opinlyConfig } from \"../../utils/sdk-config\";\nimport { BlogPostRes } from \"./_types/blog-post\";\nimport {\n genBlogPostingJSONLD,\n genBreadcrumbJSONLD,\n genFaqJSONLD,\n} from \"./_helpers/json-ld\";\nimport { BlogComponentClassNames } from \"./_types/class-names\";\nimport { FAQS } from \"./_components/faq\";\nimport { calculateReadingTime } from \"./_helpers/reading-time\";\nimport { Content } from \"./_components/content\";\nimport { TableOfContents } from \"./_components/table-of-contents\";\nimport { BreadCrumbs } from \"../bread-crumbs\";\nimport { formatDate } from \"../../utils/dates\";\nimport Script from \"next/script\";\n\nexport const BlogPost = ({\n post,\n classNames = {},\n}: {\n post: BlogPostRes;\n classNames?: BlogComponentClassNames;\n notFoundComponent?: React.ReactNode;\n}) => {\n const content = post.content as JSONContent;\n\n return (\n <>\n {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/blog-post/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { JSONContent } from \"@tiptap/core\";\nimport Link from \"next/link\";\nimport { cn } from \"../../utils/merge\";\nimport { opinlyConfig } from \"../../utils/sdk-config\";\nimport { BlogPostRes } from \"./_types/blog-post\";\nimport {\n genBlogPostingJSONLD,\n genBreadcrumbJSONLD,\n genFaqJSONLD,\n} from \"./_helpers/json-ld\";\nimport { BlogComponentClassNames } from \"./_types/class-names\";\nimport { FAQS } from \"./_components/faq\";\nimport { calculateReadingTime } from \"./_helpers/reading-time\";\nimport { Content } from \"./_components/content\";\nimport { TableOfContents } from \"./_components/table-of-contents\";\nimport { BreadCrumbs } from \"../bread-crumbs\";\nimport { formatDate } from \"../../utils/dates\";\nimport Script from \"next/script\";\n\nexport const BlogPost = ({\n post,\n classNames = {},\n}: {\n post: BlogPostRes;\n classNames?: BlogComponentClassNames;\n notFoundComponent?: React.ReactNode;\n}) => {\n const content = post.content as JSONContent;\n\n console.log(\"is app router\", !opinlyConfig.pagesRouter);\n\n return (\n <>\n {post.faqs && (\n <Script\n strategy=\"beforeInteractive\"\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(genFaqJSONLD(post.faqs)).replace(\n /</g,\n \"\\\\u003c\"\n ),\n }}\n />\n )}\n <Script\n strategy=\"beforeInteractive\"\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(genBlogPostingJSONLD(post)),\n }}\n />\n <Script\n strategy=\"beforeInteractive\"\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(genBreadcrumbJSONLD(post)),\n }}\n />\n <div className=\"max-w-7xl mx-auto px-4 py-24 flex items-start space-x-8\">\n <div className=\"flex flex-col gap-12 w-full\">\n <div className=\"bg-orange-600\">\n <BreadCrumbs\n breadcrumbs={[\n post.folder && {\n url: `${opinlyConfig.blogPrefix}/${post.folder.slug}`,\n name: post.folder.name,\n },\n ]}\n />\n\n <h1 className=\"text-op-heading text-4xl font-bold mb-2 leading-tight\">\n {post.title}\n </h1>\n <div className=\"text-sm mb-4 text-op-muted\">\n {post.author && (\n <>\n <span>Author:</span>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${post.author?.slug}`}\n className=\"font-medium\"\n >\n {post.author?.name}\n </Link>{\" \"}\n <span className=\"text-op-muted\">·</span>\n </>\n )}\n {calculateReadingTime(content)} min read ·{\" \"}\n {formatDate(post.firstPublishedAt as string) || \"Today\"}\n </div>\n </div>\n\n <div\n className={cn(\n \"flex flex-col-reverse mx-auto w-full \",\n \"md:flex-row\",\n classNames.container\n )}\n >\n <article className=\"w-full md:w-3/4 order-2 lg:order-1 flex items-start space-x-4 \">\n <div className=\"prose w-full\">\n <Content content={content} classNames={classNames} />\n <FAQS faqs={post.faqs} />\n </div>\n </article>\n <div className=\"flex md:w-1/4 md:sticky md:top-20\">\n <TableOfContents\n content={content}\n author={post.author}\n post={post}\n />\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n"],"mappings":"AAmCQ,SA0CQ,UA1CR,KA0CQ,YA1CR;AAjCR,OAAO,UAAU;AACjB,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAE7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,OAAO,YAAY;AAEZ,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA,aAAa,CAAC;AAChB,MAIM;AACJ,QAAM,UAAU,KAAK;AAErB,UAAQ,IAAI,iBAAiB,CAAC,aAAa,WAAW;AAEtD,SACE,iCACG;AAAA,SAAK,QACJ;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,MAAK;AAAA,QACL,yBAAyB;AAAA,UACvB,QAAQ,KAAK,UAAU,aAAa,KAAK,IAAI,CAAC,EAAE;AAAA,YAC9C;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,MAAK;AAAA,QACL,yBAAyB;AAAA,UACvB,QAAQ,KAAK,UAAU,qBAAqB,IAAI,CAAC;AAAA,QACnD;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,MAAK;AAAA,QACL,yBAAyB;AAAA,UACvB,QAAQ,KAAK,UAAU,oBAAoB,IAAI,CAAC;AAAA,QAClD;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,SAAI,WAAU,2DACb,+BAAC,SAAI,WAAU,+BACb;AAAA,2BAAC,SAAI,WAAU,iBACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,aAAa;AAAA,cACX,KAAK,UAAU;AAAA,gBACb,KAAK,GAAG,aAAa,UAAU,IAAI,KAAK,OAAO,IAAI;AAAA,gBACnD,MAAM,KAAK,OAAO;AAAA,cACpB;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QAEA,oBAAC,QAAG,WAAU,yDACX,eAAK,OACR;AAAA,QACA,qBAAC,SAAI,WAAU,8BACZ;AAAA,eAAK,UACJ,iCACE;AAAA,gCAAC,UAAK,qBAAO;AAAA,YACb;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM,GAAG,aAAa,UAAU,YAAY,KAAK,QAAQ,IAAI;AAAA,gBAC7D,WAAU;AAAA,gBAET,eAAK,QAAQ;AAAA;AAAA,YAChB;AAAA,YAAQ;AAAA,YACR,oBAAC,UAAK,WAAU,iBAAgB,kBAAC;AAAA,aACnC;AAAA,UAED,qBAAqB,OAAO;AAAA,UAAE;AAAA,UAAY;AAAA,UAC1C,WAAW,KAAK,gBAA0B,KAAK;AAAA,WAClD;AAAA,SACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA,WAAW;AAAA,UACb;AAAA,UAEA;AAAA,gCAAC,aAAQ,WAAU,kEACjB,+BAAC,SAAI,WAAU,gBACb;AAAA,kCAAC,WAAQ,SAAkB,YAAwB;AAAA,cACnD,oBAAC,QAAK,MAAM,KAAK,MAAM;AAAA,eACzB,GACF;AAAA,YACA,oBAAC,SAAI,WAAU,qCACb;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA,QAAQ,KAAK;AAAA,gBACb;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -38,7 +38,7 @@ var import_sdk_config = require("../utils/sdk-config");
|
|
|
38
38
|
const BreadCrumbs = ({
|
|
39
39
|
breadcrumbs
|
|
40
40
|
}) => {
|
|
41
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("nav", { className: "text-sm text-
|
|
41
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("nav", { className: "text-sm text-muted-foreground mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ol", { className: "list-reset flex space-x-2", children: [
|
|
42
42
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: "/", className: "font-bold", children: import_sdk_config.opinlyConfig.siteName }),
|
|
43
43
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "/" }),
|
|
44
44
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: import_sdk_config.opinlyConfig.blogPrefix, className: "font-bold", children: "Blog" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/bread-crumbs.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { Fragment } from \"react\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\n\nexport const BreadCrumbs = ({\n breadcrumbs,\n}: {\n breadcrumbs?: (\n | {\n name: string;\n url?: string;\n }\n | null\n | undefined\n )[];\n}) => {\n return (\n <nav className=\"text-sm text-
|
|
1
|
+
{"version":3,"sources":["../../src/components/bread-crumbs.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { Fragment } from \"react\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\n\nexport const BreadCrumbs = ({\n breadcrumbs,\n}: {\n breadcrumbs?: (\n | {\n name: string;\n url?: string;\n }\n | null\n | undefined\n )[];\n}) => {\n return (\n <nav className=\"text-sm text-muted-foreground mb-4\">\n <ol className=\"list-reset flex space-x-2\">\n <Link href=\"/\" className=\"font-bold\">\n {opinlyConfig.siteName}\n </Link>\n <span>/</span>\n <Link href={opinlyConfig.blogPrefix} className=\"font-bold\">\n Blog\n </Link>\n {breadcrumbs?.map((breadcrumb, index) => {\n if (!breadcrumb) {\n return null;\n }\n\n return (\n <Fragment key={index}>\n <span>/</span>\n {breadcrumb.url ? (\n <Link href={breadcrumb.url} className=\"font-bold\">\n {breadcrumb.name}\n </Link>\n ) : (\n <span className=\"font-bold\">{breadcrumb.name}</span>\n )}\n </Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBQ;AAnBR,kBAAiB;AACjB,mBAAyB;AACzB,wBAA6B;AAEtB,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MASM;AACJ,SACE,4CAAC,SAAI,WAAU,sCACb,uDAAC,QAAG,WAAU,6BACZ;AAAA,gDAAC,YAAAA,SAAA,EAAK,MAAK,KAAI,WAAU,aACtB,yCAAa,UAChB;AAAA,IACA,4CAAC,UAAK,eAAC;AAAA,IACP,4CAAC,YAAAA,SAAA,EAAK,MAAM,+BAAa,YAAY,WAAU,aAAY,kBAE3D;AAAA,IACC,aAAa,IAAI,CAAC,YAAY,UAAU;AACvC,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,MACT;AAEA,aACE,6CAAC,yBACC;AAAA,oDAAC,UAAK,eAAC;AAAA,QACN,WAAW,MACV,4CAAC,YAAAA,SAAA,EAAK,MAAM,WAAW,KAAK,WAAU,aACnC,qBAAW,MACd,IAEA,4CAAC,UAAK,WAAU,aAAa,qBAAW,MAAK;AAAA,WAPlC,KASf;AAAA,IAEJ,CAAC;AAAA,KACH,GACF;AAEJ;","names":["Link"]}
|
|
@@ -5,7 +5,7 @@ import { opinlyConfig } from "../utils/sdk-config";
|
|
|
5
5
|
const BreadCrumbs = ({
|
|
6
6
|
breadcrumbs
|
|
7
7
|
}) => {
|
|
8
|
-
return /* @__PURE__ */ jsx("nav", { className: "text-sm text-
|
|
8
|
+
return /* @__PURE__ */ jsx("nav", { className: "text-sm text-muted-foreground mb-4", children: /* @__PURE__ */ jsxs("ol", { className: "list-reset flex space-x-2", children: [
|
|
9
9
|
/* @__PURE__ */ jsx(Link, { href: "/", className: "font-bold", children: opinlyConfig.siteName }),
|
|
10
10
|
/* @__PURE__ */ jsx("span", { children: "/" }),
|
|
11
11
|
/* @__PURE__ */ jsx(Link, { href: opinlyConfig.blogPrefix, className: "font-bold", children: "Blog" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/bread-crumbs.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { Fragment } from \"react\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\n\nexport const BreadCrumbs = ({\n breadcrumbs,\n}: {\n breadcrumbs?: (\n | {\n name: string;\n url?: string;\n }\n | null\n | undefined\n )[];\n}) => {\n return (\n <nav className=\"text-sm text-
|
|
1
|
+
{"version":3,"sources":["../../src/components/bread-crumbs.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { Fragment } from \"react\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\n\nexport const BreadCrumbs = ({\n breadcrumbs,\n}: {\n breadcrumbs?: (\n | {\n name: string;\n url?: string;\n }\n | null\n | undefined\n )[];\n}) => {\n return (\n <nav className=\"text-sm text-muted-foreground mb-4\">\n <ol className=\"list-reset flex space-x-2\">\n <Link href=\"/\" className=\"font-bold\">\n {opinlyConfig.siteName}\n </Link>\n <span>/</span>\n <Link href={opinlyConfig.blogPrefix} className=\"font-bold\">\n Blog\n </Link>\n {breadcrumbs?.map((breadcrumb, index) => {\n if (!breadcrumb) {\n return null;\n }\n\n return (\n <Fragment key={index}>\n <span>/</span>\n {breadcrumb.url ? (\n <Link href={breadcrumb.url} className=\"font-bold\">\n {breadcrumb.name}\n </Link>\n ) : (\n <span className=\"font-bold\">{breadcrumb.name}</span>\n )}\n </Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"mappings":"AAmBQ,cAaI,YAbJ;AAnBR,OAAO,UAAU;AACjB,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAEtB,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MASM;AACJ,SACE,oBAAC,SAAI,WAAU,sCACb,+BAAC,QAAG,WAAU,6BACZ;AAAA,wBAAC,QAAK,MAAK,KAAI,WAAU,aACtB,uBAAa,UAChB;AAAA,IACA,oBAAC,UAAK,eAAC;AAAA,IACP,oBAAC,QAAK,MAAM,aAAa,YAAY,WAAU,aAAY,kBAE3D;AAAA,IACC,aAAa,IAAI,CAAC,YAAY,UAAU;AACvC,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,MACT;AAEA,aACE,qBAAC,YACC;AAAA,4BAAC,UAAK,eAAC;AAAA,QACN,WAAW,MACV,oBAAC,QAAK,MAAM,WAAW,KAAK,WAAU,aACnC,qBAAW,MACd,IAEA,oBAAC,UAAK,WAAU,aAAa,qBAAW,MAAK;AAAA,WAPlC,KASf;AAAA,IAEJ,CAAC;AAAA,KACH,GACF;AAEJ;","names":[]}
|
|
@@ -24,20 +24,55 @@ module.exports = __toCommonJS(folder_page_exports);
|
|
|
24
24
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
25
|
var import_post_preview = require("../post-preview");
|
|
26
26
|
var import_bread_crumbs = require("../bread-crumbs");
|
|
27
|
+
var import_next_seo = require("next-seo");
|
|
28
|
+
var import_sdk_config = require("../../utils/sdk-config");
|
|
27
29
|
const FolderPage = ({
|
|
28
30
|
folder
|
|
29
31
|
}) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
33
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
34
|
+
import_next_seo.BreadcrumbJsonLd,
|
|
35
|
+
{
|
|
36
|
+
useAppDir: !import_sdk_config.opinlyConfig.pagesRouter,
|
|
37
|
+
itemListElements: [
|
|
38
|
+
{
|
|
39
|
+
position: 1,
|
|
40
|
+
name: import_sdk_config.opinlyConfig.siteName,
|
|
41
|
+
item: `${import_sdk_config.opinlyConfig.siteUrl}`
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
position: 2,
|
|
45
|
+
name: "Blog",
|
|
46
|
+
item: import_sdk_config.opinlyConfig.blogUrl
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
position: 3,
|
|
50
|
+
name: folder.name,
|
|
51
|
+
item: `${import_sdk_config.opinlyConfig.blogUrl}/${folder.slug}`
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-6xl mx-auto px-4 py-10", children: [
|
|
57
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
import_bread_crumbs.BreadCrumbs,
|
|
59
|
+
{
|
|
60
|
+
breadcrumbs: [
|
|
61
|
+
{
|
|
62
|
+
name: folder.name,
|
|
63
|
+
url: `${import_sdk_config.opinlyConfig.blogUrl}/${folder.slug}`
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-4xl font-bold mb-2", children: folder.name }),
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground max-w-2xl mb-8", children: folder.description || `Explore articles about ${folder.name}.` }),
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: [
|
|
71
|
+
folder.posts.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-muted-foreground", children: "No posts added yet" }),
|
|
72
|
+
folder.posts.map((post) => {
|
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_preview.PostPreview, { post }, post.slug);
|
|
74
|
+
})
|
|
75
|
+
] })
|
|
41
76
|
] })
|
|
42
77
|
] });
|
|
43
78
|
};
|
|
@@ -1 +1 @@
|
|
|
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\";\n\nexport const FolderPage = ({\n folder,\n}: {\n folder: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"folder\" }\n >[\"data\"];\n}) => {\n
|
|
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\";\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 <BreadcrumbJsonLd\n useAppDir={!opinlyConfig.pagesRouter}\n itemListElements={[\n {\n position: 1,\n name: opinlyConfig.siteName,\n item: `${opinlyConfig.siteUrl}`,\n },\n {\n position: 2,\n name: \"Blog\",\n item: opinlyConfig.blogUrl,\n },\n {\n position: 3,\n name: folder.name,\n item: `${opinlyConfig.blogUrl}/${folder.slug}`,\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;AAeI;AAdJ,0BAA4B;AAC5B,0BAA4B;AAC5B,sBAAiC;AACjC,wBAA6B;AAEtB,MAAM,aAAa,CAAC;AAAA,EACzB;AACF,MAKM;AACJ,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,CAAC,+BAAa;AAAA,QACzB,kBAAkB;AAAA,UAChB;AAAA,YACE,UAAU;AAAA,YACV,MAAM,+BAAa;AAAA,YACnB,MAAM,GAAG,+BAAa,OAAO;AAAA,UAC/B;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,MAAM;AAAA,YACN,MAAM,+BAAa;AAAA,UACrB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,MAAM,OAAO;AAAA,YACb,MAAM,GAAG,+BAAa,OAAO,IAAI,OAAO,IAAI;AAAA,UAC9C;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,20 +1,55 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { PostPreview } from "../post-preview";
|
|
3
3
|
import { BreadCrumbs } from "../bread-crumbs";
|
|
4
|
+
import { BreadcrumbJsonLd } from "next-seo";
|
|
5
|
+
import { opinlyConfig } from "../../utils/sdk-config";
|
|
4
6
|
const FolderPage = ({
|
|
5
7
|
folder
|
|
6
8
|
}) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10
|
+
/* @__PURE__ */ jsx(
|
|
11
|
+
BreadcrumbJsonLd,
|
|
12
|
+
{
|
|
13
|
+
useAppDir: !opinlyConfig.pagesRouter,
|
|
14
|
+
itemListElements: [
|
|
15
|
+
{
|
|
16
|
+
position: 1,
|
|
17
|
+
name: opinlyConfig.siteName,
|
|
18
|
+
item: `${opinlyConfig.siteUrl}`
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
position: 2,
|
|
22
|
+
name: "Blog",
|
|
23
|
+
item: opinlyConfig.blogUrl
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
position: 3,
|
|
27
|
+
name: folder.name,
|
|
28
|
+
item: `${opinlyConfig.blogUrl}/${folder.slug}`
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
),
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "max-w-6xl mx-auto px-4 py-10", children: [
|
|
34
|
+
/* @__PURE__ */ jsx(
|
|
35
|
+
BreadCrumbs,
|
|
36
|
+
{
|
|
37
|
+
breadcrumbs: [
|
|
38
|
+
{
|
|
39
|
+
name: folder.name,
|
|
40
|
+
url: `${opinlyConfig.blogUrl}/${folder.slug}`
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
),
|
|
45
|
+
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold mb-2", children: folder.name }),
|
|
46
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground max-w-2xl mb-8", children: folder.description || `Explore articles about ${folder.name}.` }),
|
|
47
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: [
|
|
48
|
+
folder.posts.length === 0 && /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: "No posts added yet" }),
|
|
49
|
+
folder.posts.map((post) => {
|
|
50
|
+
return /* @__PURE__ */ jsx(PostPreview, { post }, post.slug);
|
|
51
|
+
})
|
|
52
|
+
] })
|
|
18
53
|
] })
|
|
19
54
|
] });
|
|
20
55
|
};
|
|
@@ -1 +1 @@
|
|
|
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\";\n\nexport const FolderPage = ({\n folder,\n}: {\n folder: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"folder\" }\n >[\"data\"];\n}) => {\n
|
|
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\";\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 <BreadcrumbJsonLd\n useAppDir={!opinlyConfig.pagesRouter}\n itemListElements={[\n {\n position: 1,\n name: opinlyConfig.siteName,\n item: `${opinlyConfig.siteUrl}`,\n },\n {\n position: 2,\n name: \"Blog\",\n item: opinlyConfig.blogUrl,\n },\n {\n position: 3,\n name: folder.name,\n item: `${opinlyConfig.blogUrl}/${folder.slug}`,\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":"AAeI,mBACE,KAoCE,YArCJ;AAdJ,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,MAAM,aAAa,CAAC;AAAA,EACzB;AACF,MAKM;AACJ,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,CAAC,aAAa;AAAA,QACzB,kBAAkB;AAAA,UAChB;AAAA,YACE,UAAU;AAAA,YACV,MAAM,aAAa;AAAA,YACnB,MAAM,GAAG,aAAa,OAAO;AAAA,UAC/B;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,MAAM;AAAA,YACN,MAAM,aAAa;AAAA,UACrB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,MAAM,OAAO;AAAA,YACb,MAAM,GAAG,aAAa,OAAO,IAAI,OAAO,IAAI;AAAA,UAC9C;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":[]}
|
|
@@ -36,7 +36,6 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
36
36
|
var import_link = __toESM(require("next/link"), 1);
|
|
37
37
|
var import_post_preview = require("../post-preview");
|
|
38
38
|
var import_lucide_react = require("lucide-react");
|
|
39
|
-
var import_react = require("react");
|
|
40
39
|
const HomePageFoldersSkeleton = () => {
|
|
41
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: [
|
|
42
41
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "animate-pulse space-y-2", children: [
|
|
@@ -49,13 +48,14 @@ const HomePageFoldersSkeleton = () => {
|
|
|
49
48
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
50
49
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" })
|
|
51
50
|
] }, postIdx)),
|
|
52
|
-
/* @__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
|
|
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" }) })
|
|
53
52
|
] })
|
|
54
53
|
] }, sectionIdx)) });
|
|
55
54
|
};
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
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
59
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-2 mb-20", children: [
|
|
60
60
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
61
61
|
import_link.default,
|
|
@@ -66,7 +66,7 @@ const HomePageFoldersServer = async ({ client }) => {
|
|
|
66
66
|
},
|
|
67
67
|
folder.slug
|
|
68
68
|
),
|
|
69
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-op-muted", children: folder.description })
|
|
70
70
|
] }),
|
|
71
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
72
|
folder.posts.filter((post) => post !== null).map((post) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_preview.PostPreview, { post }, post.slug)),
|
|
@@ -87,9 +87,6 @@ const HomePageFoldersServer = async ({ client }) => {
|
|
|
87
87
|
] })
|
|
88
88
|
] })) });
|
|
89
89
|
};
|
|
90
|
-
const HomePageFolders = ({ client }) => {
|
|
91
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HomePageFoldersSkeleton, {}), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HomePageFoldersServer, { client }) });
|
|
92
|
-
};
|
|
93
90
|
// Annotate the CommonJS export names for ESM import in node:
|
|
94
91
|
0 && (module.exports = {
|
|
95
92
|
HomePageFolders,
|
|
@@ -1 +1 @@
|
|
|
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\";\
|
|
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 key={post.slug} post={post as any} />\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,4CAAC,mCAA4B,QAAX,KAAK,IAAyB,CACjD;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"]}
|
|
@@ -2,8 +2,10 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { Opinly } from '@opinly/backend';
|
|
3
3
|
|
|
4
4
|
declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
|
|
5
|
-
declare const HomePageFolders: ({
|
|
6
|
-
|
|
5
|
+
declare const HomePageFolders: ({ folders, }: {
|
|
6
|
+
folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
7
|
+
type: "home";
|
|
8
|
+
}>["data"]["folders"];
|
|
7
9
|
}) => react_jsx_runtime.JSX.Element;
|
|
8
10
|
|
|
9
11
|
export { HomePageFolders, HomePageFoldersSkeleton };
|
|
@@ -2,8 +2,10 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { Opinly } from '@opinly/backend';
|
|
3
3
|
|
|
4
4
|
declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
|
|
5
|
-
declare const HomePageFolders: ({
|
|
6
|
-
|
|
5
|
+
declare const HomePageFolders: ({ folders, }: {
|
|
6
|
+
folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
7
|
+
type: "home";
|
|
8
|
+
}>["data"]["folders"];
|
|
7
9
|
}) => react_jsx_runtime.JSX.Element;
|
|
8
10
|
|
|
9
11
|
export { HomePageFolders, HomePageFoldersSkeleton };
|
|
@@ -2,7 +2,6 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import Link from "next/link";
|
|
3
3
|
import { PostPreview } from "../post-preview";
|
|
4
4
|
import { ArrowRight } from "lucide-react";
|
|
5
|
-
import { Suspense } from "react";
|
|
6
5
|
const HomePageFoldersSkeleton = () => {
|
|
7
6
|
return /* @__PURE__ */ jsx(Fragment, { children: Array(2).fill(null).map((_, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 mb-5", children: [
|
|
8
7
|
/* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-2", children: [
|
|
@@ -15,13 +14,14 @@ const HomePageFoldersSkeleton = () => {
|
|
|
15
14
|
/* @__PURE__ */ jsx("div", { className: "h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
16
15
|
/* @__PURE__ */ jsx("div", { className: "h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" })
|
|
17
16
|
] }, postIdx)),
|
|
18
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-center items-center animate-pulse", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-48 bg-gray-200
|
|
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" }) })
|
|
19
18
|
] })
|
|
20
19
|
] }, sectionIdx)) });
|
|
21
20
|
};
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
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
25
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 mb-20", children: [
|
|
26
26
|
/* @__PURE__ */ jsx(
|
|
27
27
|
Link,
|
|
@@ -32,7 +32,7 @@ const HomePageFoldersServer = async ({ client }) => {
|
|
|
32
32
|
},
|
|
33
33
|
folder.slug
|
|
34
34
|
),
|
|
35
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-
|
|
35
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-op-muted", children: folder.description })
|
|
36
36
|
] }),
|
|
37
37
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20", children: [
|
|
38
38
|
folder.posts.filter((post) => post !== null).map((post) => /* @__PURE__ */ jsx(PostPreview, { post }, post.slug)),
|
|
@@ -53,9 +53,6 @@ const HomePageFoldersServer = async ({ client }) => {
|
|
|
53
53
|
] })
|
|
54
54
|
] })) });
|
|
55
55
|
};
|
|
56
|
-
const HomePageFolders = ({ client }) => {
|
|
57
|
-
return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(HomePageFoldersSkeleton, {}), children: /* @__PURE__ */ jsx(HomePageFoldersServer, { client }) });
|
|
58
|
-
};
|
|
59
56
|
export {
|
|
60
57
|
HomePageFolders,
|
|
61
58
|
HomePageFoldersSkeleton
|
|
@@ -1 +1 @@
|
|
|
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\";\
|
|
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 key={post.slug} post={post as any} />\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,oBAAC,eAA4B,QAAX,KAAK,IAAyB,CACjD;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":[]}
|
|
@@ -22,19 +22,17 @@ __export(home_page_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(home_page_exports);
|
|
24
24
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
-
var import_react = require("react");
|
|
26
25
|
var import_top_posts = require("./top-posts");
|
|
27
26
|
var import_folders = require("./folders");
|
|
28
27
|
var import_pagination = require("./pagination");
|
|
29
28
|
const HomePage = ({
|
|
30
|
-
|
|
31
|
-
client
|
|
29
|
+
data
|
|
32
30
|
}) => {
|
|
33
|
-
|
|
31
|
+
console.log("rendering home page inner", data);
|
|
34
32
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
|
|
35
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
36
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
37
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
33
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_top_posts.TopPosts, { posts: data.posts }),
|
|
34
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pagination.HomePagePagination, { count: data.count, page: data.page }),
|
|
35
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_folders.HomePageFolders, { folders: data.folders })
|
|
38
36
|
] });
|
|
39
37
|
};
|
|
40
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/index.tsx"],"sourcesContent":["import
|
|
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\";\n\nexport const HomePage = ({\n data,\n}: {\n data: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"];\n}) => {\n console.log(\"rendering home page inner\", data);\n\n return (\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n <TopPosts posts={data.posts} />\n <HomePagePagination count={data.count} page={data.page} />\n <HomePageFolders folders={data.folders} />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBI;AAfJ,uBAAyB;AACzB,qBAAgC;AAChC,wBAAmC;AAE5B,MAAM,WAAW,CAAC;AAAA,EACvB;AACF,MAKM;AACJ,UAAQ,IAAI,6BAA6B,IAAI;AAE7C,SACE,6CAAC,SAAI,WAAU,gCACb;AAAA,gDAAC,6BAAS,OAAO,KAAK,OAAO;AAAA,IAC7B,4CAAC,wCAAmB,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,IACxD,4CAAC,kCAAgB,SAAS,KAAK,SAAS;AAAA,KAC1C;AAEJ;","names":[]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { Opinly } from '@opinly/backend';
|
|
3
3
|
|
|
4
|
-
declare const HomePage: ({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
4
|
+
declare const HomePage: ({ data, }: {
|
|
5
|
+
data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
6
|
+
type: "home";
|
|
7
|
+
}>["data"];
|
|
9
8
|
}) => react_jsx_runtime.JSX.Element;
|
|
10
9
|
|
|
11
10
|
export { HomePage };
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { Opinly } from '@opinly/backend';
|
|
3
3
|
|
|
4
|
-
declare const HomePage: ({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
4
|
+
declare const HomePage: ({ data, }: {
|
|
5
|
+
data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
|
|
6
|
+
type: "home";
|
|
7
|
+
}>["data"];
|
|
9
8
|
}) => react_jsx_runtime.JSX.Element;
|
|
10
9
|
|
|
11
10
|
export { HomePage };
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense } from "react";
|
|
3
2
|
import { TopPosts } from "./top-posts";
|
|
4
3
|
import { HomePageFolders } from "./folders";
|
|
5
4
|
import { HomePagePagination } from "./pagination";
|
|
6
5
|
const HomePage = ({
|
|
7
|
-
|
|
8
|
-
client
|
|
6
|
+
data
|
|
9
7
|
}) => {
|
|
10
|
-
|
|
8
|
+
console.log("rendering home page inner", data);
|
|
11
9
|
return /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
|
|
12
|
-
/* @__PURE__ */ jsx(
|
|
13
|
-
/* @__PURE__ */ jsx(
|
|
14
|
-
/* @__PURE__ */ jsx(
|
|
10
|
+
/* @__PURE__ */ jsx(TopPosts, { posts: data.posts }),
|
|
11
|
+
/* @__PURE__ */ jsx(HomePagePagination, { count: data.count, page: data.page }),
|
|
12
|
+
/* @__PURE__ */ jsx(HomePageFolders, { folders: data.folders })
|
|
15
13
|
] });
|
|
16
14
|
};
|
|
17
15
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/index.tsx"],"sourcesContent":["import
|
|
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\";\n\nexport const HomePage = ({\n data,\n}: {\n data: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"];\n}) => {\n console.log(\"rendering home page inner\", data);\n\n return (\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n <TopPosts posts={data.posts} />\n <HomePagePagination count={data.count} page={data.page} />\n <HomePageFolders folders={data.folders} />\n </div>\n );\n};\n"],"mappings":"AAgBI,SACE,KADF;AAfJ,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AAE5B,MAAM,WAAW,CAAC;AAAA,EACvB;AACF,MAKM;AACJ,UAAQ,IAAI,6BAA6B,IAAI;AAE7C,SACE,qBAAC,SAAI,WAAU,gCACb;AAAA,wBAAC,YAAS,OAAO,KAAK,OAAO;AAAA,IAC7B,oBAAC,sBAAmB,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,IACxD,oBAAC,mBAAgB,SAAS,KAAK,SAAS;AAAA,KAC1C;AAEJ;","names":[]}
|