@pipelinesolucoes/menu 1.0.1-beta.1 → 1.0.1-beta.10
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/components/drawer/DesktopDrawer.d.ts +26 -45
- package/dist/components/drawer/DesktopDrawer.js +138 -74
- package/dist/components/drawer/DesktopDrawer.js.map +1 -1
- package/dist/components/drawer/DrawerResponsive.d.ts +32 -64
- package/dist/components/drawer/DrawerResponsive.js +35 -73
- package/dist/components/drawer/DrawerResponsive.js.map +1 -1
- package/dist/components/drawer/MobileDrawer.d.ts +27 -46
- package/dist/components/drawer/MobileDrawer.js +45 -83
- package/dist/components/drawer/MobileDrawer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/Drawer.d.ts +33 -2
- package/dist/types/Drawer.js +1 -0
- package/dist/types/Drawer.js.map +1 -1
- package/package.json +2 -2
|
@@ -6,58 +6,39 @@ import { DrawerProps } from '@/types/Drawer';
|
|
|
6
6
|
* - Drawer lateral (mini/expandido) com itens de navegação;
|
|
7
7
|
* - Conteúdo principal à direita.
|
|
8
8
|
*
|
|
9
|
+
* Inclui uma área de alertas no Drawer:
|
|
10
|
+
* - Quando o Drawer está aberto: exibe ícone + conteúdo (`alertContent`);
|
|
11
|
+
* - Quando o Drawer está fechado: exibe apenas o ícone (`alertIcon`);
|
|
12
|
+
* - Clique no ícone NÃO troca de aba; ações devem ficar dentro do `alertContent`.
|
|
13
|
+
*
|
|
9
14
|
* Também suporta um estado de carregamento (`loading`) que exibe um overlay
|
|
10
15
|
* escurecido com um spinner centralizado, desabilitando a interação com a página.
|
|
11
16
|
*
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {string}
|
|
19
|
-
* @param {
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {string}
|
|
22
|
-
* @param {
|
|
23
|
-
* @param {
|
|
24
|
-
* @param {
|
|
25
|
-
* @param {
|
|
26
|
-
* @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
|
|
27
|
-
* @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
|
|
28
|
-
* @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
|
|
29
|
-
* @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
|
|
30
|
-
* @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
|
|
31
|
-
*
|
|
32
|
-
* Exibido apenas em `md` ou acima.
|
|
17
|
+
* @param {number} [activeTabIndex] Índice ativo controlado externamente (troca programática).
|
|
18
|
+
* @param {number} [defaultTabIndex=0] Índice inicial quando não controlado.
|
|
19
|
+
* @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
|
|
20
|
+
* @param {React.ReactElement} [alertIcon] Ícone exibido na área de alertas (sempre visível).
|
|
21
|
+
* @param {React.ReactNode} [alertContent] Conteúdo renderizado quando o Drawer está aberto.
|
|
22
|
+
* @param {() => void} [onAlertIconClick] Callback ao clicar no ícone de alertas.
|
|
23
|
+
* @param {string} [alertAriaLabel='Open alerts'] Rótulo de acessibilidade do botão de alertas.
|
|
24
|
+
* @param {string | number} [alertWidth='100%'] Largura do container de alertas (quando aberto).
|
|
25
|
+
* @param {string | number} [alertPadding=12] Espaçamento interno do container de alertas (quando aberto).
|
|
26
|
+
* @param {string | number} [alertMargin=0] Margem do container de alertas (quando aberto).
|
|
27
|
+
* @param {string} [alertBackground='transparent'] Cor de fundo do container de alertas (quando aberto).
|
|
28
|
+
* @param {string} [alertColor='inherit'] Cor do texto dentro do container de alertas.
|
|
29
|
+
* @param {string | number} [alertBorderRadius=0] Raio da borda do container de alertas (quando aberto).
|
|
30
|
+
* @param {string} [alertBoxShadow='none'] Sombra do container de alertas (quando aberto).
|
|
33
31
|
*
|
|
34
32
|
* @example
|
|
35
33
|
* ```tsx
|
|
36
|
-
* import
|
|
34
|
+
* import NotificationsIcon from '@mui/icons-material/Notifications';
|
|
37
35
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* colorItemMenuSelected="#1976d2"
|
|
45
|
-
* idUsuarioLogado={1}
|
|
46
|
-
* nomeUsuarioLogado="John Doe"
|
|
47
|
-
* emailUsuario="john.doe@email.com"
|
|
48
|
-
* profileImage="/images/default-avatar.png"
|
|
49
|
-
* menuItems={menuItems}
|
|
50
|
-
* avatarMenuItems={avatarMenuItems}
|
|
51
|
-
* selectedIndex={0}
|
|
52
|
-
* onChangeIndex={(index) => console.log(index)}
|
|
53
|
-
* loading={true}
|
|
54
|
-
* loadingBackgroundColor="rgba(0, 0, 0, 0.6)"
|
|
55
|
-
* loadingSpinnerSize={64}
|
|
56
|
-
* loadingMessage="Carregando dados..."
|
|
57
|
-
* loadingColor="#ffffff"
|
|
58
|
-
* />
|
|
59
|
-
* );
|
|
60
|
-
* };
|
|
36
|
+
* <DesktopDrawer
|
|
37
|
+
* // ...props do drawer
|
|
38
|
+
* alertIcon={<NotificationsIcon />}
|
|
39
|
+
* alertContent={<MyAlerts onOpenModal={() => setOpen(true)} />}
|
|
40
|
+
* onAlertIconClick={() => console.log('clicou no ícone')}
|
|
41
|
+
* />
|
|
61
42
|
* ```
|
|
62
43
|
*/
|
|
63
44
|
declare const DesktopDrawer: React.FC<DrawerProps>;
|
|
@@ -81,128 +81,192 @@ const LoadingOverlay = styled('div', {
|
|
|
81
81
|
pointerEvents: 'auto',
|
|
82
82
|
color: overlayColor || '#ffffff',
|
|
83
83
|
}));
|
|
84
|
+
const CardAvatar = styled('div')(() => ({
|
|
85
|
+
display: 'flex',
|
|
86
|
+
flexDirection: 'row',
|
|
87
|
+
alignItems: 'center',
|
|
88
|
+
justifyContent: 'start',
|
|
89
|
+
width: '100%',
|
|
90
|
+
gap: '16px',
|
|
91
|
+
marginBottom: '24px',
|
|
92
|
+
padding: '8px 20px',
|
|
93
|
+
}));
|
|
94
|
+
const AlertAreaWrapper = styled('div', {
|
|
95
|
+
shouldForwardProp: (prop) => ![
|
|
96
|
+
'open',
|
|
97
|
+
'width',
|
|
98
|
+
'padding',
|
|
99
|
+
'margin',
|
|
100
|
+
'background',
|
|
101
|
+
'color',
|
|
102
|
+
'borderRadius',
|
|
103
|
+
'boxShadow',
|
|
104
|
+
].includes(prop),
|
|
105
|
+
})(({ theme, open, width, padding, margin, background, color, borderRadius, boxShadow }) => ({
|
|
106
|
+
width: open ? (width !== null && width !== void 0 ? width : '100%') : '100%',
|
|
107
|
+
padding: open ? (padding !== null && padding !== void 0 ? padding : theme.spacing(1, 1.5)) : 0,
|
|
108
|
+
margin: open ? (margin !== null && margin !== void 0 ? margin : theme.spacing(1, 0, 0, 0)) : 0,
|
|
109
|
+
background: open ? (background !== null && background !== void 0 ? background : 'transparent') : 'transparent',
|
|
110
|
+
color: color !== null && color !== void 0 ? color : 'inherit',
|
|
111
|
+
borderRadius: open ? (borderRadius !== null && borderRadius !== void 0 ? borderRadius : 0) : 0,
|
|
112
|
+
boxShadow: open ? (boxShadow !== null && boxShadow !== void 0 ? boxShadow : 'none') : 'none',
|
|
113
|
+
overflow: 'hidden',
|
|
114
|
+
}));
|
|
84
115
|
/**
|
|
85
116
|
* Layout desktop responsável por exibir:
|
|
86
117
|
* - AppBar com botão de menu e informações do usuário;
|
|
87
118
|
* - Drawer lateral (mini/expandido) com itens de navegação;
|
|
88
119
|
* - Conteúdo principal à direita.
|
|
89
120
|
*
|
|
121
|
+
* Inclui uma área de alertas no Drawer:
|
|
122
|
+
* - Quando o Drawer está aberto: exibe ícone + conteúdo (`alertContent`);
|
|
123
|
+
* - Quando o Drawer está fechado: exibe apenas o ícone (`alertIcon`);
|
|
124
|
+
* - Clique no ícone NÃO troca de aba; ações devem ficar dentro do `alertContent`.
|
|
125
|
+
*
|
|
90
126
|
* Também suporta um estado de carregamento (`loading`) que exibe um overlay
|
|
91
127
|
* escurecido com um spinner centralizado, desabilitando a interação com a página.
|
|
92
128
|
*
|
|
93
|
-
* @param {
|
|
94
|
-
* @param {
|
|
95
|
-
* @param {
|
|
96
|
-
* @param {
|
|
97
|
-
* @param {
|
|
98
|
-
* @param {
|
|
99
|
-
* @param {string}
|
|
100
|
-
* @param {
|
|
101
|
-
* @param {
|
|
102
|
-
* @param {string}
|
|
103
|
-
* @param {
|
|
104
|
-
* @param {
|
|
105
|
-
* @param {
|
|
106
|
-
* @param {
|
|
107
|
-
* @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
|
|
108
|
-
* @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
|
|
109
|
-
* @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
|
|
110
|
-
* @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
|
|
111
|
-
* @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
|
|
112
|
-
*
|
|
113
|
-
* Exibido apenas em `md` ou acima.
|
|
129
|
+
* @param {number} [activeTabIndex] Índice ativo controlado externamente (troca programática).
|
|
130
|
+
* @param {number} [defaultTabIndex=0] Índice inicial quando não controlado.
|
|
131
|
+
* @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
|
|
132
|
+
* @param {React.ReactElement} [alertIcon] Ícone exibido na área de alertas (sempre visível).
|
|
133
|
+
* @param {React.ReactNode} [alertContent] Conteúdo renderizado quando o Drawer está aberto.
|
|
134
|
+
* @param {() => void} [onAlertIconClick] Callback ao clicar no ícone de alertas.
|
|
135
|
+
* @param {string} [alertAriaLabel='Open alerts'] Rótulo de acessibilidade do botão de alertas.
|
|
136
|
+
* @param {string | number} [alertWidth='100%'] Largura do container de alertas (quando aberto).
|
|
137
|
+
* @param {string | number} [alertPadding=12] Espaçamento interno do container de alertas (quando aberto).
|
|
138
|
+
* @param {string | number} [alertMargin=0] Margem do container de alertas (quando aberto).
|
|
139
|
+
* @param {string} [alertBackground='transparent'] Cor de fundo do container de alertas (quando aberto).
|
|
140
|
+
* @param {string} [alertColor='inherit'] Cor do texto dentro do container de alertas.
|
|
141
|
+
* @param {string | number} [alertBorderRadius=0] Raio da borda do container de alertas (quando aberto).
|
|
142
|
+
* @param {string} [alertBoxShadow='none'] Sombra do container de alertas (quando aberto).
|
|
114
143
|
*
|
|
115
144
|
* @example
|
|
116
145
|
* ```tsx
|
|
117
|
-
* import
|
|
146
|
+
* import NotificationsIcon from '@mui/icons-material/Notifications';
|
|
118
147
|
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* colorItemMenuSelected="#1976d2"
|
|
126
|
-
* idUsuarioLogado={1}
|
|
127
|
-
* nomeUsuarioLogado="John Doe"
|
|
128
|
-
* emailUsuario="john.doe@email.com"
|
|
129
|
-
* profileImage="/images/default-avatar.png"
|
|
130
|
-
* menuItems={menuItems}
|
|
131
|
-
* avatarMenuItems={avatarMenuItems}
|
|
132
|
-
* selectedIndex={0}
|
|
133
|
-
* onChangeIndex={(index) => console.log(index)}
|
|
134
|
-
* loading={true}
|
|
135
|
-
* loadingBackgroundColor="rgba(0, 0, 0, 0.6)"
|
|
136
|
-
* loadingSpinnerSize={64}
|
|
137
|
-
* loadingMessage="Carregando dados..."
|
|
138
|
-
* loadingColor="#ffffff"
|
|
139
|
-
* />
|
|
140
|
-
* );
|
|
141
|
-
* };
|
|
148
|
+
* <DesktopDrawer
|
|
149
|
+
* // ...props do drawer
|
|
150
|
+
* alertIcon={<NotificationsIcon />}
|
|
151
|
+
* alertContent={<MyAlerts onOpenModal={() => setOpen(true)} />}
|
|
152
|
+
* onAlertIconClick={() => console.log('clicou no ícone')}
|
|
153
|
+
* />
|
|
142
154
|
* ```
|
|
143
155
|
*/
|
|
144
|
-
const DesktopDrawer = ({ endPointLogout, backgroundHeader, backgroundMenuAvatar, colorItemMenu, colorItemMenuSelected, idUsuarioLogado, nomeUsuarioLogado, emailUsuario, profileImage, menuItems, avatarMenuItems,
|
|
145
|
-
var _a, _b;
|
|
156
|
+
const DesktopDrawer = ({ endPointLogout, backgroundHeader, backgroundMenuAvatar, colorItemMenu, colorItemMenuSelected, idUsuarioLogado, nomeUsuarioLogado, emailUsuario, profileImage, menuItems, avatarMenuItems, activeTabIndex, defaultTabIndex = 0, onTabChange, onUnauthenticated, toolbarContent, loading, loadingBackgroundColor, loadingSpinnerSize, loadingMessage, loadingColor, titulo, subtitulo, menu_opened = true, alert }) => {
|
|
157
|
+
var _a, _b, _c;
|
|
146
158
|
const theme = useTheme();
|
|
147
159
|
const { confirm, ConfirmMessagePortal } = useConfirmMessage();
|
|
148
|
-
const [open, setOpen] = React.useState(
|
|
149
|
-
|
|
160
|
+
const [open, setOpen] = React.useState(menu_opened);
|
|
161
|
+
const isControlled = typeof activeTabIndex === 'number';
|
|
162
|
+
const [internalIndex, setInternalIndex] = React.useState(defaultTabIndex);
|
|
163
|
+
React.useEffect(() => {
|
|
164
|
+
if (!isControlled) {
|
|
165
|
+
setInternalIndex(defaultTabIndex);
|
|
166
|
+
}
|
|
167
|
+
}, [defaultTabIndex, isControlled]);
|
|
168
|
+
const currentIndex = isControlled ? activeTabIndex : internalIndex;
|
|
150
169
|
const hasFiredUnauth = React.useRef(false);
|
|
151
170
|
React.useEffect(() => {
|
|
152
|
-
|
|
153
|
-
if (!hasFiredUnauth.current &&
|
|
154
|
-
loading === false &&
|
|
155
|
-
idUsuarioLogado === null) {
|
|
171
|
+
if (!hasFiredUnauth.current && loading === false && idUsuarioLogado === null) {
|
|
156
172
|
hasFiredUnauth.current = true;
|
|
157
173
|
onUnauthenticated === null || onUnauthenticated === void 0 ? void 0 : onUnauthenticated();
|
|
158
174
|
}
|
|
159
|
-
}, [loading, idUsuarioLogado]);
|
|
175
|
+
}, [loading, idUsuarioLogado, onUnauthenticated]);
|
|
160
176
|
if (loading === false && idUsuarioLogado === null) {
|
|
161
|
-
// enquanto o pai decide o que fazer (redirect, etc.), você não renderiza nada
|
|
162
177
|
return null;
|
|
163
178
|
}
|
|
164
179
|
const handleDrawerOpen = () => setOpen(true);
|
|
165
180
|
const handleDrawerClose = () => setOpen(false);
|
|
166
|
-
const [, setErrorMsg] = React.useState(null);
|
|
167
181
|
const handleClickLogout = async () => {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
182
|
+
const accepted = await confirm({
|
|
183
|
+
message: 'Deseja realmente sair?',
|
|
184
|
+
confirmLabel: 'Ok',
|
|
185
|
+
cancelLabel: 'Cancelar',
|
|
186
|
+
closeOnBackdropClick: true,
|
|
187
|
+
closeOnEsc: true,
|
|
188
|
+
});
|
|
189
|
+
if (!accepted)
|
|
190
|
+
return;
|
|
191
|
+
window.location.href = endPointLogout;
|
|
192
|
+
};
|
|
193
|
+
const handleSelectTab = (index) => {
|
|
194
|
+
onTabChange === null || onTabChange === void 0 ? void 0 : onTabChange(index);
|
|
195
|
+
if (!isControlled)
|
|
196
|
+
setInternalIndex(index);
|
|
197
|
+
};
|
|
198
|
+
const handleAlertClick = () => {
|
|
199
|
+
if (alert === null || alert === void 0 ? void 0 : alert.onAlertIconClick) {
|
|
200
|
+
alert === null || alert === void 0 ? void 0 : alert.onAlertIconClick();
|
|
201
|
+
return;
|
|
183
202
|
}
|
|
203
|
+
// Comportamento padrão: se estiver fechado, abre. Se estiver aberto, não faz nada.
|
|
204
|
+
if (!open)
|
|
205
|
+
setOpen(true);
|
|
184
206
|
};
|
|
207
|
+
const shouldRenderAlertArea = Boolean((alert === null || alert === void 0 ? void 0 : alert.alertIcon) || (alert === null || alert === void 0 ? void 0 : alert.alertContent));
|
|
185
208
|
return (_jsxs(_Fragment, { children: [_jsxs(Box, { sx: { display: 'flex' }, children: [_jsx(AppBar, { position: "fixed", open: open, background: backgroundHeader, children: _jsxs(Toolbar, { children: [_jsx(IconButton, { "aria-label": "open drawer", onClick: handleDrawerOpen, edge: "start", sx: [
|
|
186
209
|
{ marginRight: 5, color: colorItemMenu },
|
|
187
210
|
open && { display: 'none' },
|
|
188
|
-
], children: _jsx(MenuIcon, {}) }), _jsxs(ToolbarContent, { children: [toolbarContent && toolbarContent, _jsx(IconDrawerTrigger, { background: backgroundMenuAvatar, icon: _jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), children: _jsx(UserAvatarMenu, { userName: nomeUsuarioLogado, userEmail: emailUsuario, menuItems: avatarMenuItems, endPointLogout: endPointLogout }) })] })] }) }), _jsxs(Drawer, { variant: "permanent", open: open, children: [_jsx(DrawerHeader, { children: _jsx(IconButton, { onClick: handleDrawerClose, children: theme.direction === 'rtl' ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) }) }), _jsx(Divider, {}), _jsxs(List, { children: [
|
|
211
|
+
], children: _jsx(MenuIcon, {}) }), _jsxs(ToolbarContent, { children: [toolbarContent && toolbarContent, _jsx(IconDrawerTrigger, { background: backgroundMenuAvatar, icon: _jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), children: _jsx(UserAvatarMenu, { userName: nomeUsuarioLogado, userEmail: emailUsuario, menuItems: avatarMenuItems, endPointLogout: endPointLogout }) })] })] }) }), _jsxs(Drawer, { variant: "permanent", open: open, children: [_jsx(DrawerHeader, { children: _jsx(IconButton, { onClick: handleDrawerClose, children: theme.direction === 'rtl' ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) }) }), _jsx(Divider, {}), _jsxs(List, { children: [open && titulo && (_jsxs(CardAvatar, { children: [_jsx(Avatar, { src: profileImage, alt: `foto do perfil de ${nomeUsuarioLogado}`, sx: { width: 48, height: 48, cursor: 'pointer' } }), _jsxs(Box, { display: "flex", flexDirection: "column", children: [_jsx(Typography, { variant: "subtitle2", color: colorItemMenu, children: titulo }), _jsx(Typography, { variant: "caption", color: colorItemMenu, children: subtitulo })] })] })), menuItems.map((item, index) => {
|
|
212
|
+
var _a;
|
|
213
|
+
return (_jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { selected: currentIndex === index, onClick: () => handleSelectTab(index), sx: {
|
|
214
|
+
minHeight: 48,
|
|
215
|
+
px: 2.5,
|
|
216
|
+
justifyContent: open ? 'initial' : 'center',
|
|
217
|
+
color: currentIndex === index ? colorItemMenuSelected : colorItemMenu,
|
|
218
|
+
}, children: [_jsx(ListItemIcon, { sx: {
|
|
219
|
+
minWidth: 0,
|
|
220
|
+
justifyContent: 'center',
|
|
221
|
+
mr: open ? 3 : 'auto',
|
|
222
|
+
color: currentIndex === index ? colorItemMenuSelected : colorItemMenu,
|
|
223
|
+
}, children: item.icon }), _jsx(ListItemText, { primary: item.text, sx: { opacity: open ? 1 : 0 } })] }) }, (_a = item.text) !== null && _a !== void 0 ? _a : index));
|
|
224
|
+
}), shouldRenderAlertArea && (_jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { onClick: handleAlertClick, sx: {
|
|
189
225
|
minHeight: 48,
|
|
190
226
|
px: 2.5,
|
|
191
227
|
justifyContent: open ? 'initial' : 'center',
|
|
228
|
+
color: colorItemMenu,
|
|
229
|
+
// permite quebrar para a linha de baixo
|
|
230
|
+
flexWrap: open ? 'wrap' : 'nowrap',
|
|
231
|
+
alignItems: open ? 'flex-start' : 'center',
|
|
192
232
|
}, children: [_jsx(ListItemIcon, { sx: {
|
|
193
233
|
minWidth: 0,
|
|
194
234
|
justifyContent: 'center',
|
|
195
235
|
mr: open ? 3 : 'auto',
|
|
196
|
-
|
|
236
|
+
color: colorItemMenu,
|
|
237
|
+
}, children: (_a = alert === null || alert === void 0 ? void 0 : alert.alertIcon) !== null && _a !== void 0 ? _a : _jsx(_Fragment, {}) }), _jsx(ListItemText, { primary: alert === null || alert === void 0 ? void 0 : alert.alertTitulo, sx: {
|
|
238
|
+
opacity: open ? 1 : 0,
|
|
239
|
+
// garante que o texto do título continue na mesma linha do ícone
|
|
240
|
+
flex: open ? '1 1 auto' : '0 0 auto',
|
|
241
|
+
m: 0,
|
|
242
|
+
} }), open && (_jsxs(AlertAreaWrapper, { open: open, width: alert === null || alert === void 0 ? void 0 : alert.alertWidth, padding: alert === null || alert === void 0 ? void 0 : alert.alertPadding, margin: alert === null || alert === void 0 ? void 0 : alert.alertMargin, background: alert === null || alert === void 0 ? void 0 : alert.alertBackground, color: alert === null || alert === void 0 ? void 0 : alert.alertColor, borderRadius: alert === null || alert === void 0 ? void 0 : alert.alertBorderRadius, boxShadow: alert === null || alert === void 0 ? void 0 : alert.alertBoxShadow,
|
|
243
|
+
// força o wrapper a "pular" para a próxima linha
|
|
244
|
+
style: {
|
|
245
|
+
flexBasis: '100%',
|
|
246
|
+
width: '100%',
|
|
247
|
+
// indent para alinhar com o começo do texto (mesmo alinhamento dos itens do menu)
|
|
248
|
+
marginLeft: 'calc(24px + 24px)', // (aprox) largura do ícone + gap do ListItemIcon
|
|
249
|
+
}, children: [_jsx(Typography, { component: "span", sx: {
|
|
250
|
+
position: 'absolute',
|
|
251
|
+
width: 1,
|
|
252
|
+
height: 1,
|
|
253
|
+
p: 0,
|
|
254
|
+
m: -1,
|
|
255
|
+
overflow: 'hidden',
|
|
256
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
257
|
+
whiteSpace: 'nowrap',
|
|
258
|
+
border: 0,
|
|
259
|
+
}, children: alert === null || alert === void 0 ? void 0 : alert.alertAriaLabel }), alert === null || alert === void 0 ? void 0 : alert.alertContent] }))] }) })), _jsx(Box, { height: "24px" }), _jsx(ListItem, { disablePadding: true, sx: { display: 'block' }, children: _jsxs(ListItemButton, { onClick: handleClickLogout, sx: {
|
|
197
260
|
minHeight: 48,
|
|
198
261
|
px: 2.5,
|
|
199
262
|
justifyContent: open ? 'initial' : 'center',
|
|
263
|
+
color: colorItemMenu,
|
|
200
264
|
}, children: [_jsx(ListItemIcon, { sx: {
|
|
201
265
|
minWidth: 0,
|
|
202
266
|
justifyContent: 'center',
|
|
203
267
|
mr: open ? 3 : 'auto',
|
|
204
268
|
color: colorItemMenu,
|
|
205
|
-
}, children: _jsx(LogoutIcon, {}) }), _jsx(ListItemText, { primary: "Sair", sx: { opacity: open ? 1 : 0 } })] }) }, "logout")] })] }), _jsxs(Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [_jsx(DrawerHeader, {}), (
|
|
269
|
+
}, children: _jsx(LogoutIcon, {}) }), _jsx(ListItemText, { primary: "Sair", sx: { opacity: open ? 1 : 0 } })] }) }, "logout")] })] }), _jsxs(Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [_jsx(DrawerHeader, {}), (_c = (_b = menuItems[currentIndex]) === null || _b === void 0 ? void 0 : _b.component) !== null && _c !== void 0 ? _c : (_jsx(Typography, { children: "Selecione um item do menu." }))] }), ConfirmMessagePortal] }), loading && (_jsxs(LoadingOverlay, { overlayBackground: loadingBackgroundColor, overlayColor: loadingColor, children: [_jsx(CircularProgress, { size: loadingSpinnerSize, sx: { color: loadingColor, mb: loadingMessage ? 2 : 0 } }), loadingMessage && (_jsx(Typography, { sx: { mt: 2, color: loadingColor }, children: loadingMessage }))] }))] }));
|
|
206
270
|
};
|
|
207
271
|
DesktopDrawer.displayName = 'DesktopDrawer';
|
|
208
272
|
export default DesktopDrawer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopDrawer.js","sourceRoot":"","sources":["../../../src/components/drawer/DesktopDrawer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DesktopDrawer.js","sourceRoot":"","sources":["../../../src/components/drawer/DesktopDrawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,74 +1,42 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DrawerProps } from '@/types/Drawer';
|
|
3
|
+
type DrawerResponsiveProps = DrawerProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Índice da aba/item ativo controlado externamente.
|
|
6
|
+
* Quando definido, o DrawerResponsive vira controlado.
|
|
7
|
+
*/
|
|
8
|
+
activeTabIndex?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Índice inicial quando não controlado por `activeTabIndex`.
|
|
11
|
+
*/
|
|
12
|
+
defaultTabIndex?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Callback disparado ao trocar de aba/item.
|
|
15
|
+
*/
|
|
16
|
+
onTabChange?: (index: number) => void;
|
|
17
|
+
};
|
|
3
18
|
/**
|
|
4
19
|
* DrawerResponsive é um layout de navegação responsivo que:
|
|
5
|
-
* - Em telas pequenas (xs/sm) usa o `
|
|
6
|
-
* - Em telas médias ou maiores (md+) usa o `
|
|
20
|
+
* - Em telas pequenas (xs/sm) usa o `MobileDrawer`;
|
|
21
|
+
* - Em telas médias ou maiores (md+) usa o `DesktopDrawer`.
|
|
7
22
|
*
|
|
8
|
-
* @param {
|
|
9
|
-
* @param {
|
|
10
|
-
* @param {
|
|
11
|
-
* @param {string} colorItemMenuSelected Cor do item de menu selecionado.
|
|
12
|
-
* @param {number | string | null} idUsuarioLogado Id do usuário logado.
|
|
13
|
-
* @param {string} nomeUsuarioLogado Nome do usuário logado.
|
|
14
|
-
* @param {string} emailUsuario Email do usuário logado.
|
|
15
|
-
* @param {Array<any>} menuItems Itens exibidos no Drawer.
|
|
16
|
-
* @param {Array<any>} avatarMenuItems Itens exibidos no menu do avatar.
|
|
17
|
-
* @param {string} profileImage URL final da imagem de avatar já tratada.
|
|
18
|
-
* @param {number} selectedIndex Índice do item selecionado.
|
|
19
|
-
* @param {(index: number) => void} onChangeIndex Callback chamado ao alterar o item selecionado.
|
|
20
|
-
* @param {() => void} [onUnauthenticated] Callback chamado se não tiver usuário logado.
|
|
21
|
-
* @param {React.ReactNode} [toolbarContent] Conteúdos genéricos exibidos na barra de ferramentas (texto, ícones, imagens etc.).
|
|
22
|
-
* @param {boolean} [loading=false] Indica se o overlay de loading deve ser exibido sobre toda a tela.
|
|
23
|
-
* @param {string} [loadingBackgroundColor='rgba(0, 0, 0, 0.4)'] Cor de fundo do overlay de loading.
|
|
24
|
-
* @param {number} [loadingSpinnerSize=48] Tamanho do spinner de loading.
|
|
25
|
-
* @param {string} [loadingMessage] Texto opcional exibido abaixo do spinner de loading.
|
|
26
|
-
* @param {string} [loadingColor='#ffffff'] Cor do spinner e do texto da mensagem de loading.
|
|
27
|
-
* @param {() => void} [onChangeIndex] Callback chamado quando o item de menu selecionado é alterado.
|
|
23
|
+
* @param {number} [activeTabIndex] Índice do item ativo controlado externamente (troca programática).
|
|
24
|
+
* @param {number} [defaultTabIndex=0] Índice inicial quando não controlado por `activeTabIndex`.
|
|
25
|
+
* @param {(index: number) => void} [onTabChange] Callback disparado ao trocar de aba/item.
|
|
28
26
|
*
|
|
29
|
-
*
|
|
30
|
-
* Exemplo de uso:
|
|
27
|
+
* @example
|
|
31
28
|
* ```tsx
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
29
|
+
* const Page = () => {
|
|
30
|
+
* const [tab, setTab] = React.useState(0);
|
|
31
|
+
* return (
|
|
32
|
+
* <DrawerResponsive
|
|
33
|
+
* activeTabIndex={tab}
|
|
34
|
+
* onTabChange={(i) => setTab(i)}
|
|
35
|
+
* // ...outras props
|
|
36
|
+
* />
|
|
37
|
+
* );
|
|
38
|
+
* };
|
|
41
39
|
* ```
|
|
42
|
-
*
|
|
43
|
-
* ``` Como implementar o evento onChangeIndex
|
|
44
|
-
* const Page = () => {
|
|
45
|
-
* const [abaAtual, setAbaAtual] = React.useState(0);
|
|
46
|
-
* const handleMenuIndexChange = (index: number) => {
|
|
47
|
-
* setAbaAtual(index);
|
|
48
|
-
* // Aqui você decide o que carregar:
|
|
49
|
-
* switch (index) {
|
|
50
|
-
* case 0:
|
|
51
|
-
* // carregar dados da aba "Dashboard"
|
|
52
|
-
* // fetchDashboard();
|
|
53
|
-
* break;
|
|
54
|
-
* case 1:
|
|
55
|
-
* // carregar dados da aba "Consultas"
|
|
56
|
-
* // fetchConsultas();
|
|
57
|
-
* break;
|
|
58
|
-
* case 2:
|
|
59
|
-
* // carregar dados da aba "Financeiro"
|
|
60
|
-
* // fetchFinanceiro();
|
|
61
|
-
* break;
|
|
62
|
-
* // etc...
|
|
63
|
-
* }
|
|
64
|
-
* };
|
|
65
|
-
* return (
|
|
66
|
-
* <DrawerResponsive
|
|
67
|
-
* // ...outras props
|
|
68
|
-
* onMenuIndexChange={handleMenuIndexChange}
|
|
69
|
-
* />
|
|
70
|
-
* );
|
|
71
|
-
* };
|
|
72
40
|
*/
|
|
73
|
-
declare const DrawerResponsive: React.FC<
|
|
41
|
+
declare const DrawerResponsive: React.FC<DrawerResponsiveProps>;
|
|
74
42
|
export default DrawerResponsive;
|