my_digital_garden/quartz/components/Date.tsx

28 lines
799 B
TypeScript
Raw Normal View History

2023-08-24 16:56:40 +01:00
import { GlobalConfiguration } from "../cfg"
import { QuartzPluginData } from "../plugins/vfile"
2023-07-01 08:03:01 +01:00
interface Props {
date: Date
}
2023-08-24 16:56:40 +01:00
export type ValidDateType = keyof Required<QuartzPluginData>["dates"]
export function getDate(cfg: GlobalConfiguration, data: QuartzPluginData): Date | undefined {
if (!cfg.defaultDateType) {
throw new Error(`Field 'defaultDateType' was not set in the configuration object of quartz.config.ts. See https://quartz.jzhao.xyz/configuration#general-configuration for more details.`)
}
2023-08-24 16:56:40 +01:00
return data.dates?.[cfg.defaultDateType]
}
2023-08-09 05:28:09 +01:00
export function formatDate(d: Date): string {
return d.toLocaleDateString("en-US", {
2023-07-01 08:03:01 +01:00
year: "numeric",
month: "short",
2023-07-23 01:27:41 +01:00
day: "2-digit",
2023-07-01 08:03:01 +01:00
})
2023-08-09 05:28:09 +01:00
}
export function Date({ date }: Props) {
return <>{formatDate(date)}</>
2023-07-01 08:03:01 +01:00
}