@homefile/components-v2 2.23.6 → 2.23.7

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.
@@ -1,3 +1,3 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { ItemFormPanelI } from '../../../../interfaces';
3
- export declare const ItemFormPanel: ({ children, onClose, onSubmitForm, panelIcon, panelTitle, showOverlay, onClearForm, onDuplicate }: PropsWithChildren<ItemFormPanelI>) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const ItemFormPanel: ({ children, onClose, onSubmitForm, panelIcon, panelTitle, showOverlay, onClearForm, onDuplicate, }: PropsWithChildren<ItemFormPanelI>) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
- import { DrawerBody, DrawerHeader, DrawerFooter, Box, } from '@chakra-ui/react';
4
- import { PanelHeader, FooterDrawer, ItemFormFooter, Overlay, Loading } from '../../..';
5
- export const ItemFormPanel = ({ children, onClose, onSubmitForm, panelIcon, panelTitle, showOverlay = false, onClearForm, onDuplicate }) => {
3
+ import { DrawerBody, DrawerHeader, DrawerFooter, Box } from '@chakra-ui/react';
4
+ import { PanelHeader, FooterDrawer, ItemFormFooter, Overlay, Loading, } from '../../..';
5
+ export const ItemFormPanel = ({ children, onClose, onSubmitForm, panelIcon, panelTitle, showOverlay = false, onClearForm, onDuplicate, }) => {
6
6
  const { firstChild, otherChildren } = useMemo(() => {
7
7
  let firstChild = null;
8
8
  let otherChildren = children;
@@ -15,5 +15,5 @@ export const ItemFormPanel = ({ children, onClose, onSubmitForm, panelIcon, pane
15
15
  }
16
16
  return { firstChild, otherChildren };
17
17
  }, [children]);
18
- return (_jsxs(_Fragment, { children: [_jsx(DrawerHeader, { p: "0", children: _jsx(PanelHeader, { handleCloseButton: onClose, icon: panelIcon, title: panelTitle }) }), _jsx(DrawerBody, { p: "0", overflowX: "hidden", bg: "lightBlue.1", children: firstChild ? (_jsxs(_Fragment, { children: [firstChild, _jsxs(Box, { position: "relative", mb: "200px", children: [_jsx(Overlay, { showOverlay: showOverlay, position: "absolute", w: "inherit", h: "inherit", zIndex: "9" }), otherChildren] })] })) : (_jsx(Loading, {})) }), _jsx(FooterDrawer, { isOpen: !showOverlay, children: _jsx(DrawerFooter, { w: "100%", py: "0", children: _jsx(ItemFormFooter, { onClearForm: onClearForm, onDuplicate: onDuplicate, onSave: onSubmitForm, onCancel: onClose }) }) })] }));
18
+ return (_jsxs(_Fragment, { children: [_jsx(DrawerHeader, { p: "0", children: _jsx(PanelHeader, { handleCloseButton: onClose, icon: panelIcon, title: panelTitle }) }), _jsx(DrawerBody, { p: "0", overflowX: "hidden", bg: "lightBlue.1", children: firstChild ? (_jsxs(_Fragment, { children: [firstChild, _jsxs(Box, { position: "relative", mb: "200px", children: [_jsx(Overlay, { showOverlay: showOverlay, position: "absolute", w: "inherit", h: "inherit", zIndex: "9" }), otherChildren] })] })) : (_jsx(Loading, {})) }), onSubmitForm && (_jsx(FooterDrawer, { isOpen: !showOverlay, children: _jsx(DrawerFooter, { w: "100%", py: "0", children: _jsx(ItemFormFooter, { onClearForm: onClearForm, onDuplicate: onDuplicate, onSave: onSubmitForm, onCancel: onClose }) }) }))] }));
19
19
  };
@@ -1,2 +1,2 @@
1
1
  import { ItemNameHeaderI } from '../../interfaces';
2
- export declare const ItemNameHeader: ({ id, value, onSave, onValueChange, padding, required, }: ItemNameHeaderI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ItemNameHeader: ({ id, value, onSave, onValueChange, padding, required, showSaveButton, }: ItemNameHeaderI) => import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,7 @@ import { Box, Flex, Button } from '@chakra-ui/react';
4
4
  import { TextInput } from '..';
5
5
  import { isEmptyField } from '../../utils';
6
6
  import { useState, useEffect } from 'react';
7
- export const ItemNameHeader = ({ id = '', value = '', onSave, onValueChange, padding = 'base', required = true, }) => {
7
+ export const ItemNameHeader = ({ id = '', value = '', onSave, onValueChange, padding = 'base', required = true, showSaveButton = true, }) => {
8
8
  const [name, setName] = useState(value);
9
9
  useEffect(() => {
10
10
  setName(value);
@@ -13,5 +13,5 @@ export const ItemNameHeader = ({ id = '', value = '', onSave, onValueChange, pad
13
13
  setName(e.target.value);
14
14
  onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(e.target.value);
15
15
  };
16
- return (_jsx(Box, { bg: "lightBlue.2", p: padding, w: "100%", children: _jsxs(Flex, { gap: "base", align: "center", children: [_jsx(TextInput, { errorMessage: `${t('householdItems.headers.itemName')} ${t('forms.required')}`, hasError: required && isEmptyField(name), id: id, handleChange: handleChange, placeholder: t('householdItems.headers.placeholder'), value: name }), name && (_jsx(Button, { variant: "secondary", maxW: "fit-content", maxH: "input.md", onClick: () => onSave(name), children: t('createDocument.buttons.save') }))] }) }));
16
+ return (_jsx(Box, { bg: "lightBlue.2", p: padding, w: "100%", children: _jsxs(Flex, { gap: "base", align: "center", children: [_jsx(TextInput, { errorMessage: `${t('householdItems.headers.itemName')} ${t('forms.required')}`, hasError: required && isEmptyField(name), id: id, handleChange: handleChange, placeholder: t('householdItems.headers.placeholder'), value: name }), name && showSaveButton && (_jsx(Button, { variant: "secondary", maxW: "fit-content", maxH: "input.md", onClick: () => onSave(name), children: t('createDocument.buttons.save') }))] }) }));
17
17
  };
@@ -1,6 +1,6 @@
1
1
  export interface ItemFormPanelI {
2
2
  onClose: () => void;
3
- onSubmitForm: () => void;
3
+ onSubmitForm?: () => void;
4
4
  panelIcon: string;
5
5
  panelTitle: string;
6
6
  showOverlay?: boolean;
@@ -5,4 +5,5 @@ export interface ItemNameHeaderI {
5
5
  onSave: (name: string) => void;
6
6
  padding?: string;
7
7
  required?: boolean;
8
+ showSaveButton?: boolean;
8
9
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homefile/components-v2",
3
- "version": "2.23.6",
3
+ "version": "2.23.7",
4
4
  "author": "Homefile",
5
5
  "license": "UNLICENSED",
6
6
  "typings": "dist/index.d.ts",
@@ -1,16 +1,11 @@
1
1
  import { PropsWithChildren, ReactNode, useMemo } from 'react'
2
- import {
3
- DrawerBody,
4
- DrawerHeader,
5
- DrawerFooter,
6
- Box,
7
- } from '@chakra-ui/react'
2
+ import { DrawerBody, DrawerHeader, DrawerFooter, Box } from '@chakra-ui/react'
8
3
  import {
9
4
  PanelHeader,
10
5
  FooterDrawer,
11
6
  ItemFormFooter,
12
7
  Overlay,
13
- Loading
8
+ Loading,
14
9
  } from '@/components'
15
10
  import { ItemFormPanelI } from '@/interfaces'
16
11
 
@@ -22,9 +17,8 @@ export const ItemFormPanel = ({
22
17
  panelTitle,
23
18
  showOverlay = false,
24
19
  onClearForm,
25
- onDuplicate
20
+ onDuplicate,
26
21
  }: PropsWithChildren<ItemFormPanelI>) => {
27
-
28
22
  const { firstChild, otherChildren } = useMemo(() => {
29
23
  let firstChild: ReactNode | null = null
30
24
  let otherChildren: ReactNode = children
@@ -36,7 +30,7 @@ export const ItemFormPanel = ({
36
30
  otherChildren = children.slice(1)
37
31
  }
38
32
  }
39
-
33
+
40
34
  return { firstChild, otherChildren }
41
35
  }, [children])
42
36
 
@@ -51,31 +45,36 @@ export const ItemFormPanel = ({
51
45
  </DrawerHeader>
52
46
 
53
47
  <DrawerBody p="0" overflowX="hidden" bg="lightBlue.1">
54
- {
55
- firstChild ? (
56
- <>
57
- {firstChild}
58
- <Box position="relative" mb="200px">
59
- <Overlay
60
- showOverlay={showOverlay}
61
- position="absolute"
62
- w="inherit"
63
- h="inherit"
64
- zIndex="9"
65
- />
66
- {otherChildren}
67
- </Box>
68
- </>
69
- ) : (
70
- <Loading />
71
- )
72
- }
48
+ {firstChild ? (
49
+ <>
50
+ {firstChild}
51
+ <Box position="relative" mb="200px">
52
+ <Overlay
53
+ showOverlay={showOverlay}
54
+ position="absolute"
55
+ w="inherit"
56
+ h="inherit"
57
+ zIndex="9"
58
+ />
59
+ {otherChildren}
60
+ </Box>
61
+ </>
62
+ ) : (
63
+ <Loading />
64
+ )}
73
65
  </DrawerBody>
74
- <FooterDrawer isOpen={!showOverlay}>
75
- <DrawerFooter w="100%" py="0">
76
- <ItemFormFooter onClearForm={onClearForm} onDuplicate={onDuplicate} onSave={onSubmitForm} onCancel={onClose} />
77
- </DrawerFooter>
78
- </FooterDrawer>
66
+ {onSubmitForm && (
67
+ <FooterDrawer isOpen={!showOverlay}>
68
+ <DrawerFooter w="100%" py="0">
69
+ <ItemFormFooter
70
+ onClearForm={onClearForm}
71
+ onDuplicate={onDuplicate}
72
+ onSave={onSubmitForm}
73
+ onCancel={onClose}
74
+ />
75
+ </DrawerFooter>
76
+ </FooterDrawer>
77
+ )}
79
78
  </>
80
79
  )
81
80
  }
@@ -12,6 +12,7 @@ export const ItemNameHeader = ({
12
12
  onValueChange,
13
13
  padding = 'base',
14
14
  required = true,
15
+ showSaveButton = true,
15
16
  }: ItemNameHeaderI) => {
16
17
  const [name, setName] = useState(value)
17
18
 
@@ -36,7 +37,7 @@ export const ItemNameHeader = ({
36
37
  placeholder={t('householdItems.headers.placeholder')}
37
38
  value={name}
38
39
  />
39
- {name && (
40
+ {name && showSaveButton && (
40
41
  <Button
41
42
  variant="secondary"
42
43
  maxW="fit-content"
@@ -1,6 +1,6 @@
1
1
  export interface ItemFormPanelI {
2
2
  onClose: () => void
3
- onSubmitForm: () => void
3
+ onSubmitForm?: () => void
4
4
  panelIcon: string
5
5
  panelTitle: string
6
6
  showOverlay?: boolean
@@ -5,4 +5,5 @@ export interface ItemNameHeaderI {
5
5
  onSave: (name: string) => void
6
6
  padding?: string
7
7
  required?: boolean
8
+ showSaveButton?: boolean
8
9
  }