|
1 | 1 | 'use client' |
2 | 2 |
|
3 | | -import React, { useMemo } from 'react' |
| 3 | +import { useMemo } from 'react' |
4 | 4 | import clsx from 'clsx' |
5 | 5 | import Link from 'next/link' |
6 | 6 | import RemoveMarkdown from 'remove-markdown' |
| 7 | +import type { ReactNode } from 'react' |
7 | 8 | import type { ReactActivityType } from './types' |
8 | 9 |
|
9 | 10 | import { CollectionRefTypes } from '@mx-space/api-client' |
@@ -149,22 +150,35 @@ export const ActivityCard = ({ activity }: { activity: ReactActivityType }) => { |
149 | 150 | ) |
150 | 151 | } |
151 | 152 | case 'like': { |
| 153 | + let TitleLink: ReactNode = null |
| 154 | + switch (activity.type) { |
| 155 | + case CollectionRefTypes.Post: { |
| 156 | + TitleLink = ( |
| 157 | + <Link href={`/posts/${activity.slug}`}> |
| 158 | + <b>{activity.title}</b> |
| 159 | + </Link> |
| 160 | + ) |
| 161 | + break |
| 162 | + } |
| 163 | + case CollectionRefTypes.Note: { |
| 164 | + TitleLink = ( |
| 165 | + <Link href={`/notes/${activity.nid}`}> |
| 166 | + <b>{activity.title}</b> |
| 167 | + </Link> |
| 168 | + ) |
| 169 | + break |
| 170 | + } |
| 171 | + default: { |
| 172 | + TitleLink = <b>已删除的内容</b> |
| 173 | + } |
| 174 | + } |
152 | 175 | return ( |
153 | 176 | <div className="flex translate-y-1/4 items-start gap-2"> |
154 | 177 | <span className={clsx(iconClassName)}> |
155 | 178 | <i className="icon-[mingcute--heart-line]" /> |
156 | 179 | </span> |
157 | 180 | <div className="space-x-2"> |
158 | | - <small>有人点赞了</small>{' '} |
159 | | - <Link |
160 | | - href={ |
161 | | - activity.slug |
162 | | - ? `/posts/${activity.slug}` |
163 | | - : `/notes/${activity.nid}` |
164 | | - } |
165 | | - > |
166 | | - <b>{activity.title}</b> |
167 | | - </Link> |
| 181 | + <small>有人点赞了</small> {TitleLink} |
168 | 182 | </div> |
169 | 183 | </div> |
170 | 184 | ) |
|
0 commit comments