Skip to content

Commit

Permalink
Update styling on newsletter page
Browse files Browse the repository at this point in the history
  • Loading branch information
drewlyton committed Aug 20, 2023
1 parent d9b0af2 commit c3a10bd
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 22 deletions.
12 changes: 4 additions & 8 deletions app/emails/NewPostNewsletter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
import { getMDXComponent } from "mdx-bundler/client";
import { PropsWithChildren } from "react";

Check warning on line 10 in app/emails/NewPostNewsletter.tsx

View workflow job for this annotation

GitHub Actions / ⬣ ESLint

All imports in the declaration are only used as types. Use `import type`
import type Story from "~/data/Story";
import { TailwindEmailConfig } from "./TailwindEmailConfig";

type NewsletterEmailProps = {
messageBody?: string[];
Expand Down Expand Up @@ -54,6 +53,7 @@ export function NewPostNewsletter({
</Section>
<Button
href={`https://www.drewis.cool/story/${story.slug}?ref=newsletter`}
className="text-black"
>
<Section>
<div className="border border-solid rounded-md border-gray-300 my-6">
Expand All @@ -62,12 +62,8 @@ export function NewPostNewsletter({
className="rounded-t-md"
width={"100%"}
/>
<Text className="text-xl px-5 font-bold text-black ">
{story.title}
</Text>
<Text className="px-5 text-base text-black ">
{story.description}
</Text>
<Text className="text-xl px-5 font-bold">{story.title}</Text>
<Text className="px-5 text-base">{story.description}</Text>
</div>
</Section>
</Button>
Expand All @@ -94,7 +90,7 @@ const MDXText: React.FC<PropsWithChildren> = ({ children }) => {

const MDXBlockQuote: React.FC<PropsWithChildren> = ({ children }) => {
return (
<blockquote className="m-0 pl-8 border-solid border-0 border-l-4 border-l-[#F66100] italic">
<blockquote className="m-0 pl-8 border-solid border-0 border-l-4 !border-l-black italic">
{children}
</blockquote>
);
Expand Down
12 changes: 7 additions & 5 deletions app/helpers/useTheme.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import React, {
} from "react";

type themeContextValue = {
theme: themeValue;
theme: ThemeValue;
toggleTheme: () => any;
};

Expand All @@ -17,22 +17,24 @@ const Theme = createContext<themeContextValue>({
toggleTheme: () => {}
});

type themeValue = "apache" | "midnight";
type ThemeValue = "apache" | "midnight";

function switchThemeValue(oldValue: themeValue): themeValue {
function switchThemeValue(oldValue: ThemeValue): ThemeValue {
return oldValue === "apache" ? "midnight" : "apache";
}

export const ThemeContext: React.FC<PropsWithChildren> = ({ children }) => {
const [theme, setTheme] = useState<themeValue>("apache");
const [theme, setTheme] = useState<ThemeValue>("apache");

useEffect(() => {
// Restore theme from localstorage if we've got one
setTheme(
(oldValue) => (localStorage.getItem("theme") as themeValue) || oldValue
(oldValue) => (localStorage.getItem("theme") as ThemeValue) || oldValue
);
}, []);

useEffect(() => {
// When theme value changes, update the document body
theme === "apache"
? document.documentElement.classList.remove("dark")
: document.documentElement.classList.add("dark");
Expand Down
32 changes: 23 additions & 9 deletions app/routes/newsletter/$issueNumber/index.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import { render } from "@react-email/render";
import { LoaderArgs, json } from "@remix-run/node";
import { useLoaderData } from "@remix-run/react";
import { useEffect } from "react";
import GetNewsletter from "~/data/GetNewsletter";
import { Newsletter } from "~/data/Newsletter";
import { client } from "~/data/client";
import { EmailLayout } from "~/emails/EmailLayout";
import { NewPostNewsletter } from "~/emails/NewPostNewsletter";
import { getMessageBodyMarkdown } from "~/helpers/getMessageBodyMarkdown";
import { useTheme } from "~/helpers/useTheme";

export async function loader({ params }: LoaderArgs) {
const issueNumber = params.issueNumber;
Expand All @@ -31,15 +34,26 @@ export async function loader({ params }: LoaderArgs) {
export default function ViewNewsletter() {
const { newsletter, messageAboveLink, messageBelowLink } =
useLoaderData<typeof loader>();

const { theme, toggleTheme } = useTheme();

useEffect(() => {
// Only allow this page to be light mode
if (theme === "midnight") toggleTheme();
}, [theme]);
return (
<section className="top-section min-h-screen">
<EmailLayout recipient="">
<NewPostNewsletter
{...newsletter}
messageBody={[messageAboveLink, messageBelowLink]}
/>
</EmailLayout>
,
</section>
<section
className="top-section min-h-screen"
dangerouslySetInnerHTML={{
__html: render(
<EmailLayout recipient="">
<NewPostNewsletter
{...newsletter}
messageBody={[messageAboveLink, messageBelowLink]}
/>
</EmailLayout>
)
}}
></section>
);
}

0 comments on commit c3a10bd

Please sign in to comment.