From 822e041b9ea458a0b2de92fe088d66b7535ebf21 Mon Sep 17 00:00:00 2001 From: Miguel Date: Tue, 5 Aug 2025 14:10:08 -0600 Subject: [PATCH 1/2] feat(#2131): date picker - added "Choose a date" example --- src/examples/choose-a-date.tsx | 231 ++++++++++++++++++ .../date-picker/DatePickerExamples.tsx | 7 + src/examples/reset-date-picker-field.tsx | 156 ++++++------ src/routes/components/DatePicker.tsx | 2 +- 4 files changed, 321 insertions(+), 75 deletions(-) create mode 100644 src/examples/choose-a-date.tsx diff --git a/src/examples/choose-a-date.tsx b/src/examples/choose-a-date.tsx new file mode 100644 index 000000000..6007fd35e --- /dev/null +++ b/src/examples/choose-a-date.tsx @@ -0,0 +1,231 @@ +import { Sandbox } from "@components/sandbox"; +import { CodeSnippet } from "@components/code-snippet/CodeSnippet.tsx"; +import { GoabBlock, GoabButton, GoabDatePicker, GoabFormItem } from "@abgov/react-components"; +import { GoabDatePickerOnChangeDetail } from "@abgov/ui-components-common"; +import { useContext, useState } from "react"; +import { LanguageVersionContext } from "@contexts/LanguageVersionContext.tsx"; + +export const TodayDatePickerField = () => { + const {version} = useContext(LanguageVersionContext); + const [date, setDate] = useState(); + + const setNewDate = (value: Date | undefined) => { + setDate(value); + }; + + function setToday() { + const d = new Date(); + d.setDate(d.getDate()); + + setDate(d); + } + + return ( + + {/*React*/} + {version === "old" && (); + + const setNewDate = (value: Date | undefined) => { + setDate(value); + }; + + function setToday() { + const d = new Date(); + d.setDate(d.getDate()); + + setDate(d); + } + `} + />} + + {version === "old" && + + setNewDate(value)} + > + + + Today + + + `} + />} + + {version === "new" && (); + + const setNewDate = (value: Date | undefined) => { + setDate(value); + }; + + function setToday() { + const d = new Date(); + d.setDate(d.getDate()); + + setDate(d); + } + `} + />} + + {version === "new" && + + setNewDate(value)} + > + + + Today + + + `} + />} + + {/*Angular*/} + + {version === "old" && } + + {version === "old" && + + + + + Today + + + `} + />} + + {version === "old" && } + {version === "old" && + + + + + Today + + + `} + />} + + {/*New version*/} + {version === "new" && } + + {version === "new" && + + + + + Today + + + `} + />} + + + setNewDate(e.value as Date)}> + + + Today + + + + + ) +} + +export default TodayDatePickerField; diff --git a/src/examples/date-picker/DatePickerExamples.tsx b/src/examples/date-picker/DatePickerExamples.tsx index 12e61da93..3829fdfbe 100644 --- a/src/examples/date-picker/DatePickerExamples.tsx +++ b/src/examples/date-picker/DatePickerExamples.tsx @@ -1,9 +1,16 @@ +import { TodayDatePickerField } from "@examples/choose-a-date.tsx"; import { ResetDatePickerField } from "@examples/reset-date-picker-field.tsx"; import { SandboxHeader } from "@components/sandbox/sandbox-header/sandboxHeader.tsx"; export const DatePickerExamples = () => { return ( <> + + + < TodayDatePickerField /> + diff --git a/src/examples/reset-date-picker-field.tsx b/src/examples/reset-date-picker-field.tsx index 009dca0f7..1c5a16bc4 100644 --- a/src/examples/reset-date-picker-field.tsx +++ b/src/examples/reset-date-picker-field.tsx @@ -24,50 +24,55 @@ export const ResetDatePickerField = () => { setDate(undefined); } return ( - + {/*React*/} {version === "old" && (); + const [date, setDate] = useState(); - const setNewDate = (value: Date | undefined) => { - setDate(value); - }; + const setNewDate = (value: Date | undefined) => { + setDate(value); + }; - function setValue() { - const d = new Date(); - d.setDate(d.getDate() - 7); + function setValue() { + const d = new Date(); + d.setDate(d.getDate() - 7); - setDate(d); - } + setDate(d); + } - function clearValue() { - setDate(undefined); - } + function clearValue() { + setDate(undefined); + } + `} + />} - return ( - <> - - setNewDate(value)} - mb="xl" - > - - - - Set Value - Clear Value - - - ); - } - `} + {version === "old" && + setNewDate(value)} + mb="xl" + > + + + + + Set Value + + + Clear Value + + + `} />} {version === "new" && { lang="typescript" allowCopy={true} code={` - export function Datepicker() { - const [date, setDate] = useState(); + const [date, setDate] = useState(); - const setNewDate = (value: Date | undefined) => { - setDate(value); - }; + const setNewDate = (value: Date | undefined) => { + setDate(value); + }; - function setValue() { - const d = new Date(); - d.setDate(d.getDate() - 7); + function setValue() { + const d = new Date(); + d.setDate(d.getDate() - 7); - setDate(d); - } + setDate(d); + } - function clearValue() { - setDate(undefined); - } + function clearValue() { + setDate(undefined); + } + `} + />} - return ( - <> - - setNewDate(e.value as Date)} - mb="xl"> - - - - - Set Value - - Clear Value - - - ); - } - `} + {version === "new" && + setNewDate(e.value as Date)} + mb="xl"> + + + + + Set Value + + + Clear Value + + + `} />} {/*Angular*/} @@ -151,8 +159,8 @@ export const ResetDatePickerField = () => { - Set Value - Clear Value + Set Value + Clear Value `} />} @@ -189,8 +197,8 @@ export const ResetDatePickerField = () => { - Set Value - Clear Value + Set Value + Clear Value `} />} @@ -228,8 +236,8 @@ export const ResetDatePickerField = () => { - Set Value - Clear Value + Set Value + Clear Value `} />} @@ -243,10 +251,10 @@ export const ResetDatePickerField = () => { - + Set Value - Clear Value + Clear Value ) diff --git a/src/routes/components/DatePicker.tsx b/src/routes/components/DatePicker.tsx index 694193bd8..921566c93 100644 --- a/src/routes/components/DatePicker.tsx +++ b/src/routes/components/DatePicker.tsx @@ -315,7 +315,7 @@ export default function DatePickerPage() { heading={ <> Examples - + } > From 897a5c95ca253b5dc69ec1c42d75f6bf156b6cdb Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 8 Aug 2025 12:50:34 -0600 Subject: [PATCH 2/2] feat(#2131): date picker - adjusted input labels for examples --- src/examples/choose-a-date.tsx | 12 ++++++------ src/examples/reset-date-picker-field.tsx | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/examples/choose-a-date.tsx b/src/examples/choose-a-date.tsx index 6007fd35e..7c391ea88 100644 --- a/src/examples/choose-a-date.tsx +++ b/src/examples/choose-a-date.tsx @@ -49,7 +49,7 @@ export const TodayDatePickerField = () => { allowCopy={true} code={` - + { allowCopy={true} code={` - + { allowCopy={true} code={` - + @@ -164,7 +164,7 @@ export const TodayDatePickerField = () => { allowCopy={true} code={` - + @@ -200,7 +200,7 @@ export const TodayDatePickerField = () => { allowCopy={true} code={` - + { `} />} - + { lang="typescript" allowCopy={true} code={` - + { lang="typescript" allowCopy={true} code={` - + { tags="angular" allowCopy={true} code={` - + @@ -192,7 +192,7 @@ export const ResetDatePickerField = () => { lang="typescript" allowCopy={true} code={` - + @@ -231,7 +231,7 @@ export const ResetDatePickerField = () => { tags="angular" allowCopy={true} code={` - + @@ -242,7 +242,7 @@ export const ResetDatePickerField = () => { `} />} - +