diff --git a/themes/example/components/ExampleRecentComments.js b/themes/example/components/ExampleRecentComments.js new file mode 100644 index 00000000..5447b7cc --- /dev/null +++ b/themes/example/components/ExampleRecentComments.js @@ -0,0 +1,35 @@ +import React from 'react' +import { RecentComments } from '@waline/client' +import BLOG from '@/blog.config' +import Link from 'next/link' + +/** + * @see https://waline.js.org/guide/get-started.html + * @param {*} props + * @returns + */ +const ExampleRecentComments = (props) => { + const [comments, updateComments] = React.useState([]) + const [onLoading, changeLoading] = React.useState(true) + React.useEffect(() => { + RecentComments({ + serverURL: BLOG.COMMENT_WALINE_SERVER_URL, + count: 5 + }).then(({ comments }) => { + changeLoading(false) + updateComments(comments) + }) + }, []) + + return <> + {onLoading &&
Loading...
} + {!onLoading && comments && comments.length === 0 &&
No Comments
} + {!onLoading && comments && comments.length > 0 && comments.map((comment) =>
+
+
-- {comment.nick}
+
)} + + +} + +export default ExampleRecentComments diff --git a/themes/example/components/SideBar.js b/themes/example/components/SideBar.js index b280cf89..823c9993 100644 --- a/themes/example/components/SideBar.js +++ b/themes/example/components/SideBar.js @@ -1,6 +1,8 @@ +import BLOG from '@/blog.config' import Live2D from '@/components/Live2D' import { useGlobal } from '@/lib/global' import Link from 'next/link' +import ExampleRecentComments from './ExampleRecentComments' export const SideBar = (props) => { const { locale } = useGlobal() @@ -36,6 +38,14 @@ export const SideBar = (props) => {
+ {BLOG.COMMENT_WALINE_SERVER_URL && } + diff --git a/themes/hexo/components/SideRight.js b/themes/hexo/components/SideRight.js index 4a5508dd..aea16cb3 100644 --- a/themes/hexo/components/SideRight.js +++ b/themes/hexo/components/SideRight.js @@ -6,7 +6,7 @@ import Catalog from './Catalog' import { InfoCard } from './InfoCard' import { AnalyticsCard } from './AnalyticsCard' import CONFIG_HEXO from '../config_hexo' -import WalineRecentComment from '@/components/WalineRecentsComments' +import WalineRecentComment from './WalineRecentsComments' import BLOG from '@/blog.config' /** diff --git a/components/WalineRecentsComments.js b/themes/hexo/components/WalineRecentsComments.js similarity index 81% rename from components/WalineRecentsComments.js rename to themes/hexo/components/WalineRecentsComments.js index b1142383..f31fdb75 100644 --- a/components/WalineRecentsComments.js +++ b/themes/hexo/components/WalineRecentsComments.js @@ -32,9 +32,9 @@ const WalineRecentComment = (props) => { {onLoading &&
Loading...
} {!onLoading && comments && comments.length === 0 &&
No Comments
} - {!onLoading && comments && comments.length > 0 && comments.map((comment) =>
+ {!onLoading && comments && comments.length > 0 && comments.map((comment) =>
- +
)} diff --git a/themes/next/components/NextRecentComments.js b/themes/next/components/NextRecentComments.js new file mode 100644 index 00000000..caa84ef2 --- /dev/null +++ b/themes/next/components/NextRecentComments.js @@ -0,0 +1,35 @@ +import React from 'react' +import { RecentComments } from '@waline/client' +import BLOG from '@/blog.config' +import Link from 'next/link' + +/** + * @see https://waline.js.org/guide/get-started.html + * @param {*} props + * @returns + */ +const NextRecentComments = (props) => { + const [comments, updateComments] = React.useState([]) + const [onLoading, changeLoading] = React.useState(true) + React.useEffect(() => { + RecentComments({ + serverURL: BLOG.COMMENT_WALINE_SERVER_URL, + count: 5 + }).then(({ comments }) => { + changeLoading(false) + updateComments(comments) + }) + }, []) + + return <> + {onLoading &&
Loading...
} + {!onLoading && comments && comments.length === 0 &&
No Comments
} + {!onLoading && comments && comments.length > 0 && comments.map((comment) =>
+ )} + + +} + +export default NextRecentComments diff --git a/themes/next/components/SideAreaRight.js b/themes/next/components/SideAreaRight.js index b4f03826..78f2e202 100644 --- a/themes/next/components/SideAreaRight.js +++ b/themes/next/components/SideAreaRight.js @@ -6,6 +6,8 @@ import CategoryGroup from './CategoryGroup' import TagGroups from './TagGroups' import CONFIG_NEXT from '../config_next' import { useRouter } from 'next/router' +import NextRecentComments from './NextRecentComments' +import BLOG from '@/blog.config' /** * 侧边平铺 @@ -77,6 +79,24 @@ const SideAreaRight = (props) => { )} + {BLOG.COMMENT_WALINE_SERVER_URL && +
+
+ + {locale.COMMON.RECENT_COMMENTS} +
+ + + {locale.COMMON.MORE}{' '} + + + +
+
+ +
+
} +
)