diff --git a/app/components/Link.tsx b/app/components/Link.tsx new file mode 100644 index 0000000..a4805ed --- /dev/null +++ b/app/components/Link.tsx @@ -0,0 +1,11 @@ +import { Link as RemixLink } from "@remix-run/react"; + +type LinkProps = React.PropsWithChildren<{ to: string }>; + +export function Link({ to, children }: LinkProps) { + return ( + + {children} + + ); +} diff --git a/app/routes/blog/Post.tsx b/app/routes/blog/Post.tsx index 7fec1d7..e7585d7 100644 --- a/app/routes/blog/Post.tsx +++ b/app/routes/blog/Post.tsx @@ -9,25 +9,23 @@ type PostProps = { export function Post({ title, description, id, createdAt }: PostProps) { return ( -
-
-
- -
- - {title} - - {`(${new Date( - createdAt - ).toLocaleDateString()})`} +
+
+ +
+ + {title} + + {`(${new Date( + createdAt + ).toLocaleDateString()})`} +
+ {description && ( +
+ {description}
- {description && ( -
- {description} -
- )} - -
+ )} +
); diff --git a/app/routes/blog/route.tsx b/app/routes/blog/route.tsx index 51c8302..c3dfb20 100644 --- a/app/routes/blog/route.tsx +++ b/app/routes/blog/route.tsx @@ -1,4 +1,5 @@ -import { Link, useLoaderData } from "@remix-run/react"; +import { useLoaderData } from "@remix-run/react"; +import { Link } from "~/components/Link"; import { findPosts } from "~/models/posts.server"; import { EmptyState } from "./EmptyState"; import { Post } from "./Post"; @@ -10,28 +11,16 @@ export const loader = async () => { export default function () { const posts = useLoaderData(); return ( -
-
-
-
- Home -
-
-
-
-
-
- Here I blog about whatever get my attention -
-
+
+ Home +
+ Here I blog about whatever get my attention
{posts.length > 0 ? ( -
-
- {posts.map((post, i) => ( - - ))} -
+
+ {posts.map((post, i) => ( + + ))}
) : ( diff --git a/app/routes/blog_.$id.tsx b/app/routes/blog_.$id.tsx index 4f622c4..35fde27 100644 --- a/app/routes/blog_.$id.tsx +++ b/app/routes/blog_.$id.tsx @@ -1,7 +1,8 @@ import type { LoaderArgs } from "@remix-run/node"; -import { Link, useLoaderData } from "@remix-run/react"; +import { useLoaderData } from "@remix-run/react"; import { getMDXComponent } from "mdx-bundler/client"; import React from "react"; +import { Link } from "~/components/Link"; import { findPost } from "~/models/posts.server"; import { getMdxFile } from "~/utils/posts.server"; @@ -22,18 +23,13 @@ export const loader = async ({ params }: LoaderArgs) => { export default function () { const { post, code } = useLoaderData(); - const Component = React.useMemo(() => getMDXComponent(code), [code]); + const MdxComponent = React.useMemo(() => getMDXComponent(code), [code]); return ( -
-
- Go back -
+
+ Go Back
{post.title}
-
- -
-
- Go back +
+
);