@bsol-oss/react-datatable5 12.0.0-beta.24 → 12.0.0-beta.26

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/dist/index.js CHANGED
@@ -3799,6 +3799,24 @@ const DatePicker = ({ column, schema, prefix }) => {
3799
3799
  const [open, setOpen] = React.useState(false);
3800
3800
  const selectedDate = watch(colLabel);
3801
3801
  const formatedDate = dayjs(selectedDate).format("YYYY-MM-DD");
3802
+ React.useEffect(() => {
3803
+ if (selectedDate) {
3804
+ // Parse the selectedDate with dayjs
3805
+ const parsedDate = dayjs(selectedDate);
3806
+ // If invalid date, do nothing
3807
+ if (!parsedDate.isValid())
3808
+ return;
3809
+ // Format according to dateFormat from schema
3810
+ const formatted = parsedDate.format(dateFormat);
3811
+ // Update the form value only if different to avoid loops
3812
+ if (formatted !== selectedDate) {
3813
+ setValue(colLabel, formatted, {
3814
+ shouldValidate: true,
3815
+ shouldDirty: true,
3816
+ });
3817
+ }
3818
+ }
3819
+ }, [selectedDate, dateFormat, colLabel, setValue]);
3802
3820
  return (jsxRuntime.jsxs(Field, { label: `${translate.t(removeIndex(`${colLabel}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
3803
3821
  gridRow, children: [jsxRuntime.jsxs(PopoverRoot, { open: open, onOpenChange: (e) => setOpen(e.open), closeOnInteractOutside: true, children: [jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: jsxRuntime.jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
3804
3822
  setOpen(true);
@@ -4381,6 +4399,9 @@ const IdPicker = ({ column, schema, prefix, isMultiple = false, }) => {
4381
4399
  if (record === undefined) {
4382
4400
  return "";
4383
4401
  }
4402
+ if (!!renderDisplay === true) {
4403
+ return renderDisplay(record);
4404
+ }
4384
4405
  return record[display_column];
4385
4406
  };
4386
4407
  return (jsxRuntime.jsxs(Field, { label: `${translate.t(removeIndex(removeIndex(`${column}.field_label`)))}`, required: isRequired, alignItems: "stretch", gridColumn,
@@ -4398,7 +4419,7 @@ const IdPicker = ({ column, schema, prefix, isMultiple = false, }) => {
4398
4419
  setOpenSearchResult(true);
4399
4420
  }, children: translate.t(removeIndex(`${colLabel}.add_more`)) })] })), !isMultiple && (jsxRuntime.jsx(Button, { variant: "outline", onClick: () => {
4400
4421
  setOpenSearchResult(true);
4401
- }, justifyContent: "start", children: getPickedValue() })), jsxRuntime.jsxs(PopoverRoot, { open: openSearchResult, onOpenChange: (e) => setOpenSearchResult(e.open), closeOnInteractOutside: true, initialFocusEl: () => ref.current, positioning: { placement: "bottom-start", strategy: "fixed" }, children: [jsxRuntime.jsx(PopoverTrigger, {}), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { display: "grid", gap: 1, children: [jsxRuntime.jsx(react.Input, { placeholder: translate.t(removeIndex(`${colLabel}.typeToSearch`)), onChange: (event) => {
4422
+ }, justifyContent: "start", children: getPickedValue() })), jsxRuntime.jsxs(PopoverRoot, { open: openSearchResult, onOpenChange: (e) => setOpenSearchResult(e.open), closeOnInteractOutside: true, initialFocusEl: () => ref.current, positioning: { placement: "bottom-start", strategy: "fixed" }, children: [jsxRuntime.jsx(PopoverTrigger, {}), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { display: "grid", gap: 1, children: [jsxRuntime.jsx(react.Input, { placeholder: translate.t(removeIndex(`${colLabel}.type_to_search`)), onChange: (event) => {
4402
4423
  onSearchChange(event);
4403
4424
  setOpenSearchResult(true);
4404
4425
  }, autoComplete: "off", ref: ref }), jsxRuntime.jsx(PopoverTitle, {}), (searchText?.length ?? 0) > 0 && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isFetching && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "isFetching" }), isLoading && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "isLoading" }), isPending && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "isPending" }), (isFetching || isLoading || isPending) && jsxRuntime.jsx(react.Spinner, {}), isError && (jsxRuntime.jsx(react.Icon, { color: "red.400", children: jsxRuntime.jsx(bi.BiError, {}) })), jsxRuntime.jsx(react.Text, { justifySelf: "center", children: `${translate.t(removeIndex(`${colLabel}.total`))} ${count}, ${translate.t(removeIndex(`${colLabel}.showing`))} ${limit}` }), jsxRuntime.jsxs(react.Grid, { gridTemplateColumns: "repeat(auto-fit, minmax(15rem, 1fr))", overflow: "auto", maxHeight: "50vh", children: [jsxRuntime.jsx(react.Flex, { flexFlow: "column wrap", children:
package/dist/index.mjs CHANGED
@@ -3779,6 +3779,24 @@ const DatePicker = ({ column, schema, prefix }) => {
3779
3779
  const [open, setOpen] = useState(false);
3780
3780
  const selectedDate = watch(colLabel);
3781
3781
  const formatedDate = dayjs(selectedDate).format("YYYY-MM-DD");
3782
+ useEffect(() => {
3783
+ if (selectedDate) {
3784
+ // Parse the selectedDate with dayjs
3785
+ const parsedDate = dayjs(selectedDate);
3786
+ // If invalid date, do nothing
3787
+ if (!parsedDate.isValid())
3788
+ return;
3789
+ // Format according to dateFormat from schema
3790
+ const formatted = parsedDate.format(dateFormat);
3791
+ // Update the form value only if different to avoid loops
3792
+ if (formatted !== selectedDate) {
3793
+ setValue(colLabel, formatted, {
3794
+ shouldValidate: true,
3795
+ shouldDirty: true,
3796
+ });
3797
+ }
3798
+ }
3799
+ }, [selectedDate, dateFormat, colLabel, setValue]);
3782
3800
  return (jsxs(Field, { label: `${translate.t(removeIndex(`${colLabel}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
3783
3801
  gridRow, children: [jsxs(PopoverRoot, { open: open, onOpenChange: (e) => setOpen(e.open), closeOnInteractOutside: true, children: [jsx(PopoverTrigger, { asChild: true, children: jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
3784
3802
  setOpen(true);
@@ -4361,6 +4379,9 @@ const IdPicker = ({ column, schema, prefix, isMultiple = false, }) => {
4361
4379
  if (record === undefined) {
4362
4380
  return "";
4363
4381
  }
4382
+ if (!!renderDisplay === true) {
4383
+ return renderDisplay(record);
4384
+ }
4364
4385
  return record[display_column];
4365
4386
  };
4366
4387
  return (jsxs(Field, { label: `${translate.t(removeIndex(removeIndex(`${column}.field_label`)))}`, required: isRequired, alignItems: "stretch", gridColumn,
@@ -4378,7 +4399,7 @@ const IdPicker = ({ column, schema, prefix, isMultiple = false, }) => {
4378
4399
  setOpenSearchResult(true);
4379
4400
  }, children: translate.t(removeIndex(`${colLabel}.add_more`)) })] })), !isMultiple && (jsx(Button, { variant: "outline", onClick: () => {
4380
4401
  setOpenSearchResult(true);
4381
- }, justifyContent: "start", children: getPickedValue() })), jsxs(PopoverRoot, { open: openSearchResult, onOpenChange: (e) => setOpenSearchResult(e.open), closeOnInteractOutside: true, initialFocusEl: () => ref.current, positioning: { placement: "bottom-start", strategy: "fixed" }, children: [jsx(PopoverTrigger, {}), jsx(PopoverContent, { children: jsxs(PopoverBody, { display: "grid", gap: 1, children: [jsx(Input, { placeholder: translate.t(removeIndex(`${colLabel}.typeToSearch`)), onChange: (event) => {
4402
+ }, justifyContent: "start", children: getPickedValue() })), jsxs(PopoverRoot, { open: openSearchResult, onOpenChange: (e) => setOpenSearchResult(e.open), closeOnInteractOutside: true, initialFocusEl: () => ref.current, positioning: { placement: "bottom-start", strategy: "fixed" }, children: [jsx(PopoverTrigger, {}), jsx(PopoverContent, { children: jsxs(PopoverBody, { display: "grid", gap: 1, children: [jsx(Input, { placeholder: translate.t(removeIndex(`${colLabel}.type_to_search`)), onChange: (event) => {
4382
4403
  onSearchChange(event);
4383
4404
  setOpenSearchResult(true);
4384
4405
  }, autoComplete: "off", ref: ref }), jsx(PopoverTitle, {}), (searchText?.length ?? 0) > 0 && (jsxs(Fragment, { children: [isFetching && jsx(Fragment, { children: "isFetching" }), isLoading && jsx(Fragment, { children: "isLoading" }), isPending && jsx(Fragment, { children: "isPending" }), (isFetching || isLoading || isPending) && jsx(Spinner, {}), isError && (jsx(Icon, { color: "red.400", children: jsx(BiError, {}) })), jsx(Text, { justifySelf: "center", children: `${translate.t(removeIndex(`${colLabel}.total`))} ${count}, ${translate.t(removeIndex(`${colLabel}.showing`))} ${limit}` }), jsxs(Grid, { gridTemplateColumns: "repeat(auto-fit, minmax(15rem, 1fr))", overflow: "auto", maxHeight: "50vh", children: [jsx(Flex, { flexFlow: "column wrap", children:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsol-oss/react-datatable5",
3
- "version": "12.0.0-beta.24",
3
+ "version": "12.0.0-beta.26",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",