diff --git a/app/pages/news-detail/index.tsx b/app/pages/news-detail/index.tsx index 632796e..bf108df 100644 --- a/app/pages/news-detail/index.tsx +++ b/app/pages/news-detail/index.tsx @@ -1,4 +1,5 @@ import htmlParse from 'html-react-parser' +import { useReadingTime } from 'react-hook-reading-time' import { useRouteLoaderData } from 'react-router' import type { TTagResponse } from '~/apis/common/get-tags' @@ -19,6 +20,8 @@ export const NewsDetailPage = () => { const { title, content, featured_image, slug, author, live_at, tags } = newsDetailData || {} + const { text } = useReadingTime(content || '') + return (
@@ -45,7 +48,7 @@ export const NewsDetailPage = () => {

{live_at && `${formatDate(live_at)}`} ยท - 5 min read + {text}

diff --git a/package.json b/package.json index 707b41b..3464cf6 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "react-colorful": "^5.6.1", "react-dom": "^19.0.0", "react-hook-form": "^7.54.2", + "react-hook-reading-time": "^1.0.0", "react-router": "^7.1.3", "remix-hook-form": "^6.1.3", "tailwind-merge": "^3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c41056b..193c481 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,6 +92,9 @@ importers: react-hook-form: specifier: ^7.54.2 version: 7.54.2(react@19.0.0) + react-hook-reading-time: + specifier: ^1.0.0 + version: 1.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router: specifier: ^7.1.3 version: 7.1.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -3888,6 +3891,13 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 + react-hook-reading-time@1.0.0: + resolution: {integrity: sha512-kIudDiGHCTzBlV95WM6xPN3EBUViQynJvcul/NL+8My6fsl0BeKoCi9Dp19g69PlyF3WLA3QAyjVL99+Ucgs6A==} + engines: {node: '>=8', npm: '>=5'} + peerDependencies: + react: ^16.13.1 + react-dom: ^16.13.1 + react-hotkeys-hook@4.6.1: resolution: {integrity: sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==} peerDependencies: @@ -8611,6 +8621,11 @@ snapshots: dependencies: react: 19.0.0 + react-hook-reading-time@1.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-hotkeys-hook@4.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0