-
Notifications
You must be signed in to change notification settings - Fork 396
Open
Description
To my understanding, calling window.HSStaticMethods.autoInit() does not initialize elements that are hidden.
For example, if I have a datepicker inside a modal that's initially hidden on page load (like below), and is only shown when the user taps a button, tapping the datepicker field won't do anything unless it's re-initialized. Correct?
What then is the correct way to initialize the datepicker when the button to open the modal is tapped?
Function that's called when the button to open the modal is tapped:
function showDatepicker() {
// What goes here if not autoInit()?
}
The modal that's initially hidden on page load:
<div
id="change-date-modal"
class="hs-overlay hs-overlay-open:opacity-100 hs-overlay-open:duration-500 hidden size-full fixed top-0 start-0 z-60 opacity-0 overflow-x-hidden transition-all overflow-y-auto pointer-events-none"
role="dialog"
tabindex="-1"
aria-labelledby="hs-basic-modal-label"
>
<div class="sm:max-w-lg sm:w-full m-3 sm:mx-auto">
<div
class="flex flex-col bg-white border border-gray-200 shadow-2xs rounded-xl pointer-events-auto dark:bg-neutral-800 dark:border-neutral-700 dark:shadow-neutral-700/70">
<div
class="flex justify-between items-center py-3 px-4 border-b border-gray-200 dark:border-neutral-700">
<h3
id="hs-basic-modal-label"
class="font-bold text-gray-800 dark:text-white"
>
Change dates
</h3>
<button
type="button"
class="size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-hidden focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"
aria-label="Close"
data-hs-overlay="#change-date-modal"
>
<span class="sr-only">Close</span>
<svg
class="shrink-0 size-4"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18 6 6 18"></path>
<path d="m6 6 12 12"></path>
</svg>
</button>
</div>
<div class="p-4 overflow-y-auto">
<div class="flex gap-4 items-end">
<!-- Start Date -->
<div class="flex-1">
<label class="block text-sm font-medium text-gray-700 mb-1">Start Date</label>
<input
ref="startDateRef"
class="hs-datepicker py-3 px-4 block w-full border-gray-200 rounded-lg sm:text-sm focus:border-blue-600 focus:ring-blue-600 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:border-blue-500 dark:focus:ring-neutral-500"
type="text"
placeholder="Select day"
readonly
:data-hs-datepicker="startDatepickerOptions"
>
</div>
<!-- Arrow Icon -->
<div class="flex items-center justify-center pb-3">
→
</div>
<!-- End Date -->
<div class="flex-1">
<label class="block text-sm font-medium text-gray-700 mb-1">End Date</label>
<input
ref="endDateRef"
class="hs-datepicker py-3 px-4 block w-full border-gray-200 rounded-lg sm:text-sm focus:border-blue-600 focus:ring-blue-600 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:border-blue-500 dark:focus:ring-neutral-500"
type="text"
placeholder="Select day"
readonly
:data-hs-datepicker="endDatepickerOptions"
>
</div>
</div>
</div>
<div
class="flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 dark:border-neutral-700">
<button
type="button"
class="py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-2xs hover:bg-gray-50 focus:outline-hidden focus:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"
data-hs-overlay="#change-date-modal"
>
Cancel
</button>
<button
@click="updateDates"
type="button"
class="py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 focus:outline-hidden focus:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none"
>
Save dates
</button>
</div>
</div>
</div>
</div>
Metadata
Metadata
Assignees
Labels
No labels