@campxdev/shared 1.4.22 → 1.4.24
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,8 @@
|
|
|
1
1
|
import { MoreVert } from '@mui/icons-material'
|
|
2
2
|
import {
|
|
3
3
|
ButtonProps,
|
|
4
|
+
DialogProps,
|
|
5
|
+
DrawerProps,
|
|
4
6
|
IconButtonProps,
|
|
5
7
|
MenuListProps,
|
|
6
8
|
MenuProps,
|
|
@@ -43,6 +45,7 @@ interface IModalState {
|
|
|
43
45
|
open: boolean
|
|
44
46
|
content: any
|
|
45
47
|
type: MenuItemType
|
|
48
|
+
props: Omit<DialogProps, 'open'> | Omit<DrawerProps, 'open'>
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
const DropDownButton = ({
|
|
@@ -61,6 +64,7 @@ const DropDownButton = ({
|
|
|
61
64
|
open: false,
|
|
62
65
|
content: null,
|
|
63
66
|
type: 'drawer',
|
|
67
|
+
props: null,
|
|
64
68
|
})
|
|
65
69
|
|
|
66
70
|
const handleClick = (event: any) => {
|
|
@@ -79,11 +83,12 @@ const DropDownButton = ({
|
|
|
79
83
|
s.content = null
|
|
80
84
|
})
|
|
81
85
|
}
|
|
82
|
-
const onModalOpen = (item) => {
|
|
86
|
+
const onModalOpen = (item, props) => {
|
|
83
87
|
setModalState((s) => {
|
|
84
88
|
s.content = item.content
|
|
85
89
|
s.open = true
|
|
86
90
|
s.type = item.actionType
|
|
91
|
+
s.props = props
|
|
87
92
|
})
|
|
88
93
|
}
|
|
89
94
|
|
|
@@ -120,13 +125,12 @@ const DropDownButton = ({
|
|
|
120
125
|
>
|
|
121
126
|
{menu.map((item, index) => (
|
|
122
127
|
<RenderMenuItem
|
|
123
|
-
onModalOpen={() => onModalOpen(item)}
|
|
124
|
-
modalState={modalState}
|
|
125
128
|
key={index}
|
|
129
|
+
onModalOpen={(props) => onModalOpen(item, props)}
|
|
130
|
+
modalState={modalState}
|
|
126
131
|
handleClose={handleClose}
|
|
127
|
-
label={item.label}
|
|
128
132
|
actionType={item?.actionType}
|
|
129
|
-
|
|
133
|
+
{...item}
|
|
130
134
|
/>
|
|
131
135
|
))}
|
|
132
136
|
</StyledMenu>
|
|
@@ -159,6 +163,7 @@ const RenderContent = ({
|
|
|
159
163
|
open={modalState.open}
|
|
160
164
|
content={modalState.content}
|
|
161
165
|
title="Dialog Button"
|
|
166
|
+
dialogProps={modalState?.props}
|
|
162
167
|
/>
|
|
163
168
|
)
|
|
164
169
|
|
|
@@ -169,6 +174,7 @@ const RenderContent = ({
|
|
|
169
174
|
open={modalState.open}
|
|
170
175
|
content={modalState.content}
|
|
171
176
|
title="Dialog Button"
|
|
177
|
+
drawerProps={modalState?.props}
|
|
172
178
|
/>
|
|
173
179
|
)
|
|
174
180
|
return <></>
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DialogProps,
|
|
3
|
+
DrawerProps,
|
|
4
|
+
ListItemIcon,
|
|
5
|
+
ListItemText,
|
|
6
|
+
styled,
|
|
7
|
+
} from '@mui/material'
|
|
2
8
|
import { ReactNode } from 'react'
|
|
3
9
|
import { Link } from 'react-router-dom'
|
|
4
10
|
import { DrawerButtonProps } from '../ModalButtons/DrawerButton'
|
|
@@ -45,12 +51,14 @@ export type IMenuItemProps = Omit<MenuItemButtonProps, 'onClick'> & {
|
|
|
45
51
|
contentTitle?: ReactNode
|
|
46
52
|
actionType?: MenuItemType
|
|
47
53
|
onClick?: () => void
|
|
54
|
+
dialogProps?: Omit<DialogProps, 'open'>
|
|
55
|
+
drawerProps?: Omit<DrawerProps, 'open'>
|
|
48
56
|
}
|
|
49
57
|
|
|
50
58
|
export interface IRenderMenuItemProps extends IMenuItemProps {
|
|
51
59
|
handleClose: () => void
|
|
52
60
|
modalState: any
|
|
53
|
-
onModalOpen: () => void
|
|
61
|
+
onModalOpen: (props: any) => void
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
export const RenderMenuItem = ({
|
|
@@ -60,6 +68,8 @@ export const RenderMenuItem = ({
|
|
|
60
68
|
modalState,
|
|
61
69
|
onModalOpen,
|
|
62
70
|
link,
|
|
71
|
+
drawerProps,
|
|
72
|
+
dialogProps,
|
|
63
73
|
...props
|
|
64
74
|
}: IRenderMenuItemProps) => {
|
|
65
75
|
const renderMenuItem: Record<MenuItemType, ReactNode> = {
|
|
@@ -76,7 +86,7 @@ export const RenderMenuItem = ({
|
|
|
76
86
|
<MenuItemButton
|
|
77
87
|
{...props}
|
|
78
88
|
onClick={() => {
|
|
79
|
-
onModalOpen()
|
|
89
|
+
onModalOpen(dialogProps)
|
|
80
90
|
handleClose()
|
|
81
91
|
}}
|
|
82
92
|
/>
|
|
@@ -85,14 +95,14 @@ export const RenderMenuItem = ({
|
|
|
85
95
|
<MenuItemButton
|
|
86
96
|
{...props}
|
|
87
97
|
onClick={() => {
|
|
88
|
-
onModalOpen()
|
|
98
|
+
onModalOpen(drawerProps)
|
|
89
99
|
handleClose()
|
|
90
100
|
}}
|
|
91
101
|
/>
|
|
92
102
|
),
|
|
93
103
|
link: (
|
|
94
104
|
<StyledLink to={link?.to ?? ''} target={link?.target ?? '_blank'}>
|
|
95
|
-
<MenuItemButton onClick={() => {}}
|
|
105
|
+
<MenuItemButton {...props} onClick={() => {}} />
|
|
96
106
|
</StyledLink>
|
|
97
107
|
),
|
|
98
108
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ConfirmationNumberOutlined,
|
|
3
|
+
ExitToAppOutlined,
|
|
4
|
+
HttpsOutlined,
|
|
5
|
+
} from '@mui/icons-material'
|
|
2
6
|
import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'
|
|
3
7
|
import { ReactNode } from 'react'
|
|
4
8
|
import logout from '../../../utils/logout'
|
|
5
9
|
import ChangePassword from '../../ChangePassword'
|
|
6
10
|
import DropDownButton from '../../DropDownButton/DropDownButton'
|
|
11
|
+
import { IMenuItemProps } from '../../DropDownButton/DropdownMenuItem'
|
|
7
12
|
import { DialogButton } from '../../ModalButtons'
|
|
8
13
|
import MyTickets from '../Tickets/MyTickets'
|
|
9
14
|
import { StyledAvatar } from './styles'
|
|
@@ -21,7 +26,7 @@ export default function UserBox({
|
|
|
21
26
|
actions,
|
|
22
27
|
}: {
|
|
23
28
|
fullName: string
|
|
24
|
-
actions:
|
|
29
|
+
actions: IMenuItemProps[] | []
|
|
25
30
|
}) {
|
|
26
31
|
return (
|
|
27
32
|
<>
|
|
@@ -33,39 +38,23 @@ export default function UserBox({
|
|
|
33
38
|
)}
|
|
34
39
|
menu={[
|
|
35
40
|
...actions,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// },
|
|
54
|
-
// {
|
|
55
|
-
// customButton: (
|
|
56
|
-
// <DialogButton
|
|
57
|
-
// title="Change Password"
|
|
58
|
-
// anchor={({ open }) => (
|
|
59
|
-
// <DropDownButton.MenuItem
|
|
60
|
-
// onClick={open}
|
|
61
|
-
// icon={<HttpsOutlined />}
|
|
62
|
-
// label="Change Password"
|
|
63
|
-
// />
|
|
64
|
-
// )}
|
|
65
|
-
// content={({ close }) => <ChangePassword close={close} />}
|
|
66
|
-
// />
|
|
67
|
-
// ),
|
|
68
|
-
// },
|
|
41
|
+
{
|
|
42
|
+
label: 'My Tickets',
|
|
43
|
+
actionType: 'dialog',
|
|
44
|
+
content: ({ close }) => <MyTickets close={close} />,
|
|
45
|
+
contentTitle: 'My Tickets',
|
|
46
|
+
icon: <ConfirmationNumberOutlined />,
|
|
47
|
+
dialogProps: {
|
|
48
|
+
maxWidth: 'xl',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: 'Change Password',
|
|
53
|
+
actionType: 'dialog',
|
|
54
|
+
icon: <HttpsOutlined />,
|
|
55
|
+
content: ({ close }) => <ChangePassword close={close} />,
|
|
56
|
+
contentTitle: 'Change Password',
|
|
57
|
+
},
|
|
69
58
|
{
|
|
70
59
|
label: 'Logout',
|
|
71
60
|
icon: <ExitToAppOutlined />,
|
|
@@ -42,7 +42,7 @@ export const Transition = forwardRef(function Transition(
|
|
|
42
42
|
interface DrawerButtonProps {
|
|
43
43
|
anchor: (props: { open: () => void }) => ReactNode
|
|
44
44
|
content: (props: { close: () => void }) => ReactNode
|
|
45
|
-
title: string
|
|
45
|
+
title: string
|
|
46
46
|
dialogProps?: Omit<DialogProps, 'open'>
|
|
47
47
|
onDialogClose?: () => void
|
|
48
48
|
}
|
|
@@ -83,10 +83,10 @@ export default function DialogButton({
|
|
|
83
83
|
|
|
84
84
|
interface CustomDialogProps {
|
|
85
85
|
content: (props: { close: () => void }) => ReactNode
|
|
86
|
-
title: string
|
|
87
|
-
dialogProps?: Omit<DialogProps, 'open'>
|
|
86
|
+
title: string
|
|
88
87
|
onClose: () => void
|
|
89
88
|
open: boolean
|
|
89
|
+
dialogProps?: Omit<DialogProps, 'open'>
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
export const CustomDialog = ({
|