Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
MikaelSiidorow authored and Mikmokki committed Jan 15, 2025
1 parent 06696a6 commit 31c13a6
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 10 deletions.
7 changes: 4 additions & 3 deletions apps/cms/src/emails/helper-components.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
IS_UNDERLINE,
} from "./utils/lexical";
import {
byDate,
formatDate,
insertSoftHyphens,
lexicalNodeToTextContent,
Expand Down Expand Up @@ -305,7 +306,7 @@ export function Calendar({
<div>
<span>{t[locale]["this-week"]}:</span>
<ul>
{eventsThisWeek.map((newsItem) => (
{eventsThisWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.date ? (
<span>{formatDate(newsItem.date)} </span>
Expand All @@ -320,7 +321,7 @@ export function Calendar({
<div>
<span>{t[locale]["next-week"]}:</span>
<ul>
{eventsNextWeek.map((newsItem) => (
{eventsNextWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.date ? (
<span>{formatDate(newsItem.date)} </span>
Expand All @@ -335,7 +336,7 @@ export function Calendar({
<div>
<span>{t[locale]["this-week-signups"]}:</span>
<ul>
{signupsThisWeek.map((newsItem) => (
{signupsThisWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.signupStartDate ? (
<span>{formatDate(newsItem.signupStartDate)}</span>
Expand Down
9 changes: 7 additions & 2 deletions apps/cms/src/emails/newsletter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ import {
type WeeklyNewsletter,
} from "@tietokilta/cms-types/payload";
import { type EditorState } from "@tietokilta/cms-types/lexical";
import { formatDateYear, isThisWeek, type TocItem } from "./utils/utils";
import {
formatDateYear,
isNextWeek,
isThisWeek,
type TocItem,
} from "./utils/utils";
import {
Calendar,
Greetings,
Expand Down Expand Up @@ -74,7 +79,7 @@ export const Newsletter = ({
(newsItem) => newsItem.date && isThisWeek(newsItem.date),
);
const eventsNextWeek = allNewsItems.filter(
(newsItem) => newsItem.date && !isThisWeek(newsItem.date),
(newsItem) => newsItem.date && isNextWeek(newsItem.date),
);
const signupsThisWeek = allNewsItems.filter(
(newsItem) =>
Expand Down
9 changes: 9 additions & 0 deletions apps/cms/src/emails/utils/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,3 +189,12 @@ export const isNextWeek = (date: string): boolean => {

return currentWeek + 1 === eventWeek;
};

export const byDate = (
a: { date?: string | null },
b: { date?: string | null },
): number => {
if (!a.date || !b.date) return 0;

return new Date(a.date).getTime() - new Date(b.date).getTime();
};
12 changes: 7 additions & 5 deletions apps/web/src/custom-pages/weekly-newsletter-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ import {
} from "../lib/api/weekly-newsletters";
import { getCurrentLocale, getScopedI18n } from "../locales/server";
import {
byDate,
formatDate,
formatDateYear,
formatDateYearOptions,
isNextWeek,
isThisWeek,
stringToId,
type TocItem,
Expand Down Expand Up @@ -101,7 +103,7 @@ async function Calendar({
<div>
<span>{t("this-week")}:</span>
<ol className="not-prose ml-[4ch]">
{eventsThisWeek.map((newsItem) => (
{eventsThisWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.date ? (
<span>{formatDate(newsItem.date)} </span>
Expand All @@ -116,7 +118,7 @@ async function Calendar({
<div>
<span>{t("next-week")}:</span>
<ol className="not-prose ml-[4ch]">
{eventsNextWeek.map((newsItem) => (
{eventsNextWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.date ? (
<span>{formatDate(newsItem.date)} </span>
Expand All @@ -131,7 +133,7 @@ async function Calendar({
<div>
<span>{t("this-week-signups")}:</span>
<ol className="not-prose ml-[4ch]">
{signupsThisWeek.map((newsItem) => (
{signupsThisWeek.toSorted(byDate).map((newsItem) => (
<li key={newsItem.id}>
{newsItem.signupStartDate ? (
<span>{formatDate(newsItem.signupStartDate)}</span>
Expand Down Expand Up @@ -200,7 +202,7 @@ export default async function Page({ slug }: { slug?: string }) {
(newsItem) => newsItem.date && isThisWeek(newsItem.date),
);
const eventsNextWeek = allNewsItems.filter(
(newsItem) => newsItem.date && !isThisWeek(newsItem.date),
(newsItem) => newsItem.date && isNextWeek(newsItem.date),
);
const signupsThisWeek = allNewsItems.filter(
(newsItem) =>
Expand Down Expand Up @@ -244,7 +246,7 @@ export default async function Page({ slug }: { slug?: string }) {
>
<div className="relative m-auto flex max-w-full flex-col gap-8 p-4 md:p-6">
<TableOfContents toc={toc} />

<pre>{JSON.stringify(weeklyNewsletter, null, 2)}</pre>
<div className="max-w-4xl space-y-4 md:my-8 md:space-y-8">
<header className="space-y-2">
<h1 className="font-mono text-4xl">{weeklyNewsletter.title}</h1>
Expand Down
9 changes: 9 additions & 0 deletions apps/web/src/lib/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,15 @@ export const isNextWeek = (date: string): boolean => {
return currentWeek + 1 === eventWeek;
};

export const byDate = (
a: { date?: string | null },
b: { date?: string | null },
): number => {
if (!a.date || !b.date) return 0;

return new Date(a.date).getTime() - new Date(b.date).getTime();
};

export const getQuotasWithOpenAndQueue = (
quotas: EventQuota[],
openQuotaSize: number,
Expand Down

0 comments on commit 31c13a6

Please sign in to comment.