mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-02-22 02:25:56 +08:00
📝 Docs: 为商店的详情卡片添加跳转链接 (#2623)
This commit is contained in:
parent
7eeccbcb14
commit
0c977f5fd7
@ -45,6 +45,28 @@ export default function ResourceDetailCard({ resource }: Props) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getHomepageLink = (resource: Resource) => {
|
||||||
|
switch (resource.resourceType) {
|
||||||
|
case "plugin":
|
||||||
|
case "adapter":
|
||||||
|
case "driver":
|
||||||
|
return resource.homepage;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const getPypiProjectLink = (resource: Resource) => {
|
||||||
|
switch (resource.resourceType) {
|
||||||
|
case "plugin":
|
||||||
|
case "adapter":
|
||||||
|
case "driver":
|
||||||
|
return `https://pypi.org/project/${resource.project_link}`;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const fetchPypiProject = (projectName: string) =>
|
const fetchPypiProject = (projectName: string) =>
|
||||||
fetch(`https://pypi.org/pypi/${projectName}/json`)
|
fetch(`https://pypi.org/pypi/${projectName}/json`)
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
@ -72,6 +94,8 @@ export default function ResourceDetailCard({ resource }: Props) {
|
|||||||
|
|
||||||
const projectLink = getProjectLink(resource) || "无";
|
const projectLink = getProjectLink(resource) || "无";
|
||||||
const moduleName = getModuleName(resource) || "无";
|
const moduleName = getModuleName(resource) || "无";
|
||||||
|
const homepageLink = getHomepageLink(resource) || undefined;
|
||||||
|
const pypiProjectLink = getPypiProjectLink(resource) || undefined;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -83,7 +107,14 @@ export default function ResourceDetailCard({ resource }: Props) {
|
|||||||
/>
|
/>
|
||||||
<div className="detail-card-title">
|
<div className="detail-card-title">
|
||||||
<span className="detail-card-title-main">{resource.name}</span>
|
<span className="detail-card-title-main">{resource.name}</span>
|
||||||
<span className="detail-card-title-sub">{resource.author}</span>
|
<a
|
||||||
|
className="detail-card-title-sub hover:underline hover:text-primary"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
href={authorLink}
|
||||||
|
>
|
||||||
|
{resource.author}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
className="detail-card-copy-button detail-card-copy-button-desktop"
|
className="detail-card-copy-button detail-card-copy-button-desktop"
|
||||||
@ -134,12 +165,32 @@ export default function ResourceDetailCard({ resource }: Props) {
|
|||||||
|
|
||||||
<div className="detail-card-meta-item">
|
<div className="detail-card-meta-item">
|
||||||
<FontAwesomeIcon fixedWidth icon={["fas", "fingerprint"]} />{" "}
|
<FontAwesomeIcon fixedWidth icon={["fas", "fingerprint"]} />{" "}
|
||||||
<span>{moduleName}</span>
|
<a
|
||||||
|
href={homepageLink}
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className={
|
||||||
|
homepageLink ? "hover:underline hover:text-primary" : undefined
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{moduleName}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="detail-card-meta-item">
|
<div className="detail-card-meta-item">
|
||||||
<FontAwesomeIcon fixedWidth icon={["fas", "cubes"]} />{" "}
|
<FontAwesomeIcon fixedWidth icon={["fas", "cubes"]} />{" "}
|
||||||
<span>{projectLink}</span>
|
<a
|
||||||
|
href={pypiProjectLink}
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className={
|
||||||
|
pypiProjectLink
|
||||||
|
? "hover:underline hover:text-primary"
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{projectLink}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
className="detail-card-copy-button detail-card-copy-button-mobile w-full"
|
className="detail-card-copy-button detail-card-copy-button-mobile w-full"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user