Added components, authentication and authorization
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
namespace Htmx.ApiDemo.Templates.Components;
|
||||
|
||||
/// <summary>
|
||||
/// shadcn-style Calendar (date-picker) component driven entirely by HyperScript.
|
||||
/// Pass a selected date to pre-highlight a day; defaults to today.
|
||||
/// </summary>
|
||||
public sealed class Calendar : CalendarBase
|
||||
{
|
||||
private readonly byte[] _idData;
|
||||
private readonly byte[] _nameData;
|
||||
private readonly byte[] _yearData;
|
||||
private readonly byte[] _monthData; // 0-based JS month
|
||||
private readonly byte[] _selectedDayData;
|
||||
private readonly byte[] _selectedMonthData; // 0-based
|
||||
private readonly byte[] _selectedYearData;
|
||||
private readonly byte[] _defaultValueData;
|
||||
|
||||
public Calendar(
|
||||
string id,
|
||||
string name = "date",
|
||||
DateOnly? selected = null)
|
||||
{
|
||||
var date = selected ?? DateOnly.FromDateTime(DateTime.Today);
|
||||
|
||||
_idData = id.ToUtf8Bytes();
|
||||
_nameData = name.ToUtf8Bytes();
|
||||
_yearData = date.Year.ToString().ToUtf8Bytes();
|
||||
_monthData = (date.Month - 1).ToString().ToUtf8Bytes(); // JS months are 0-based
|
||||
_selectedDayData = date.Day.ToString().ToUtf8Bytes();
|
||||
_selectedMonthData= (date.Month - 1).ToString().ToUtf8Bytes();
|
||||
_selectedYearData = date.Year.ToString().ToUtf8Bytes();
|
||||
_defaultValueData = date.ToString("yyyy-MM-dd").ToUtf8Bytes();
|
||||
}
|
||||
|
||||
protected override void RenderId(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_idData);
|
||||
protected override void RenderName(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_nameData);
|
||||
protected override void RenderYear(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_yearData);
|
||||
protected override void RenderMonth(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_monthData);
|
||||
protected override void RenderSelectedDay(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_selectedDayData);
|
||||
protected override void RenderSelectedMonth(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_selectedMonthData);
|
||||
protected override void RenderSelectedYear(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_selectedYearData);
|
||||
protected override void RenderDefaultValue(HtmxRenderContext ctx) => ctx.Writer.WriteUtf8(_defaultValueData);
|
||||
}
|
||||
Reference in New Issue
Block a user