@omniumretail/component-library 1.2.61 → 1.2.62
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/780.bundle.js +1 -1
- package/dist/bundle.js +1 -1
- package/dist/types/components/Footer2/index.d.ts +1 -0
- package/dist/types/components/Header/Header.types.d.ts +1 -0
- package/dist/types/components/Header/index.d.ts +1 -1
- package/dist/types/constants/logoCompanyHelper.d.ts +28 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/Footer2/Footer.stories.tsx +1 -1
- package/src/components/Footer2/index.tsx +5 -2
- package/src/components/Header/Header.stories.tsx +0 -1
- package/src/components/Header/Header.types.ts +1 -0
- package/src/components/Header/index.tsx +4 -24
- package/src/constants/logoCompanyHelper.ts +52 -0
- package/src/index.ts +1 -0
|
@@ -45,6 +45,7 @@ export interface Footer2Props {
|
|
|
45
45
|
footerName: string;
|
|
46
46
|
disableBackButton?: boolean;
|
|
47
47
|
disableNotifications?: boolean;
|
|
48
|
+
companyName?: string;
|
|
48
49
|
}
|
|
49
50
|
export declare const Footer2: (props: Footer2Props) => import("react/jsx-runtime").JSX.Element;
|
|
50
51
|
export {};
|
|
@@ -3,5 +3,5 @@ import { HeaderProps } from './Header.types';
|
|
|
3
3
|
* Header component to display navigation bar with dropdown menus and action button.
|
|
4
4
|
* @param {HeaderProps} props - Properties passed to the component.
|
|
5
5
|
*/
|
|
6
|
-
export declare const Header: ({ menuList, actionButton, logout, homeUrl, profileUrl, onLeavingPage, userName, pageTitle, onFilterChange, notifications, onNotificationClick, handleMarkAllAsRead, shouldConfirmNavigation, companyName, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const Header: ({ menuList, actionButton, logout, homeUrl, profileUrl, onLeavingPage, userName, pageTitle, onFilterChange, notifications, onNotificationClick, handleMarkAllAsRead, shouldConfirmNavigation, customLogoClass, companyName, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export default Header;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface CompanyLogo {
|
|
2
|
+
normal: string;
|
|
3
|
+
white: string;
|
|
4
|
+
alt: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Obtém os logos de uma empresa específica
|
|
8
|
+
* @param companyName - Nome da empresa
|
|
9
|
+
* @returns Objeto com os logos normal, white e alt da empresa
|
|
10
|
+
*/
|
|
11
|
+
export declare const getCompanyLogos: (companyName: string) => CompanyLogo;
|
|
12
|
+
/**
|
|
13
|
+
* Verifica se uma empresa possui logos configurados
|
|
14
|
+
* @param companyName - Nome da empresa
|
|
15
|
+
* @returns Boolean indicando se a empresa existe no mapa de logos
|
|
16
|
+
*/
|
|
17
|
+
export declare const hasCompanyLogos: (companyName: string) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Obtém a lista de empresas disponíveis
|
|
20
|
+
* @returns Array com os nomes das empresas configuradas
|
|
21
|
+
*/
|
|
22
|
+
export declare const getAvailableCompanies: () => string[];
|
|
23
|
+
declare const _default: {
|
|
24
|
+
getCompanyLogos: (companyName: string) => CompanyLogo;
|
|
25
|
+
hasCompanyLogos: (companyName: string) => boolean;
|
|
26
|
+
getAvailableCompanies: () => string[];
|
|
27
|
+
};
|
|
28
|
+
export default _default;
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
} from '@ant-design/icons';
|
|
12
12
|
import moment from 'moment';
|
|
13
13
|
import React, { useEffect, useRef, useState } from 'react';
|
|
14
|
-
import omniumLogo from '../../assets/images/omnium-retail-logo-white.png';
|
|
15
14
|
import { useTranslation } from 'react-i18next';
|
|
15
|
+
import { getCompanyLogos } from '../../constants/logoCompanyHelper';
|
|
16
16
|
|
|
17
17
|
interface Action {
|
|
18
18
|
key: string;
|
|
@@ -66,6 +66,7 @@ export interface Footer2Props {
|
|
|
66
66
|
footerName: string;
|
|
67
67
|
disableBackButton?: boolean;
|
|
68
68
|
disableNotifications?: boolean;
|
|
69
|
+
companyName?: string;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
export const Footer2 = (props: Footer2Props) => {
|
|
@@ -80,6 +81,7 @@ export const Footer2 = (props: Footer2Props) => {
|
|
|
80
81
|
footerName = '',
|
|
81
82
|
disableBackButton = false,
|
|
82
83
|
disableNotifications = false,
|
|
84
|
+
companyName = 'omnium',
|
|
83
85
|
} = props;
|
|
84
86
|
|
|
85
87
|
const [date, setDate] = useState(moment());
|
|
@@ -87,6 +89,7 @@ export const Footer2 = (props: Footer2Props) => {
|
|
|
87
89
|
const menuRef = useRef<HTMLDivElement>(null);
|
|
88
90
|
const [isMobile, setIsMobile] = useState(window.innerWidth < 768);
|
|
89
91
|
const { t } = useTranslation();
|
|
92
|
+
const companyLogos = getCompanyLogos(companyName);
|
|
90
93
|
|
|
91
94
|
// Mapeamento de tipos de ações para seus ícones e labels padrão
|
|
92
95
|
const defaultActionProps: Record<string, { icon: React.ReactNode; label: string }> = {
|
|
@@ -240,7 +243,7 @@ export const Footer2 = (props: Footer2Props) => {
|
|
|
240
243
|
|
|
241
244
|
{!isMobile &&
|
|
242
245
|
<div>
|
|
243
|
-
<img src={
|
|
246
|
+
<img src={companyLogos.white} alt={companyLogos.alt} className={styles.omniumLogoImg} />
|
|
244
247
|
</div>
|
|
245
248
|
}
|
|
246
249
|
</div>
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
import { useRef, useState } from 'react';
|
|
2
2
|
import { DownOutlined, UpOutlined, BarsOutlined, CloseOutlined } from '@ant-design/icons';
|
|
3
|
-
import omniumIcon from '../../assets/images/omnium-retail-logo.png';
|
|
4
|
-
import a2ai from '../../assets/images/A2AI-logo.png';
|
|
5
|
-
import omniumWhiteIcon from '../../assets/images/omnium-retail-logo-white.png';
|
|
6
3
|
import styles from './styles.module.scss';
|
|
7
4
|
import classNames from 'classnames';
|
|
8
5
|
import { HeaderProps, MenuItem } from './Header.types';
|
|
9
6
|
import { getMenuTopList, getMenuBottomList } from './Header.data';
|
|
10
7
|
import { BellNotifications } from '../BellNotifications';
|
|
11
|
-
|
|
12
|
-
const logoMap: Record<string, { normal: string; white: string; alt: string }> = {
|
|
13
|
-
omnium: {
|
|
14
|
-
normal: omniumIcon,
|
|
15
|
-
white: omniumWhiteIcon,
|
|
16
|
-
alt: 'Omnium Retail Logo'
|
|
17
|
-
},
|
|
18
|
-
a2ai: {
|
|
19
|
-
normal: a2ai,
|
|
20
|
-
white: a2ai,
|
|
21
|
-
alt: 'XPTO Logo'
|
|
22
|
-
}
|
|
23
|
-
};
|
|
8
|
+
import { getCompanyLogos } from '../../constants/logoCompanyHelper';
|
|
24
9
|
|
|
25
10
|
/**
|
|
26
11
|
* Header component to display navigation bar with dropdown menus and action button.
|
|
@@ -40,6 +25,7 @@ export const Header = ({
|
|
|
40
25
|
onNotificationClick,
|
|
41
26
|
handleMarkAllAsRead,
|
|
42
27
|
shouldConfirmNavigation,
|
|
28
|
+
customLogoClass,
|
|
43
29
|
companyName = 'omnium',
|
|
44
30
|
}: HeaderProps) => {
|
|
45
31
|
|
|
@@ -47,6 +33,7 @@ export const Header = ({
|
|
|
47
33
|
const [activeDropdown, setActiveDropdown] = useState<number | null>(null);
|
|
48
34
|
const headerRef = useRef<HTMLDivElement>(null);
|
|
49
35
|
const overlayRef = useRef<HTMLDivElement>(null);
|
|
36
|
+
const companyLogos = getCompanyLogos(companyName);
|
|
50
37
|
|
|
51
38
|
/**
|
|
52
39
|
* Handle the logout action. If no logout function is provided, redirect to home as discussed in a meet
|
|
@@ -112,13 +99,6 @@ export const Header = ({
|
|
|
112
99
|
setActiveDropdown(activeDropdown === index ? null : index);
|
|
113
100
|
};
|
|
114
101
|
|
|
115
|
-
const getCompanyLogos = (company: string) => {
|
|
116
|
-
const companyKey = company.toLowerCase();
|
|
117
|
-
return logoMap[companyKey] || logoMap['omnium']; // Fallback para omnium se não encontrar
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const companyLogos = getCompanyLogos(companyName);
|
|
121
|
-
|
|
122
102
|
/**
|
|
123
103
|
* Render the menu items, including dropdown menus.
|
|
124
104
|
* @param {MenuItem[]} menuList - The list of menu items to render.
|
|
@@ -198,7 +178,7 @@ export const Header = ({
|
|
|
198
178
|
<div className={classNames(styles.menu, { [styles.active]: isMenuOpen })}>
|
|
199
179
|
<div className={styles.head}>
|
|
200
180
|
<p className={styles.logoWrapper}>
|
|
201
|
-
<img src={companyLogos.white} alt={companyLogos.alt} />
|
|
181
|
+
<img className={customLogoClass} src={companyLogos.white} alt={companyLogos.alt} />
|
|
202
182
|
</p>
|
|
203
183
|
<CloseOutlined color={'#FFFFFF'} className={styles.toggleMenuClose} onClick={onToggleMenu} />
|
|
204
184
|
</div>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import omniumIcon from '../assets/images/omnium-retail-logo.png';
|
|
2
|
+
import a2ai from '../assets/images/A2AI-logo.png';
|
|
3
|
+
import omniumWhiteIcon from '../assets/images/omnium-retail-logo-white.png';
|
|
4
|
+
|
|
5
|
+
export interface CompanyLogo {
|
|
6
|
+
normal: string;
|
|
7
|
+
white: string;
|
|
8
|
+
alt: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const logoMap: Record<string, CompanyLogo> = {
|
|
12
|
+
omnium: {
|
|
13
|
+
normal: omniumIcon,
|
|
14
|
+
white: omniumWhiteIcon,
|
|
15
|
+
alt: 'Omnium Retail Logo'
|
|
16
|
+
},
|
|
17
|
+
a2ai: {
|
|
18
|
+
normal: a2ai,
|
|
19
|
+
white: a2ai,
|
|
20
|
+
alt: 'A2AI Logo'
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Obtém os logos de uma empresa específica
|
|
26
|
+
* @param companyName - Nome da empresa
|
|
27
|
+
* @returns Objeto com os logos normal, white e alt da empresa
|
|
28
|
+
*/
|
|
29
|
+
export const getCompanyLogos = (companyName: string): CompanyLogo => {
|
|
30
|
+
const companyKey = companyName.toLowerCase();
|
|
31
|
+
return logoMap[companyKey] || logoMap['omnium']; // Fallback para omnium se não encontrar
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Verifica se uma empresa possui logos configurados
|
|
36
|
+
* @param companyName - Nome da empresa
|
|
37
|
+
* @returns Boolean indicando se a empresa existe no mapa de logos
|
|
38
|
+
*/
|
|
39
|
+
export const hasCompanyLogos = (companyName: string): boolean => {
|
|
40
|
+
const companyKey = companyName.toLowerCase();
|
|
41
|
+
return companyKey in logoMap;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Obtém a lista de empresas disponíveis
|
|
46
|
+
* @returns Array com os nomes das empresas configuradas
|
|
47
|
+
*/
|
|
48
|
+
export const getAvailableCompanies = (): string[] => {
|
|
49
|
+
return Object.keys(logoMap);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export default { getCompanyLogos, hasCompanyLogos, getAvailableCompanies };
|
package/src/index.ts
CHANGED