import { ViewContext, ViewContextType } from '../ViewContext.js' import { DateMarker } from '../datelib/marker.js' import { MountArg } from './render-hook.js' import { createElement } from '../preact.js' import { DateFormatter } from '../datelib/DateFormatter.js' import { ElProps } from '../content-inject/ContentInjector.js' import { ContentContainer, InnerContainerFunc } from '../content-inject/ContentContainer.js' export interface WeekNumberContainerProps extends ElProps { date: DateMarker defaultFormat: DateFormatter children?: InnerContainerFunc } export interface WeekNumberContentArg { num: number text: string date: Date } export type WeekNumberMountArg = MountArg export const WeekNumberContainer = (props: WeekNumberContainerProps) => ( {(context: ViewContext) => { let { dateEnv, options } = context let { date } = props let format = options.weekNumberFormat || props.defaultFormat let num = dateEnv.computeWeekNumber(date) // TODO: somehow use for formatting as well? let text = dateEnv.format(date, format) let renderProps: WeekNumberContentArg = { num, text, date } return ( ) }} ) function renderInner(innerProps) { return innerProps.text }