From b92736353868b32fc5c55ea09a5166e189fb7b58 Mon Sep 17 00:00:00 2001 From: Carson Date: Wed, 13 Aug 2025 17:08:14 -0500 Subject: [PATCH 1/3] Close #2059: revert change in #1920 to populate initial date with the server's current date --- shiny/ui/_input_date.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/shiny/ui/_input_date.py b/shiny/ui/_input_date.py index 1399bdbad..7d7797fee 100644 --- a/shiny/ui/_input_date.py +++ b/shiny/ui/_input_date.py @@ -7,8 +7,7 @@ from htmltools import Tag, TagAttrValue, TagChild, css, div, span, tags from .._docstring import add_example -from ..bookmark import restore_input -from ..module import resolve_id +from .._namespaces import resolve_id from ._html_deps_external import datepicker_deps from ._utils import shiny_input_label @@ -112,13 +111,11 @@ def input_date( """ resolved_id = resolve_id(id) - default_value = value if value is not None else date.today() - return div( shiny_input_label(resolved_id, label), _date_input_tag( id=resolved_id, - value=restore_input(resolved_id, default_value), + value=value, min=min, max=max, format=format, @@ -233,15 +230,12 @@ def input_date_range( """ resolved_id = resolve_id(id) - default_start = start if start is not None else date.today() - default_end = end if end is not None else date.today() - restored_date_range = restore_input(resolved_id, [default_start, default_end]) return div( shiny_input_label(resolved_id, label), div( _date_input_tag( id=resolved_id, - value=restored_date_range[0], + value=start, min=min, max=max, format=format, @@ -257,7 +251,7 @@ def input_date_range( ), _date_input_tag( id=resolved_id, - value=restored_date_range[1], + value=end, min=min, max=max, format=format, From 657a0947adbbce830dc31b84c48d9b95876305fa Mon Sep 17 00:00:00 2001 From: Carson Date: Wed, 13 Aug 2025 17:27:18 -0500 Subject: [PATCH 2/3] Restore values from bookmark without defaulting to date.today() --- shiny/ui/_input_date.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/shiny/ui/_input_date.py b/shiny/ui/_input_date.py index 7d7797fee..0ed712d59 100644 --- a/shiny/ui/_input_date.py +++ b/shiny/ui/_input_date.py @@ -8,6 +8,7 @@ from .._docstring import add_example from .._namespaces import resolve_id +from ..bookmark import restore_input from ._html_deps_external import datepicker_deps from ._utils import shiny_input_label @@ -115,7 +116,7 @@ def input_date( shiny_input_label(resolved_id, label), _date_input_tag( id=resolved_id, - value=value, + value=restore_input(resolved_id, value), min=min, max=max, format=format, @@ -230,6 +231,8 @@ def input_date_range( """ resolved_id = resolve_id(id) + start, end = tuple(restore_input(resolved_id, [start, end])) + return div( shiny_input_label(resolved_id, label), div( From 346ef48bf8a6c1b68ae77917eabbf9a42d5f6e24 Mon Sep 17 00:00:00 2001 From: Carson Date: Thu, 14 Aug 2025 14:01:12 -0500 Subject: [PATCH 3/3] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94b18d8f0..a6b1d6771 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Fix missing session when trying to display an error duing bookmarking. (#1984) +* `input_date()` and `input_date_range()` once again use the client's (not the server) current date as the default `value`. (#2060) + * Fixed `set()` method of `InputSelectize` controller so it clears existing selections before applying new values. (#2024) ### Deprecations