@opinly/next 0.1.12 → 0.1.14
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/_helpers/json-ld.js +1 -0
- package/dist/components/author-page/_helpers/json-ld.mjs +1 -0
- package/dist/components/author-page/index.js +57 -22
- package/dist/components/author-page/index.js.map +1 -1
- package/dist/components/author-page/index.mjs +50 -0
- package/dist/components/author-page/index.mjs.map +1 -0
- package/dist/components/authors-page/index.js +63 -29
- package/dist/components/authors-page/index.js.map +1 -1
- package/dist/components/authors-page/index.mjs +71 -0
- package/dist/components/authors-page/{index.cjs.map → index.mjs.map} +1 -1
- package/dist/components/blog-post/_components/content.js +63 -28
- package/dist/components/blog-post/_components/content.js.map +1 -1
- package/dist/components/blog-post/_components/content.mjs +126 -0
- package/dist/components/blog-post/_components/content.mjs.map +1 -0
- package/dist/components/blog-post/_components/faq.js +32 -8
- package/dist/components/blog-post/_components/faq.js.map +1 -1
- package/dist/components/blog-post/_components/faq.mjs +15 -0
- package/dist/components/blog-post/_components/{faq.cjs.map → faq.mjs.map} +1 -1
- package/dist/components/blog-post/_components/share.js +58 -24
- package/dist/components/blog-post/_components/share.js.map +1 -1
- package/dist/components/blog-post/_components/share.mjs +66 -0
- package/dist/components/blog-post/_components/{share.cjs.map → share.mjs.map} +1 -1
- package/dist/components/blog-post/_components/table-of-contents.js +58 -23
- package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.mjs +48 -0
- package/dist/components/blog-post/_components/table-of-contents.mjs.map +1 -0
- package/dist/components/blog-post/_helpers/calc-reading-time.js +1 -0
- package/dist/components/blog-post/_helpers/calc-reading-time.mjs +1 -0
- package/dist/components/blog-post/_helpers/extract-headings.js +26 -2
- package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.mjs +20 -0
- package/dist/components/blog-post/_helpers/{extract-headings.cjs.map → extract-headings.mjs.map} +1 -1
- package/dist/components/blog-post/_helpers/json-ld.js +38 -11
- package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
- package/dist/components/blog-post/_helpers/{json-ld.cjs → json-ld.mjs} +12 -39
- package/dist/components/blog-post/_helpers/{json-ld.cjs.map → json-ld.mjs.map} +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js +27 -2
- package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.mjs +25 -0
- package/dist/components/blog-post/_helpers/{reading-time.cjs.map → reading-time.mjs.map} +1 -1
- package/dist/components/blog-post/_types/blog-post.js +16 -0
- package/dist/components/blog-post/_types/blog-post.js.map +1 -1
- package/dist/components/blog-post/_types/blog-post.mjs +1 -0
- package/dist/components/blog-post/_types/blog-post.mjs.map +1 -0
- package/dist/components/blog-post/_types/class-names.js +16 -0
- package/dist/components/blog-post/_types/class-names.js.map +1 -1
- package/dist/components/blog-post/_types/class-names.mjs +1 -0
- package/dist/components/blog-post/_types/class-names.mjs.map +1 -0
- package/dist/components/blog-post/index.js +77 -47
- package/dist/components/blog-post/index.js.map +1 -1
- package/dist/components/blog-post/index.mjs +118 -0
- package/dist/components/blog-post/{index.cjs.map → index.mjs.map} +1 -1
- package/dist/components/bread-crumbs.js +47 -13
- package/dist/components/bread-crumbs.js.map +1 -1
- package/dist/components/bread-crumbs.mjs +26 -0
- package/dist/components/{bread-crumbs.cjs.map → bread-crumbs.mjs.map} +1 -1
- package/dist/components/folder-page/index.js +36 -12
- package/dist/components/folder-page/index.js.map +1 -1
- package/dist/components/folder-page/index.mjs +37 -0
- package/dist/components/folder-page/{index.cjs.map → index.mjs.map} +1 -1
- package/dist/components/home-page/folders.js +64 -29
- package/dist/components/home-page/folders.js.map +1 -1
- package/dist/components/home-page/folders.mjs +63 -0
- package/dist/components/home-page/{folders.cjs.map → folders.mjs.map} +1 -1
- package/dist/components/home-page/index.js +35 -11
- package/dist/components/home-page/index.js.map +1 -1
- package/dist/components/home-page/index.mjs +20 -0
- package/dist/components/home-page/{index.cjs.map → index.mjs.map} +1 -1
- package/dist/components/home-page/pagination.js +43 -9
- package/dist/components/home-page/pagination.js.map +1 -1
- package/dist/components/home-page/pagination.mjs +57 -0
- package/dist/components/home-page/{pagination.cjs.map → pagination.mjs.map} +1 -1
- package/dist/components/home-page/top-posts.js +34 -10
- package/dist/components/home-page/top-posts.js.map +1 -1
- package/dist/components/home-page/top-posts.mjs +28 -0
- package/dist/components/home-page/{top-posts.cjs.map → top-posts.mjs.map} +1 -1
- package/dist/components/not-found.js +49 -15
- package/dist/components/not-found.js.map +1 -1
- package/dist/components/not-found.mjs +26 -0
- package/dist/components/{not-found.cjs.map → not-found.mjs.map} +1 -1
- package/dist/components/opinly-blog.js +39 -15
- package/dist/components/opinly-blog.js.map +1 -1
- package/dist/components/opinly-blog.mjs +33 -0
- package/dist/components/{opinly-blog.cjs.map → opinly-blog.mjs.map} +1 -1
- package/dist/components/post-preview.js +77 -41
- package/dist/components/post-preview.js.map +1 -1
- package/dist/components/post-preview.mjs +77 -0
- package/dist/components/post-preview.mjs.map +1 -0
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/utils/dates.js +26 -2
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/dates.mjs +9 -0
- package/dist/utils/{dates.cjs.map → dates.mjs.map} +1 -1
- package/dist/utils/generate-metadata.d.cts +5 -3
- package/dist/utils/generate-metadata.d.ts +5 -3
- package/dist/utils/generate-metadata.js +33 -9
- package/dist/utils/generate-metadata.js.map +1 -1
- package/dist/utils/generate-metadata.mjs +36 -0
- package/dist/utils/generate-metadata.mjs.map +1 -0
- package/dist/utils/merge.js +29 -5
- package/dist/utils/merge.js.map +1 -1
- package/dist/utils/merge.mjs +9 -0
- package/dist/utils/{merge.cjs.map → merge.mjs.map} +1 -1
- package/dist/utils/sdk-config.d.cts +1 -0
- package/dist/utils/sdk-config.d.ts +1 -0
- package/dist/utils/sdk-config.js +31 -4
- package/dist/utils/sdk-config.js.map +1 -1
- package/dist/utils/sdk-config.mjs +32 -0
- package/dist/utils/sdk-config.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/components/author-page/_helpers/json-ld.cjs +0 -2
- package/dist/components/author-page/index.cjs +0 -83
- package/dist/components/author-page/index.cjs.map +0 -1
- package/dist/components/authors-page/index.cjs +0 -105
- package/dist/components/blog-post/_components/content.cjs +0 -159
- package/dist/components/blog-post/_components/content.cjs.map +0 -1
- package/dist/components/blog-post/_components/faq.cjs +0 -39
- package/dist/components/blog-post/_components/share.cjs +0 -100
- package/dist/components/blog-post/_components/table-of-contents.cjs +0 -81
- package/dist/components/blog-post/_components/table-of-contents.cjs.map +0 -1
- package/dist/components/blog-post/_helpers/calc-reading-time.cjs +0 -2
- package/dist/components/blog-post/_helpers/extract-headings.cjs +0 -44
- package/dist/components/blog-post/_helpers/reading-time.cjs +0 -50
- 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/class-names.cjs +0 -17
- package/dist/components/blog-post/_types/class-names.cjs.map +0 -1
- package/dist/components/blog-post/index.cjs +0 -148
- package/dist/components/bread-crumbs.cjs +0 -60
- package/dist/components/folder-page/index.cjs +0 -61
- package/dist/components/home-page/folders.cjs +0 -98
- package/dist/components/home-page/index.cjs +0 -44
- package/dist/components/home-page/pagination.cjs +0 -91
- package/dist/components/home-page/top-posts.cjs +0 -52
- package/dist/components/not-found.cjs +0 -60
- package/dist/components/opinly-blog.cjs +0 -57
- package/dist/components/post-preview.cjs +0 -111
- package/dist/components/post-preview.cjs.map +0 -1
- package/dist/index.cjs +0 -23
- package/dist/index.cjs.map +0 -1
- package/dist/utils/dates.cjs +0 -33
- package/dist/utils/generate-metadata.cjs +0 -60
- package/dist/utils/generate-metadata.cjs.map +0 -1
- package/dist/utils/merge.cjs +0 -33
- package/dist/utils/sdk-config.cjs +0 -55
- package/dist/utils/sdk-config.cjs.map +0 -1
- /package/dist/components/author-page/_helpers/{json-ld.cjs.map → json-ld.mjs.map} +0 -0
- /package/dist/components/blog-post/_helpers/{calc-reading-time.cjs.map → calc-reading-time.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { PostPreview, PostPreviewSkeleton } from \"../post-preview\";\nimport { Suspense } from \"react\";\n\nconst TopPostsServer = async ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n // await new Promise(() => {});\n\n const posts = await client.client.content.paginatedPosts.query({\n page,\n });\n\n return (\n <>\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} />\n ))}\n </>\n );\n};\n\nexport const TopPosts = ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n return (\n <Suspense\n fallback={Array.from({ length: 9 }).map((_, i) => (\n <PostPreviewSkeleton key={i} />\n ))}\n >\n <TopPostsServer client={client} page={page} />\n </Suspense>\n );\n};\n"],"mappings":"AAkBI
|
|
1
|
+
{"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { PostPreview, PostPreviewSkeleton } from \"../post-preview\";\nimport { Suspense } from \"react\";\n\nconst TopPostsServer = async ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n // await new Promise(() => {});\n\n const posts = await client.client.content.paginatedPosts.query({\n page,\n });\n\n return (\n <>\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} />\n ))}\n </>\n );\n};\n\nexport const TopPosts = ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n return (\n <Suspense\n fallback={Array.from({ length: 9 }).map((_, i) => (\n <PostPreviewSkeleton key={i} />\n ))}\n >\n <TopPostsServer client={client} page={page} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBI;AAjBJ,0BAAiD;AACjD,mBAAyB;AAEzB,MAAM,iBAAiB,OAAO;AAAA,EAC5B;AAAA,EACA;AACF,MAGM;AAGJ,QAAM,QAAQ,MAAM,OAAO,OAAO,QAAQ,eAAe,MAAM;AAAA,IAC7D;AAAA,EACF,CAAC;AAED,SACE,2EACG,gBAAM,IAAI,CAAC,SACV,4CAAC,mCAA2C,QAA1B,eAAe,KAAK,IAAkB,CACzD,GACH;AAEJ;AAEO,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AACF,MAGM;AACJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MAC1C,4CAAC,6CAAyB,CAAG,CAC9B;AAAA,MAED,sDAAC,kBAAe,QAAgB,MAAY;AAAA;AAAA,EAC9C;AAEJ;","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PostPreview, PostPreviewSkeleton } from "../post-preview";
|
|
3
|
+
import { Suspense } from "react";
|
|
4
|
+
const TopPostsServer = async ({
|
|
5
|
+
client,
|
|
6
|
+
page
|
|
7
|
+
}) => {
|
|
8
|
+
const posts = await client.client.content.paginatedPosts.query({
|
|
9
|
+
page
|
|
10
|
+
});
|
|
11
|
+
return /* @__PURE__ */ jsx(Fragment, { children: posts.map((post) => /* @__PURE__ */ jsx(PostPreview, { post }, "top-posts-" + post.slug)) });
|
|
12
|
+
};
|
|
13
|
+
const TopPosts = ({
|
|
14
|
+
client,
|
|
15
|
+
page
|
|
16
|
+
}) => {
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
Suspense,
|
|
19
|
+
{
|
|
20
|
+
fallback: Array.from({ length: 9 }).map((_, i) => /* @__PURE__ */ jsx(PostPreviewSkeleton, {}, i)),
|
|
21
|
+
children: /* @__PURE__ */ jsx(TopPostsServer, { client, page })
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
export {
|
|
26
|
+
TopPosts
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=top-posts.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { PostPreview, PostPreviewSkeleton } from \"../post-preview\";\nimport { Suspense } from \"react\";\n\nconst TopPostsServer = async ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n // await new Promise(() => {});\n\n const posts = await client.client.content.paginatedPosts.query({\n page,\n });\n\n return (\n <>\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} />\n ))}\n </>\n );\n};\n\nexport const TopPosts = ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n return (\n <Suspense\n fallback={Array.from({ length: 9 }).map((_, i) => (\n <PostPreviewSkeleton key={i} />\n ))}\n >\n <TopPostsServer client={client} page={page} />\n </Suspense>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { PostPreview, PostPreviewSkeleton } from \"../post-preview\";\nimport { Suspense } from \"react\";\n\nconst TopPostsServer = async ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n // await new Promise(() => {});\n\n const posts = await client.client.content.paginatedPosts.query({\n page,\n });\n\n return (\n <>\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} />\n ))}\n </>\n );\n};\n\nexport const TopPosts = ({\n client,\n page,\n}: {\n client: Opinly;\n page: number;\n}) => {\n return (\n <Suspense\n fallback={Array.from({ length: 9 }).map((_, i) => (\n <PostPreviewSkeleton key={i} />\n ))}\n >\n <TopPostsServer client={client} page={page} />\n </Suspense>\n );\n};\n"],"mappings":"AAkBI,mBAEI,WAFJ;AAjBJ,SAAS,aAAa,2BAA2B;AACjD,SAAS,gBAAgB;AAEzB,MAAM,iBAAiB,OAAO;AAAA,EAC5B;AAAA,EACA;AACF,MAGM;AAGJ,QAAM,QAAQ,MAAM,OAAO,OAAO,QAAQ,eAAe,MAAM;AAAA,IAC7D;AAAA,EACF,CAAC;AAED,SACE,gCACG,gBAAM,IAAI,CAAC,SACV,oBAAC,eAA2C,QAA1B,eAAe,KAAK,IAAkB,CACzD,GACH;AAEJ;AAEO,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AACF,MAGM;AACJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MAC1C,oBAAC,yBAAyB,CAAG,CAC9B;AAAA,MAED,8BAAC,kBAAe,QAAgB,MAAY;AAAA;AAAA,EAC9C;AAEJ;","names":[]}
|
|
@@ -1,26 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 not_found_exports = {};
|
|
30
|
+
__export(not_found_exports, {
|
|
31
|
+
OpinlyNotFound: () => OpinlyNotFound
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(not_found_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_link = __toESM(require("next/link"), 1);
|
|
3
36
|
const OpinlyNotFound = () => {
|
|
4
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5
|
-
/* @__PURE__ */ jsx("div", { className: "bg-orange-600 py-10", children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4", children: [
|
|
6
|
-
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold mb-2 leading-tight text-white", children: "Post Not Found" }),
|
|
7
|
-
/* @__PURE__ */ jsx("div", { className: "text-sm mb-4 text-orange-100", children: "The post you're looking for doesn't exist or has been removed." })
|
|
37
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
38
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-orange-600 py-10", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-7xl mx-auto px-4", children: [
|
|
39
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-4xl font-bold mb-2 leading-tight text-white", children: "Post Not Found" }),
|
|
40
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm mb-4 text-orange-100", children: "The post you're looking for doesn't exist or has been removed." })
|
|
8
41
|
] }) }),
|
|
9
|
-
/* @__PURE__ */ jsx("div", { className: "flex max-w-7xl mx-auto mt-10 gap-12", children: /* @__PURE__ */ jsx("article", { className: "w-2/3", children: /* @__PURE__ */ jsxs("div", { className: "prose max-w-none", children: [
|
|
10
|
-
/* @__PURE__ */ jsx("p", { className: "text-gray-600", children: "You can try:" }),
|
|
11
|
-
/* @__PURE__ */ jsxs("ul", { className: "list-disc pl-6 my-4", children: [
|
|
12
|
-
/* @__PURE__ */ jsx("li", { children: "Checking the URL for typos" }),
|
|
13
|
-
/* @__PURE__ */ jsxs("li", { children: [
|
|
42
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex max-w-7xl mx-auto mt-10 gap-12", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("article", { className: "w-2/3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "prose max-w-none", children: [
|
|
43
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-gray-600", children: "You can try:" }),
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", { className: "list-disc pl-6 my-4", children: [
|
|
45
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "Checking the URL for typos" }),
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { children: [
|
|
14
47
|
"Returning to the",
|
|
15
48
|
" ",
|
|
16
|
-
/* @__PURE__ */ jsx(
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: "/blog", className: "text-blue-600 underline", children: "blog homepage" })
|
|
17
50
|
] }),
|
|
18
|
-
/* @__PURE__ */ jsx("li", { children: "Using the search function to find what you're looking for" })
|
|
51
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "Using the search function to find what you're looking for" })
|
|
19
52
|
] })
|
|
20
53
|
] }) }) })
|
|
21
54
|
] });
|
|
22
55
|
};
|
|
23
|
-
export
|
|
56
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
57
|
+
0 && (module.exports = {
|
|
24
58
|
OpinlyNotFound
|
|
25
|
-
};
|
|
59
|
+
});
|
|
26
60
|
//# sourceMappingURL=not-found.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":"AAII
|
|
1
|
+
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAII;AAJJ,kBAAiB;AAEV,MAAM,iBAAiB,MAAM;AAClC,SACE,4EACE;AAAA,gDAAC,SAAI,WAAU,uBACb,uDAAC,SAAI,WAAU,0BACb;AAAA,kDAAC,QAAG,WAAU,oDAAmD,4BAEjE;AAAA,MACA,4CAAC,SAAI,WAAU,gCAA+B,4EAE9C;AAAA,OACF,GACF;AAAA,IAEA,4CAAC,SAAI,WAAU,uCACb,sDAAC,aAAQ,WAAU,SACjB,uDAAC,SAAI,WAAU,oBACb;AAAA,kDAAC,OAAE,WAAU,iBAAgB,0BAAY;AAAA,MACzC,6CAAC,QAAG,WAAU,uBACZ;AAAA,oDAAC,QAAG,wCAA0B;AAAA,QAC9B,6CAAC,QAAG;AAAA;AAAA,UACe;AAAA,UACjB,4CAAC,YAAAA,SAAA,EAAK,MAAK,SAAQ,WAAU,2BAA0B,2BAEvD;AAAA,WACF;AAAA,QACA,4CAAC,QAAG,uEAAyD;AAAA,SAC/D;AAAA,OACF,GACF,GACF;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Link from "next/link";
|
|
3
|
+
const OpinlyNotFound = () => {
|
|
4
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5
|
+
/* @__PURE__ */ jsx("div", { className: "bg-orange-600 py-10", children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4", children: [
|
|
6
|
+
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold mb-2 leading-tight text-white", children: "Post Not Found" }),
|
|
7
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm mb-4 text-orange-100", children: "The post you're looking for doesn't exist or has been removed." })
|
|
8
|
+
] }) }),
|
|
9
|
+
/* @__PURE__ */ jsx("div", { className: "flex max-w-7xl mx-auto mt-10 gap-12", children: /* @__PURE__ */ jsx("article", { className: "w-2/3", children: /* @__PURE__ */ jsxs("div", { className: "prose max-w-none", children: [
|
|
10
|
+
/* @__PURE__ */ jsx("p", { className: "text-gray-600", children: "You can try:" }),
|
|
11
|
+
/* @__PURE__ */ jsxs("ul", { className: "list-disc pl-6 my-4", children: [
|
|
12
|
+
/* @__PURE__ */ jsx("li", { children: "Checking the URL for typos" }),
|
|
13
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
14
|
+
"Returning to the",
|
|
15
|
+
" ",
|
|
16
|
+
/* @__PURE__ */ jsx(Link, { href: "/blog", className: "text-blue-600 underline", children: "blog homepage" })
|
|
17
|
+
] }),
|
|
18
|
+
/* @__PURE__ */ jsx("li", { children: "Using the search function to find what you're looking for" })
|
|
19
|
+
] })
|
|
20
|
+
] }) }) })
|
|
21
|
+
] });
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
OpinlyNotFound
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=not-found.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":"AAII,mBAGM,KADF,YAFJ;AAJJ,OAAO,UAAU;AAEV,MAAM,iBAAiB,MAAM;AAClC,SACE,iCACE;AAAA,wBAAC,SAAI,WAAU,uBACb,+BAAC,SAAI,WAAU,0BACb;AAAA,0BAAC,QAAG,WAAU,oDAAmD,4BAEjE;AAAA,MACA,oBAAC,SAAI,WAAU,gCAA+B,4EAE9C;AAAA,OACF,GACF;AAAA,IAEA,oBAAC,SAAI,WAAU,uCACb,8BAAC,aAAQ,WAAU,SACjB,+BAAC,SAAI,WAAU,oBACb;AAAA,0BAAC,OAAE,WAAU,iBAAgB,0BAAY;AAAA,MACzC,qBAAC,QAAG,WAAU,uBACZ;AAAA,4BAAC,QAAG,wCAA0B;AAAA,QAC9B,qBAAC,QAAG;AAAA;AAAA,UACe;AAAA,UACjB,oBAAC,QAAK,MAAK,SAAQ,WAAU,2BAA0B,2BAEvD;AAAA,WACF;AAAA,QACA,oBAAC,QAAG,uEAAyD;AAAA,SAC/D;AAAA,OACF,GACF,GACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,33 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 opinly_blog_exports = {};
|
|
20
|
+
__export(opinly_blog_exports, {
|
|
21
|
+
OpinlyBlog: () => OpinlyBlog
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(opinly_blog_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_blog_post = require("./blog-post");
|
|
26
|
+
var import_folder_page = require("./folder-page");
|
|
27
|
+
var import_home_page = require("./home-page");
|
|
28
|
+
var import_author_page = require("./author-page");
|
|
29
|
+
var import_not_found = require("./not-found");
|
|
30
|
+
var import_authors_page = require("./authors-page");
|
|
8
31
|
const OpinlyBlog = ({
|
|
9
32
|
blog,
|
|
10
33
|
searchParams,
|
|
11
34
|
client
|
|
12
35
|
}) => {
|
|
13
36
|
if (blog.type === "not-found") {
|
|
14
|
-
return /* @__PURE__ */ jsx(OpinlyNotFound, {});
|
|
37
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_not_found.OpinlyNotFound, {});
|
|
15
38
|
}
|
|
16
39
|
if (blog.type === "home") {
|
|
17
|
-
return /* @__PURE__ */ jsx(HomePage, { searchParams, client });
|
|
40
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_home_page.HomePage, { searchParams, client });
|
|
18
41
|
}
|
|
19
42
|
if (blog.type === "post") {
|
|
20
|
-
return /* @__PURE__ */ jsx(BlogPost, { post: blog.data });
|
|
43
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_blog_post.BlogPost, { post: blog.data });
|
|
21
44
|
}
|
|
22
45
|
if (blog.type === "author") {
|
|
23
|
-
return /* @__PURE__ */ jsx(AuthorPage, { author: blog.data });
|
|
46
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_author_page.AuthorPage, { author: blog.data });
|
|
24
47
|
}
|
|
25
48
|
if (blog.type === "authors") {
|
|
26
|
-
return /* @__PURE__ */ jsx(AuthorsPage, { authors: blog.data });
|
|
49
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_authors_page.AuthorsPage, { authors: blog.data });
|
|
27
50
|
}
|
|
28
|
-
return /* @__PURE__ */ jsx(FolderPage, { folder: blog.data });
|
|
51
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_folder_page.FolderPage, { folder: blog.data });
|
|
29
52
|
};
|
|
30
|
-
export
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
31
55
|
OpinlyBlog
|
|
32
|
-
};
|
|
56
|
+
});
|
|
33
57
|
//# sourceMappingURL=opinly-blog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/opinly-blog.tsx"],"sourcesContent":["import { BlogPost } from \"./blog-post\";\nimport { FolderPage } from \"./folder-page\";\nimport { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { HomePage } from \"./home-page\";\nimport { AuthorPage } from \"./author-page\";\nimport { OpinlyNotFound } from \"./not-found\";\nimport { AuthorsPage } from \"./authors-page\";\n\nexport const OpinlyBlog = ({\n blog,\n searchParams,\n client,\n}: {\n blog: Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>;\n client: Opinly;\n searchParams: { page?: string };\n}) => {\n if (blog.type === \"not-found\") {\n return <OpinlyNotFound />;\n }\n\n if (blog.type === \"home\") {\n return <HomePage searchParams={searchParams} client={client} />;\n }\n\n if (blog.type === \"post\") {\n return <BlogPost post={blog.data} />;\n }\n\n if (blog.type === \"author\") {\n return <AuthorPage author={blog.data} />;\n }\n\n if (blog.type === \"authors\") {\n return <AuthorsPage authors={blog.data} />;\n }\n\n return <FolderPage folder={blog.data} />;\n};\n"],"mappings":"AAkBW;AAlBX,
|
|
1
|
+
{"version":3,"sources":["../../src/components/opinly-blog.tsx"],"sourcesContent":["import { BlogPost } from \"./blog-post\";\nimport { FolderPage } from \"./folder-page\";\nimport { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { HomePage } from \"./home-page\";\nimport { AuthorPage } from \"./author-page\";\nimport { OpinlyNotFound } from \"./not-found\";\nimport { AuthorsPage } from \"./authors-page\";\n\nexport const OpinlyBlog = ({\n blog,\n searchParams,\n client,\n}: {\n blog: Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>;\n client: Opinly;\n searchParams: { page?: string };\n}) => {\n if (blog.type === \"not-found\") {\n return <OpinlyNotFound />;\n }\n\n if (blog.type === \"home\") {\n return <HomePage searchParams={searchParams} client={client} />;\n }\n\n if (blog.type === \"post\") {\n return <BlogPost post={blog.data} />;\n }\n\n if (blog.type === \"author\") {\n return <AuthorPage author={blog.data} />;\n }\n\n if (blog.type === \"authors\") {\n return <AuthorsPage authors={blog.data} />;\n }\n\n return <FolderPage folder={blog.data} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBW;AAlBX,uBAAyB;AACzB,yBAA2B;AAE3B,uBAAyB;AACzB,yBAA2B;AAC3B,uBAA+B;AAC/B,0BAA4B;AAErB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO,4CAAC,mCAAe;AAAA,EACzB;AAEA,MAAI,KAAK,SAAS,QAAQ;AACxB,WAAO,4CAAC,6BAAS,cAA4B,QAAgB;AAAA,EAC/D;AAEA,MAAI,KAAK,SAAS,QAAQ;AACxB,WAAO,4CAAC,6BAAS,MAAM,KAAK,MAAM;AAAA,EACpC;AAEA,MAAI,KAAK,SAAS,UAAU;AAC1B,WAAO,4CAAC,iCAAW,QAAQ,KAAK,MAAM;AAAA,EACxC;AAEA,MAAI,KAAK,SAAS,WAAW;AAC3B,WAAO,4CAAC,mCAAY,SAAS,KAAK,MAAM;AAAA,EAC1C;AAEA,SAAO,4CAAC,iCAAW,QAAQ,KAAK,MAAM;AACxC;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { BlogPost } from "./blog-post";
|
|
3
|
+
import { FolderPage } from "./folder-page";
|
|
4
|
+
import { HomePage } from "./home-page";
|
|
5
|
+
import { AuthorPage } from "./author-page";
|
|
6
|
+
import { OpinlyNotFound } from "./not-found";
|
|
7
|
+
import { AuthorsPage } from "./authors-page";
|
|
8
|
+
const OpinlyBlog = ({
|
|
9
|
+
blog,
|
|
10
|
+
searchParams,
|
|
11
|
+
client
|
|
12
|
+
}) => {
|
|
13
|
+
if (blog.type === "not-found") {
|
|
14
|
+
return /* @__PURE__ */ jsx(OpinlyNotFound, {});
|
|
15
|
+
}
|
|
16
|
+
if (blog.type === "home") {
|
|
17
|
+
return /* @__PURE__ */ jsx(HomePage, { searchParams, client });
|
|
18
|
+
}
|
|
19
|
+
if (blog.type === "post") {
|
|
20
|
+
return /* @__PURE__ */ jsx(BlogPost, { post: blog.data });
|
|
21
|
+
}
|
|
22
|
+
if (blog.type === "author") {
|
|
23
|
+
return /* @__PURE__ */ jsx(AuthorPage, { author: blog.data });
|
|
24
|
+
}
|
|
25
|
+
if (blog.type === "authors") {
|
|
26
|
+
return /* @__PURE__ */ jsx(AuthorsPage, { authors: blog.data });
|
|
27
|
+
}
|
|
28
|
+
return /* @__PURE__ */ jsx(FolderPage, { folder: blog.data });
|
|
29
|
+
};
|
|
30
|
+
export {
|
|
31
|
+
OpinlyBlog
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=opinly-blog.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/opinly-blog.tsx"],"sourcesContent":["import { BlogPost } from \"./blog-post\";\nimport { FolderPage } from \"./folder-page\";\nimport { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { HomePage } from \"./home-page\";\nimport { AuthorPage } from \"./author-page\";\nimport { OpinlyNotFound } from \"./not-found\";\nimport { AuthorsPage } from \"./authors-page\";\n\nexport const OpinlyBlog = ({\n blog,\n searchParams,\n client,\n}: {\n blog: Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>;\n client: Opinly;\n searchParams: { page?: string };\n}) => {\n if (blog.type === \"not-found\") {\n return <OpinlyNotFound />;\n }\n\n if (blog.type === \"home\") {\n return <HomePage searchParams={searchParams} client={client} />;\n }\n\n if (blog.type === \"post\") {\n return <BlogPost post={blog.data} />;\n }\n\n if (blog.type === \"author\") {\n return <AuthorPage author={blog.data} />;\n }\n\n if (blog.type === \"authors\") {\n return <AuthorsPage authors={blog.data} />;\n }\n\n return <FolderPage folder={blog.data} />;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/components/opinly-blog.tsx"],"sourcesContent":["import { BlogPost } from \"./blog-post\";\nimport { FolderPage } from \"./folder-page\";\nimport { Opinly, OpinlyClient } from \"@opinly/backend\";\nimport { HomePage } from \"./home-page\";\nimport { AuthorPage } from \"./author-page\";\nimport { OpinlyNotFound } from \"./not-found\";\nimport { AuthorsPage } from \"./authors-page\";\n\nexport const OpinlyBlog = ({\n blog,\n searchParams,\n client,\n}: {\n blog: Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>;\n client: Opinly;\n searchParams: { page?: string };\n}) => {\n if (blog.type === \"not-found\") {\n return <OpinlyNotFound />;\n }\n\n if (blog.type === \"home\") {\n return <HomePage searchParams={searchParams} client={client} />;\n }\n\n if (blog.type === \"post\") {\n return <BlogPost post={blog.data} />;\n }\n\n if (blog.type === \"author\") {\n return <AuthorPage author={blog.data} />;\n }\n\n if (blog.type === \"authors\") {\n return <AuthorsPage authors={blog.data} />;\n }\n\n return <FolderPage folder={blog.data} />;\n};\n"],"mappings":"AAkBW;AAlBX,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAE3B,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO,oBAAC,kBAAe;AAAA,EACzB;AAEA,MAAI,KAAK,SAAS,QAAQ;AACxB,WAAO,oBAAC,YAAS,cAA4B,QAAgB;AAAA,EAC/D;AAEA,MAAI,KAAK,SAAS,QAAQ;AACxB,WAAO,oBAAC,YAAS,MAAM,KAAK,MAAM;AAAA,EACpC;AAEA,MAAI,KAAK,SAAS,UAAU;AAC1B,WAAO,oBAAC,cAAW,QAAQ,KAAK,MAAM;AAAA,EACxC;AAEA,MAAI,KAAK,SAAS,WAAW;AAC3B,WAAO,oBAAC,eAAY,SAAS,KAAK,MAAM;AAAA,EAC1C;AAEA,SAAO,oBAAC,cAAW,QAAQ,KAAK,MAAM;AACxC;","names":[]}
|
|
@@ -1,76 +1,112 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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 post_preview_exports = {};
|
|
30
|
+
__export(post_preview_exports, {
|
|
31
|
+
PostPreview: () => PostPreview,
|
|
32
|
+
PostPreviewSkeleton: () => PostPreviewSkeleton
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(post_preview_exports);
|
|
35
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_link = __toESM(require("next/link"), 1);
|
|
37
|
+
var import_image = __toESM(require("next/image"), 1);
|
|
38
|
+
var import_sdk_config = require("../utils/sdk-config");
|
|
39
|
+
var import_dates = require("../utils/dates");
|
|
40
|
+
const PostPreviewSkeleton = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "w-full h-full ", children: [
|
|
41
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse mb-5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }) }),
|
|
42
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center space-x-2 text-sm text-muted-foreground mb-3", children: [
|
|
43
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full" }),
|
|
45
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
12
46
|
] }),
|
|
13
|
-
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2" }),
|
|
14
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-1 mt-1 pr-4", children: [
|
|
15
|
-
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
16
|
-
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
47
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2" }),
|
|
48
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-1 mt-1 pr-4", children: [
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
50
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
17
51
|
] }),
|
|
18
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2 text-xs text-gray-500 mt-2", children: [
|
|
19
|
-
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
20
|
-
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
52
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center space-x-2 text-xs text-gray-500 mt-2", children: [
|
|
53
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
54
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
21
55
|
] })
|
|
22
56
|
] });
|
|
23
57
|
const PostPreview = ({
|
|
24
58
|
post
|
|
25
59
|
}) => {
|
|
26
|
-
const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : ""}${post.slug}`;
|
|
27
|
-
return /* @__PURE__ */ jsxs("div", { className: "w-full h-full ", children: [
|
|
28
|
-
post.image?.fileKey && /* @__PURE__ */ jsx(
|
|
29
|
-
|
|
60
|
+
const postSlug = `${import_sdk_config.opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : ""}${post.slug}`;
|
|
61
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "w-full h-full ", children: [
|
|
62
|
+
post.image?.fileKey && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: postSlug, className: "group", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative w-full h-48 mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
63
|
+
import_image.default,
|
|
30
64
|
{
|
|
31
|
-
|
|
65
|
+
unoptimized: import_sdk_config.opinlyConfig.unoptimizedImages,
|
|
66
|
+
src: `${import_sdk_config.opinlyConfig.imagesPrefix}/${post.image.fileKey}`,
|
|
32
67
|
alt: post.title,
|
|
33
68
|
fill: true,
|
|
34
69
|
className: "object-cover rounded-lg"
|
|
35
70
|
}
|
|
36
71
|
) }) }),
|
|
37
|
-
/* @__PURE__ */ jsxs("div", { className: "text-sm text-muted-foreground mb-1", children: [
|
|
38
|
-
post.folder?.name && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
39
|
-
/* @__PURE__ */ jsx(
|
|
40
|
-
|
|
72
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-sm text-muted-foreground mb-1", children: [
|
|
73
|
+
post.folder?.name && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
74
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
75
|
+
import_link.default,
|
|
41
76
|
{
|
|
42
|
-
href: `${opinlyConfig.blogPrefix}/${post.folder.slug}`,
|
|
77
|
+
href: `${import_sdk_config.opinlyConfig.blogPrefix}/${post.folder.slug}`,
|
|
43
78
|
className: "hover:underline",
|
|
44
79
|
children: post.folder.name
|
|
45
80
|
}
|
|
46
81
|
),
|
|
47
|
-
/* @__PURE__ */ jsx("span", { className: "mx-1", children: "\xB7" })
|
|
82
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mx-1", children: "\xB7" })
|
|
48
83
|
] }),
|
|
49
84
|
" ",
|
|
50
|
-
formatDate(post.firstPublishedAt)
|
|
85
|
+
(0, import_dates.formatDate)(post.firstPublishedAt)
|
|
51
86
|
] }),
|
|
52
|
-
/* @__PURE__ */ jsx(
|
|
53
|
-
post.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 mt-1 line-clamp-2", children: post.description }),
|
|
54
|
-
/* @__PURE__ */ jsxs("div", { className: "text-xs text-gray-500 mt-2", children: [
|
|
55
|
-
post.author && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
56
|
-
/* @__PURE__ */ jsx(
|
|
57
|
-
|
|
87
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: postSlug, className: "group", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg font-semibold leading-snug group-hover:underline", children: post.title }) }),
|
|
88
|
+
post.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-gray-600 mt-1 line-clamp-2", children: post.description }),
|
|
89
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-xs text-gray-500 mt-2", children: [
|
|
90
|
+
post.author && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
91
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
+
import_link.default,
|
|
58
93
|
{
|
|
59
|
-
href: `${opinlyConfig.blogPrefix}/authors/${post.author.slug}`,
|
|
94
|
+
href: `${import_sdk_config.opinlyConfig.blogPrefix}/authors/${post.author.slug}`,
|
|
60
95
|
className: "font-medium hover:underline",
|
|
61
96
|
children: post.author?.name
|
|
62
97
|
}
|
|
63
98
|
),
|
|
64
99
|
" ",
|
|
65
|
-
/* @__PURE__ */ jsx("span", { className: "mx-1", children: "\xB7" })
|
|
100
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mx-1", children: "\xB7" })
|
|
66
101
|
] }),
|
|
67
102
|
" ",
|
|
68
|
-
formatDate(post.firstPublishedAt)
|
|
103
|
+
(0, import_dates.formatDate)(post.firstPublishedAt)
|
|
69
104
|
] })
|
|
70
105
|
] });
|
|
71
106
|
};
|
|
72
|
-
export
|
|
107
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
108
|
+
0 && (module.exports = {
|
|
73
109
|
PostPreview,
|
|
74
110
|
PostPreviewSkeleton
|
|
75
|
-
};
|
|
111
|
+
});
|
|
76
112
|
//# sourceMappingURL=post-preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/post-preview.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport Link from \"next/link\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\nimport { formatDate } from \"../utils/dates\";\n\nexport const PostPreviewSkeleton: React.FC = () => (\n <div className=\"w-full h-full \">\n {/* Image placeholder (with same mb-4 as real) */}\n <div className=\"animate-pulse mb-5\">\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n </div>\n\n {/* Folder · dot · date (text-sm text-muted-foreground mb-1) */}\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground mb-3\">\n <div className=\"animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full\" />\n <div className=\"animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Title (text-lg font-semibold leading-snug) */}\n <div className=\"animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2\" />\n\n {/* Description (text-sm mt-1 line-clamp-2) */}\n <div className=\"space-y-1 mt-1 pr-4\">\n <div className=\"animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Author · date (text-xs text-gray-500 mt-2 flex items-center space-x-2) */}\n <div className=\"flex items-center space-x-2 text-xs text-gray-500 mt-2\">\n <div className=\"animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n </div>\n);\nexport const PostPreview = ({\n post,\n}: {\n post: NonNullable<\n NonNullable<\n Awaited<\n ReturnType<Opinly[\"client\"][\"content\"][\"authorPage\"][\"query\"]>\n >[\"data\"]\n >[\"posts\"][number]\n >;\n}) => {\n const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : \"\"}${post.slug}`;\n\n return (\n <div className=\"w-full h-full \">\n {post.image?.fileKey && (\n <Link href={postSlug} className=\"group\">\n <div className=\"relative w-full h-48 mb-4\">\n <Image\n src={`${opinlyConfig.imagesPrefix}/${post.image.fileKey}`}\n alt={post.title}\n fill\n className=\"object-cover rounded-lg\"\n />\n </div>\n </Link>\n )}\n <div className=\"text-sm text-muted-foreground mb-1\">\n {post.folder?.name && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/${post.folder.slug}`}\n className=\"hover:underline\"\n >\n {post.folder.name}\n </Link>\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n <Link href={postSlug} className=\"group\">\n <h2 className=\"text-lg font-semibold leading-snug group-hover:underline\">\n {post.title}\n </h2>\n </Link>\n\n {post.description && (\n <p className=\"text-sm text-gray-600 mt-1 line-clamp-2\">\n {post.description}\n </p>\n )}\n <div className=\"text-xs text-gray-500 mt-2\">\n {post.author && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${post.author.slug}`}\n className=\"font-medium hover:underline\"\n >\n {post.author?.name}\n </Link>{\" \"}\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n </div>\n );\n};\n"],"mappings":"AAUM
|
|
1
|
+
{"version":3,"sources":["../../src/components/post-preview.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport Link from \"next/link\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\nimport { formatDate } from \"../utils/dates\";\n\nexport const PostPreviewSkeleton: React.FC = () => (\n <div className=\"w-full h-full \">\n {/* Image placeholder (with same mb-4 as real) */}\n <div className=\"animate-pulse mb-5\">\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n </div>\n\n {/* Folder · dot · date (text-sm text-muted-foreground mb-1) */}\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground mb-3\">\n <div className=\"animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full\" />\n <div className=\"animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Title (text-lg font-semibold leading-snug) */}\n <div className=\"animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2\" />\n\n {/* Description (text-sm mt-1 line-clamp-2) */}\n <div className=\"space-y-1 mt-1 pr-4\">\n <div className=\"animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Author · date (text-xs text-gray-500 mt-2 flex items-center space-x-2) */}\n <div className=\"flex items-center space-x-2 text-xs text-gray-500 mt-2\">\n <div className=\"animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n </div>\n);\nexport const PostPreview = ({\n post,\n}: {\n post: NonNullable<\n NonNullable<\n Awaited<\n ReturnType<Opinly[\"client\"][\"content\"][\"authorPage\"][\"query\"]>\n >[\"data\"]\n >[\"posts\"][number]\n >;\n}) => {\n const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : \"\"}${post.slug}`;\n\n return (\n <div className=\"w-full h-full \">\n {post.image?.fileKey && (\n <Link href={postSlug} className=\"group\">\n <div className=\"relative w-full h-48 mb-4\">\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${post.image.fileKey}`}\n alt={post.title}\n fill\n className=\"object-cover rounded-lg\"\n />\n </div>\n </Link>\n )}\n <div className=\"text-sm text-muted-foreground mb-1\">\n {post.folder?.name && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/${post.folder.slug}`}\n className=\"hover:underline\"\n >\n {post.folder.name}\n </Link>\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n <Link href={postSlug} className=\"group\">\n <h2 className=\"text-lg font-semibold leading-snug group-hover:underline\">\n {post.title}\n </h2>\n </Link>\n\n {post.description && (\n <p className=\"text-sm text-gray-600 mt-1 line-clamp-2\">\n {post.description}\n </p>\n )}\n <div className=\"text-xs text-gray-500 mt-2\">\n {post.author && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${post.author.slug}`}\n className=\"font-medium hover:underline\"\n >\n {post.author?.name}\n </Link>{\" \"}\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUM;AATN,kBAAiB;AACjB,mBAAkB;AAClB,wBAA6B;AAC7B,mBAA2B;AAEpB,MAAM,sBAAgC,MAC3C,6CAAC,SAAI,WAAU,kBAEb;AAAA,8CAAC,SAAI,WAAU,sBACb,sDAAC,SAAI,WAAU,uDAAsD,GACvE;AAAA,EAGA,6CAAC,SAAI,WAAU,kEACb;AAAA,gDAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,4CAAC,SAAI,WAAU,mEAAkE;AAAA,IACjF,4CAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,EAGA,4CAAC,SAAI,WAAU,qEAAoE;AAAA,EAGnF,6CAAC,SAAI,WAAU,uBACb;AAAA,gDAAC,SAAI,WAAU,iEAAgE;AAAA,IAC/E,4CAAC,SAAI,WAAU,kEAAiE;AAAA,KAClF;AAAA,EAGA,6CAAC,SAAI,WAAU,0DACb;AAAA,gDAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,4CAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,GACF;AAEK,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MAQM;AACJ,QAAM,WAAW,GAAG,+BAAa,UAAU,IAAI,KAAK,QAAQ,OAAO,GAAG,KAAK,OAAO,IAAI,MAAM,EAAE,GAAG,KAAK,IAAI;AAE1G,SACE,6CAAC,SAAI,WAAU,kBACZ;AAAA,SAAK,OAAO,WACX,4CAAC,YAAAA,SAAA,EAAK,MAAM,UAAU,WAAU,SAC9B,sDAAC,SAAI,WAAU,6BACb;AAAA,MAAC,aAAAC;AAAA,MAAA;AAAA,QACC,aAAa,+BAAa;AAAA,QAC1B,KAAK,GAAG,+BAAa,YAAY,IAAI,KAAK,MAAM,OAAO;AAAA,QACvD,KAAK,KAAK;AAAA,QACV,MAAI;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,GACF,GACF;AAAA,IAEF,6CAAC,SAAI,WAAU,sCACZ;AAAA,WAAK,QAAQ,QACZ,4EACE;AAAA;AAAA,UAAC,YAAAD;AAAA,UAAA;AAAA,YACC,MAAM,GAAG,+BAAa,UAAU,IAAI,KAAK,OAAO,IAAI;AAAA,YACpD,WAAU;AAAA,YAET,eAAK,OAAO;AAAA;AAAA,QACf;AAAA,QACA,4CAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,UACF,yBAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,IACA,4CAAC,YAAAA,SAAA,EAAK,MAAM,UAAU,WAAU,SAC9B,sDAAC,QAAG,WAAU,4DACX,eAAK,OACR,GACF;AAAA,IAEC,KAAK,eACJ,4CAAC,OAAE,WAAU,2CACV,eAAK,aACR;AAAA,IAEF,6CAAC,SAAI,WAAU,8BACZ;AAAA,WAAK,UACJ,4EACE;AAAA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YACC,MAAM,GAAG,+BAAa,UAAU,YAAY,KAAK,OAAO,IAAI;AAAA,YAC5D,WAAU;AAAA,YAET,eAAK,QAAQ;AAAA;AAAA,QAChB;AAAA,QAAQ;AAAA,QACR,4CAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,UACF,yBAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,KACF;AAEJ;","names":["Link","Image"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Link from "next/link";
|
|
3
|
+
import Image from "next/image";
|
|
4
|
+
import { opinlyConfig } from "../utils/sdk-config";
|
|
5
|
+
import { formatDate } from "../utils/dates";
|
|
6
|
+
const PostPreviewSkeleton = () => /* @__PURE__ */ jsxs("div", { className: "w-full h-full ", children: [
|
|
7
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse mb-5", children: /* @__PURE__ */ jsx("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }) }),
|
|
8
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2 text-sm text-muted-foreground mb-3", children: [
|
|
9
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
10
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full" }),
|
|
11
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
12
|
+
] }),
|
|
13
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2" }),
|
|
14
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1 mt-1 pr-4", children: [
|
|
15
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
16
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
17
|
+
] }),
|
|
18
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2 text-xs text-gray-500 mt-2", children: [
|
|
19
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded" }),
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: "animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded" })
|
|
21
|
+
] })
|
|
22
|
+
] });
|
|
23
|
+
const PostPreview = ({
|
|
24
|
+
post
|
|
25
|
+
}) => {
|
|
26
|
+
const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : ""}${post.slug}`;
|
|
27
|
+
return /* @__PURE__ */ jsxs("div", { className: "w-full h-full ", children: [
|
|
28
|
+
post.image?.fileKey && /* @__PURE__ */ jsx(Link, { href: postSlug, className: "group", children: /* @__PURE__ */ jsx("div", { className: "relative w-full h-48 mb-4", children: /* @__PURE__ */ jsx(
|
|
29
|
+
Image,
|
|
30
|
+
{
|
|
31
|
+
unoptimized: opinlyConfig.unoptimizedImages,
|
|
32
|
+
src: `${opinlyConfig.imagesPrefix}/${post.image.fileKey}`,
|
|
33
|
+
alt: post.title,
|
|
34
|
+
fill: true,
|
|
35
|
+
className: "object-cover rounded-lg"
|
|
36
|
+
}
|
|
37
|
+
) }) }),
|
|
38
|
+
/* @__PURE__ */ jsxs("div", { className: "text-sm text-muted-foreground mb-1", children: [
|
|
39
|
+
post.folder?.name && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
40
|
+
/* @__PURE__ */ jsx(
|
|
41
|
+
Link,
|
|
42
|
+
{
|
|
43
|
+
href: `${opinlyConfig.blogPrefix}/${post.folder.slug}`,
|
|
44
|
+
className: "hover:underline",
|
|
45
|
+
children: post.folder.name
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ jsx("span", { className: "mx-1", children: "\xB7" })
|
|
49
|
+
] }),
|
|
50
|
+
" ",
|
|
51
|
+
formatDate(post.firstPublishedAt)
|
|
52
|
+
] }),
|
|
53
|
+
/* @__PURE__ */ jsx(Link, { href: postSlug, className: "group", children: /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold leading-snug group-hover:underline", children: post.title }) }),
|
|
54
|
+
post.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 mt-1 line-clamp-2", children: post.description }),
|
|
55
|
+
/* @__PURE__ */ jsxs("div", { className: "text-xs text-gray-500 mt-2", children: [
|
|
56
|
+
post.author && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
Link,
|
|
59
|
+
{
|
|
60
|
+
href: `${opinlyConfig.blogPrefix}/authors/${post.author.slug}`,
|
|
61
|
+
className: "font-medium hover:underline",
|
|
62
|
+
children: post.author?.name
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
" ",
|
|
66
|
+
/* @__PURE__ */ jsx("span", { className: "mx-1", children: "\xB7" })
|
|
67
|
+
] }),
|
|
68
|
+
" ",
|
|
69
|
+
formatDate(post.firstPublishedAt)
|
|
70
|
+
] })
|
|
71
|
+
] });
|
|
72
|
+
};
|
|
73
|
+
export {
|
|
74
|
+
PostPreview,
|
|
75
|
+
PostPreviewSkeleton
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=post-preview.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/post-preview.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport Link from \"next/link\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\nimport { formatDate } from \"../utils/dates\";\n\nexport const PostPreviewSkeleton: React.FC = () => (\n <div className=\"w-full h-full \">\n {/* Image placeholder (with same mb-4 as real) */}\n <div className=\"animate-pulse mb-5\">\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n </div>\n\n {/* Folder · dot · date (text-sm text-muted-foreground mb-1) */}\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground mb-3\">\n <div className=\"animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full\" />\n <div className=\"animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Title (text-lg font-semibold leading-snug) */}\n <div className=\"animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2\" />\n\n {/* Description (text-sm mt-1 line-clamp-2) */}\n <div className=\"space-y-1 mt-1 pr-4\">\n <div className=\"animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Author · date (text-xs text-gray-500 mt-2 flex items-center space-x-2) */}\n <div className=\"flex items-center space-x-2 text-xs text-gray-500 mt-2\">\n <div className=\"animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n </div>\n);\nexport const PostPreview = ({\n post,\n}: {\n post: NonNullable<\n NonNullable<\n Awaited<\n ReturnType<Opinly[\"client\"][\"content\"][\"authorPage\"][\"query\"]>\n >[\"data\"]\n >[\"posts\"][number]\n >;\n}) => {\n const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : \"\"}${post.slug}`;\n\n return (\n <div className=\"w-full h-full \">\n {post.image?.fileKey && (\n <Link href={postSlug} className=\"group\">\n <div className=\"relative w-full h-48 mb-4\">\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${post.image.fileKey}`}\n alt={post.title}\n fill\n className=\"object-cover rounded-lg\"\n />\n </div>\n </Link>\n )}\n <div className=\"text-sm text-muted-foreground mb-1\">\n {post.folder?.name && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/${post.folder.slug}`}\n className=\"hover:underline\"\n >\n {post.folder.name}\n </Link>\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n <Link href={postSlug} className=\"group\">\n <h2 className=\"text-lg font-semibold leading-snug group-hover:underline\">\n {post.title}\n </h2>\n </Link>\n\n {post.description && (\n <p className=\"text-sm text-gray-600 mt-1 line-clamp-2\">\n {post.description}\n </p>\n )}\n <div className=\"text-xs text-gray-500 mt-2\">\n {post.author && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${post.author.slug}`}\n className=\"font-medium hover:underline\"\n >\n {post.author?.name}\n </Link>{\" \"}\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n </div>\n );\n};\n"],"mappings":"AAUM,SAwDI,UAxDJ,KAIF,YAJE;AATN,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAEpB,MAAM,sBAAgC,MAC3C,qBAAC,SAAI,WAAU,kBAEb;AAAA,sBAAC,SAAI,WAAU,sBACb,8BAAC,SAAI,WAAU,uDAAsD,GACvE;AAAA,EAGA,qBAAC,SAAI,WAAU,kEACb;AAAA,wBAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,oBAAC,SAAI,WAAU,mEAAkE;AAAA,IACjF,oBAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,EAGA,oBAAC,SAAI,WAAU,qEAAoE;AAAA,EAGnF,qBAAC,SAAI,WAAU,uBACb;AAAA,wBAAC,SAAI,WAAU,iEAAgE;AAAA,IAC/E,oBAAC,SAAI,WAAU,kEAAiE;AAAA,KAClF;AAAA,EAGA,qBAAC,SAAI,WAAU,0DACb;AAAA,wBAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,oBAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,GACF;AAEK,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MAQM;AACJ,QAAM,WAAW,GAAG,aAAa,UAAU,IAAI,KAAK,QAAQ,OAAO,GAAG,KAAK,OAAO,IAAI,MAAM,EAAE,GAAG,KAAK,IAAI;AAE1G,SACE,qBAAC,SAAI,WAAU,kBACZ;AAAA,SAAK,OAAO,WACX,oBAAC,QAAK,MAAM,UAAU,WAAU,SAC9B,8BAAC,SAAI,WAAU,6BACb;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,aAAa;AAAA,QAC1B,KAAK,GAAG,aAAa,YAAY,IAAI,KAAK,MAAM,OAAO;AAAA,QACvD,KAAK,KAAK;AAAA,QACV,MAAI;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,GACF,GACF;AAAA,IAEF,qBAAC,SAAI,WAAU,sCACZ;AAAA,WAAK,QAAQ,QACZ,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,GAAG,aAAa,UAAU,IAAI,KAAK,OAAO,IAAI;AAAA,YACpD,WAAU;AAAA,YAET,eAAK,OAAO;AAAA;AAAA,QACf;AAAA,QACA,oBAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,MACF,WAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,IACA,oBAAC,QAAK,MAAM,UAAU,WAAU,SAC9B,8BAAC,QAAG,WAAU,4DACX,eAAK,OACR,GACF;AAAA,IAEC,KAAK,eACJ,oBAAC,OAAE,WAAU,2CACV,eAAK,aACR;AAAA,IAEF,qBAAC,SAAI,WAAU,8BACZ;AAAA,WAAK,UACJ,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,GAAG,aAAa,UAAU,YAAY,KAAK,OAAO,IAAI;AAAA,YAC5D,WAAU;AAAA,YAET,eAAK,QAAQ;AAAA;AAAA,QAChB;AAAA,QAAQ;AAAA,QACR,oBAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,MACF,WAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,KACF;AAEJ;","names":[]}
|