awesome-uses/src/components/Topics.js

53 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-02-20 20:41:29 +00:00
import { Link, useParams, useRouteLoaderData } from '@remix-run/react';
2020-01-08 16:06:32 +00:00
import * as icons from '../util/icons';
2020-01-07 20:23:53 +00:00
export default function Topics() {
2023-02-20 20:41:29 +00:00
const { tags, countries, devices } = useRouteLoaderData("root");
const params = useParams();
const currentTag = params.tag || 'all';
2020-01-07 20:23:53 +00:00
return (
2023-02-20 20:41:29 +00:00
<div className="Tags">
{tags.map((tag) => (
<Link
prefetch="intent"
key={`tag-${tag.name}`}
to={
tag.name === "all" ? "/" : `/like/${encodeURIComponent(tag.name)}`
}
className={`Tag ${currentTag === tag.name ? "currentTag" : ""}`}
2020-01-07 20:23:53 +00:00
>
{tag.name}
2023-02-20 20:41:29 +00:00
<span className="TagCount">{tag.count}</span>
</Link>
2020-01-07 20:23:53 +00:00
))}
2023-02-20 20:41:29 +00:00
{countries.map((tag) => (
<Link
to={`/like/${tag.emoji}`}
prefetch="intent"
className={`Tag ${currentTag === tag.emoji ? "currentTag" : ""}`}
2020-01-07 20:23:53 +00:00
key={`filter-${tag.name}`}
title={tag.name}
>
2023-02-20 20:41:29 +00:00
<span className="TagEmoji">{tag.emoji}</span>
<span className="TagCount">{tag.count}</span>
</Link>
2020-01-07 20:23:53 +00:00
))}
2023-02-20 20:41:29 +00:00
{devices.map((tag) => (
<Link
to={`/like/${tag.name}`}
className={`Tag ${currentTag === tag.name ? "currentTag" : ""}`}
prefetch="intent"
2020-01-08 11:44:52 +00:00
key={`filter-${tag.name}`}
title={tag.name}
>
2020-01-08 16:06:32 +00:00
<img height="20px" src={icons[tag.name]} alt={tag.name} />
2023-02-20 20:41:29 +00:00
<span className="TagCount">{tag.count}</span>
</Link>
2020-01-08 11:44:52 +00:00
))}
2023-02-20 20:41:29 +00:00
</div>
2020-01-07 20:23:53 +00:00
);
}