Skip to content

Commit ecb88e5

Browse files
authored
add React Native Directory page link (#53)
1 parent 7dd94a7 commit ecb88e5

File tree

5 files changed

+47
-8
lines changed

5 files changed

+47
-8
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import DirectoryLogo from '~/public/icons/directory-icon.svg';
2+
3+
import Tooltip from './Tooltip';
4+
5+
type Props = { packageName?: string };
6+
7+
export function DirectoryLink({ packageName }: Props) {
8+
if (!packageName) {
9+
return (
10+
<span className="w-3.5 text-center text-secondary opacity-60 select-none">
11+
-
12+
</span>
13+
);
14+
}
15+
16+
return (
17+
<Tooltip content="Visit React Native Directory page">
18+
<a
19+
href={`https://reactnative.directory/package/${packageName}`}
20+
target="_blank"
21+
className="transition-opacity hover:opacity-70">
22+
<DirectoryLogo className="size-3.5 text-secondary" />
23+
</a>
24+
</Tooltip>
25+
);
26+
}

website/components/GitHubRepoLink.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ type Props = { repositoryURL?: string };
77
export function GitHubRepoLink({ repositoryURL }: Props) {
88
if (!repositoryURL) {
99
return (
10-
<span className="w-3.5 text-center text-secondary select-none">-</span>
10+
<span className="w-3.5 text-center text-secondary opacity-60 select-none">
11+
-
12+
</span>
1113
);
1214
}
1315

website/components/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default function Header() {
1919
const { query, setQuery } = useSearch();
2020

2121
return (
22-
<header className="border-b border-b-border sticky bg-background/75 backdrop-blur-lg top-0">
22+
<header className="border-b border-b-border sticky bg-background/75 backdrop-blur-lg top-0 z-10">
2323
<div className="flex flex-row min-h-[58px] items-center gap-6 max-w-[1280px] w-full mx-auto px-4">
2424
<div className="flex gap-2 items-center">
2525
<Logo className="text-brand size-8" />

website/components/Table.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
} from '@tanstack/react-table';
1111
import { twMerge } from 'tailwind-merge';
1212

13+
import { DirectoryLink } from '~/components/DirectoryLink';
1314
import { EntryNotes } from '~/components/EntryNotes';
1415
import { GitHubRepoLink } from '~/components/GitHubRepoLink';
1516
import { useSearch } from '~/context/SearchContext';
@@ -59,13 +60,16 @@ export default function Table({ platform }: Props) {
5960
const notes = info.row.original.notes;
6061

6162
if (!entry.includes(' ')) {
62-
const repositoryURL =
63-
info.row.original.repositoryURLs?.[getCleanPackageName(entry)];
63+
const packageName = getCleanPackageName(entry);
64+
const repositoryURL = info.row.original.repositoryURLs?.[packageName];
6465
return (
6566
<div className="flex items-center gap-1.5">
6667
{entry}
6768
<div className="flex items-center gap-1.5 ml-auto">
6869
<EntryNotes notes={notes} />
70+
<DirectoryLink
71+
packageName={repositoryURL ? packageName : undefined}
72+
/>
6973
<GitHubRepoLink repositoryURL={repositoryURL} />
7074
</div>
7175
</div>
@@ -75,13 +79,17 @@ export default function Table({ platform }: Props) {
7579
return (
7680
<div className="flex flex-col">
7781
{entry.split(' ').map((lib: string) => {
82+
const packageName = getCleanPackageName(lib);
7883
const repositoryURL =
79-
info.row.original.repositoryURLs?.[getCleanPackageName(lib)];
84+
info.row.original.repositoryURLs?.[packageName];
8085
return (
8186
<div className="flex items-center gap-1.5" key={lib}>
8287
{lib}
8388
<div className="flex items-center gap-1.5 ml-auto">
8489
<EntryNotes notes={notes} />
90+
<DirectoryLink
91+
packageName={repositoryURL ? packageName : undefined}
92+
/>
8593
<GitHubRepoLink repositoryURL={repositoryURL} />
8694
</div>
8795
</div>
@@ -117,7 +125,7 @@ export default function Table({ platform }: Props) {
117125
const rowsCount = table.getRowModel().rows.length;
118126

119127
return (
120-
<div className="border border-border rounded-lg shadow-xs overflow-hidden overflow-x-auto mb-4">
128+
<div className="border border-border rounded-lg shadow-xs overflow-hidden overflow-x-auto mb-4 dark:shadow-sm">
121129
<table className="w-full">
122130
<thead className="bg-subtle">
123131
{table.getHeaderGroups().map(headerGroup => (
@@ -126,7 +134,7 @@ export default function Table({ platform }: Props) {
126134
<th
127135
className={twMerge(
128136
'text-sm px-2 py-2 whitespace-nowrap border-r border-border',
129-
'last:!border-r-0',
137+
'last:border-r-0!',
130138
header.index === 0
131139
? 'text-left pl-3 min-w-[300px]'
132140
: 'text-center'
@@ -152,7 +160,7 @@ export default function Table({ platform }: Props) {
152160
key={cell.id}
153161
className={twMerge(
154162
'text-sm px-2 py-0.5 border-r border-border',
155-
'last:!border-r-0',
163+
'last:border-r-0!',
156164
row.index === 0 && 'pt-1',
157165
row.index === rowsCount - 1 && 'pb-1',
158166
cell.column.getIsFirstColumn()
Lines changed: 3 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)