Skip to content

Commit be6480e

Browse files
committed
feat(popupcls): ✨ Added a popup classname, so the outside world can customise this. This is important to control z-index with other components on the page.
1 parent bf063fe commit be6480e

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/components/Datepicker.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const Datepicker: React.FC<DatepickerType> = ({
2929
disabled = false,
3030
inputClassName = null,
3131
containerClassName = null,
32+
popupClassName = null,
3233
toggleClassName = null,
3334
toggleIcon = undefined,
3435
displayFormat = DATE_FORMAT,
@@ -327,15 +328,22 @@ const Datepicker: React.FC<DatepickerType> = ({
327328
: defaultContainerClassName;
328329
}, [containerClassName]);
329330

331+
const popupClassNameOverload = useMemo(() => {
332+
const defaultPopupClassName =
333+
"transition-all ease-out duration-300 absolute z-10 mt-[1px] text-sm lg:text-xs 2xl:text-sm translate-y-4 opacity-0 hidden";
334+
return typeof popupClassName === "function"
335+
? popupClassName(defaultPopupClassName)
336+
: typeof popupClassName === "string" && popupClassName !== ""
337+
? popupClassName
338+
: defaultPopupClassName;
339+
}, [popupClassName]);
340+
330341
return (
331342
<DatepickerContext.Provider value={contextValues}>
332343
<div className={containerClassNameOverload} ref={containerRef}>
333344
<Input setContextRef={setInputRef} />
334345

335-
<div
336-
className="transition-all ease-out duration-300 absolute z-10 mt-[1px] text-sm lg:text-xs 2xl:text-sm translate-y-4 opacity-0 hidden"
337-
ref={calendarContainerRef}
338-
>
346+
<div className={popupClassNameOverload} ref={calendarContainerRef}>
339347
<Arrow ref={arrowRef} />
340348

341349
<div className="mt-2.5 shadow-sm border border-gray-300 px-1 py-0.5 bg-white dark:bg-slate-800 dark:text-white dark:border-slate-600 rounded-lg">

src/types/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export interface DatepickerType {
6969
disabled?: boolean;
7070
classNames?: ClassNamesTypeProp | undefined;
7171
containerClassName?: ((className: string) => string) | string | null;
72+
popupClassName?: ((className: string) => string) | string | null;
7273
inputClassName?: ((className: string) => string) | string | null;
7374
toggleClassName?: ((className: string) => string) | string | null;
7475
toggleIcon?: (open: boolean) => React.ReactNode;

0 commit comments

Comments
 (0)