gbs-add-block 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gbs-add-block",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "description": "React Component Library",
5
5
  "files": [
6
6
  "index.js",
@@ -13,7 +13,7 @@ import type { DatePickerProps } from "./types";
13
13
 
14
14
  export const DatePicker = ({
15
15
  placeholder = undefined,
16
- selectedDate: initialSelectedDate = new Date(),
16
+ selectedDateValue,
17
17
  minDate = null,
18
18
  maxDate = null,
19
19
  yearLimitStart = 50,
@@ -25,15 +25,25 @@ export const DatePicker = ({
25
25
  const [currentMonth, setCurrentMonth] = useState(new Date().getMonth());
26
26
  const [currentYear, setCurrentYear] = useState(new Date().getFullYear());
27
27
  const [days, setDays] = useState<any>([]);
28
- const [selectedDate, setSelectedDate] = useState(initialSelectedDate);
28
+ const [selectedDate, setSelectedDate] = useState<any>(
29
+ selectedDateValue ? selectedDateValue : new Date()
30
+ );
29
31
  const [hasMounted, setHasMounted] = useState(false);
30
32
  const [showPlaceHolder, setShowPlaceHolder] = useState<string | undefined>(
31
- placeholder
33
+ selectedDateValue ? undefined : placeholder
32
34
  );
33
35
 
34
36
  const dateRef = useRef<HTMLDivElement>(null);
35
37
  const today = new Date();
36
38
 
39
+ useEffect(() => {
40
+ if (selectedDateValue) {
41
+ setSelectedDate(selectedDateValue);
42
+ setCurrentMonth(selectedDateValue.getMonth());
43
+ setCurrentYear(selectedDateValue.getFullYear());
44
+ }
45
+ }, [selectedDateValue]);
46
+
37
47
  // This useEffect will ensure the server and client
38
48
  // rendererd date will not mismatch
39
49
  useEffect(() => {
@@ -131,14 +141,8 @@ export const DatePicker = ({
131
141
  elements={calender}
132
142
  svgClass={"stroke-black fill-none dark:stroke-white"}
133
143
  />
134
- {showPlaceHolder ? (
135
- <div className="flex flex-col text-left">
136
- <span className="text-gray-500 text-xs">{showPlaceHolder}</span>
137
- <div className="text-sm">{new Date().toLocaleDateString()}</div>
138
- </div>
139
- ) : (
140
- <span>{selectedDate.toLocaleDateString()}</span>
141
- )}
144
+
145
+ {showPlaceHolder ? showPlaceHolder : selectedDate.toLocaleDateString()}
142
146
  </button>
143
147
 
144
148
  {showDatepicker && (
@@ -240,9 +244,9 @@ export const DatePicker = ({
240
244
  const isDisabled: any =
241
245
  (minDate && day < minDate) || (maxDate && day > maxDate);
242
246
  const isSelected =
243
- day.getDate() === selectedDate.getDate() &&
244
- day.getMonth() === selectedDate.getMonth() &&
245
- day.getFullYear() === selectedDate.getFullYear();
247
+ day.getDate() === selectedDate?.getDate() &&
248
+ day.getMonth() === selectedDate?.getMonth() &&
249
+ day.getFullYear() === selectedDate?.getFullYear();
246
250
 
247
251
  return (
248
252
  <button
@@ -251,7 +255,7 @@ export const DatePicker = ({
251
255
  onClick={() => !isDisabled && selectDate(day)}
252
256
  disabled={isDisabled}
253
257
  className={`text-center p-1 w-8 h-8 cursor-pointer rounded-md hover:bg-gray-200 transition duration-150 ease-in-out ${
254
- isSelected ? "bg-black text-white hover:bg-gray-800" : ""
258
+ isSelected ? "bg-black text-white hover:bg-gray-800 " : ""
255
259
  } ${
256
260
  isDisabled
257
261
  ? "bg-gray-100 text-gray-400 cursor-not-allowed"
@@ -1,6 +1,6 @@
1
1
  export type DatePickerProps = {
2
2
  placeholder?: string | undefined;
3
- selectedDate?: Date;
3
+ selectedDateValue?: Date;
4
4
  minDate?: Date | null;
5
5
  maxDate?: Date | null;
6
6
  yearLimitStart?: number;
@@ -27,6 +27,8 @@ interface ItemsProps {
27
27
 
28
28
  const Select = forwardRef<any, SelectProps>((props, ref) => {
29
29
  const {
30
+ id = "",
31
+ name = "",
30
32
  placeholder = "Select an Item...",
31
33
  items,
32
34
  lazy = false,
@@ -34,6 +36,7 @@ const Select = forwardRef<any, SelectProps>((props, ref) => {
34
36
  onSelect,
35
37
  selectedItem: initialSelectedItem,
36
38
  error = undefined,
39
+ onFiltering,
37
40
  } = props;
38
41
 
39
42
  const [showPopover, setShowPopover] = useState(false);
@@ -146,7 +149,7 @@ const Select = forwardRef<any, SelectProps>((props, ref) => {
146
149
  }));
147
150
 
148
151
  return (
149
- <div className="relative w-full" ref={selectRef}>
152
+ <div className="relative w-full" ref={selectRef} id={id}>
150
153
  <div className="w-full relative">
151
154
  <button
152
155
  className={`flex items-center ${
@@ -192,7 +195,10 @@ const Select = forwardRef<any, SelectProps>((props, ref) => {
192
195
  className="w-full outline-none dark:bg-black"
193
196
  ref={inputRef}
194
197
  value={searchTerm}
195
- onChange={(e) => setSearchTerm(e.target.value)}
198
+ onChange={(e) => {
199
+ setSearchTerm(e.target.value);
200
+ if (onFiltering) onFiltering(e.target.value);
201
+ }}
196
202
  />
197
203
  </div>
198
204
  )}
@@ -4,10 +4,14 @@ interface ItemsProps {
4
4
  }
5
5
 
6
6
  export type SelectProps = {
7
+ id?: string;
8
+ name?: string;
9
+ error?: undefined | string;
7
10
  placeholder?: string;
8
11
  items?: ItemsProps[] | string;
9
12
  lazy?: boolean;
10
13
  showSearch?: boolean;
11
14
  onSelect?: any;
12
15
  selectedItem?: string;
16
+ onFiltering?: any;
13
17
  };