@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.
@@ -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 {};
@@ -25,4 +25,5 @@ export interface HeaderProps {
25
25
  notifications?: BellNotification[];
26
26
  shouldConfirmNavigation?: boolean;
27
27
  companyName?: string;
28
+ customLogoClass?: string;
28
29
  }
@@ -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;
@@ -1,2 +1,3 @@
1
1
  export * from './components';
2
2
  export * from './constants/i18n';
3
+ export * from './constants/logoCompanyHelper';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omniumretail/component-library",
3
- "version": "1.2.61",
3
+ "version": "1.2.62",
4
4
  "private": false,
5
5
  "main": "dist/bundle.js",
6
6
  "typings": "./dist/types/index",
@@ -209,5 +209,5 @@ Primary.args = {
209
209
  notifications: notifications,
210
210
  customActions: actions,
211
211
  actions: actions2,
212
- disableBackButton: true
212
+ disableBackButton: true,
213
213
  };
@@ -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={omniumLogo} className={styles.omniumLogoImg} alt="omnium logo" />
246
+ <img src={companyLogos.white} alt={companyLogos.alt} className={styles.omniumLogoImg} />
244
247
  </div>
245
248
  }
246
249
  </div>
@@ -231,6 +231,5 @@ Primary.args = {
231
231
  userName: 'Diogo Carvalho',
232
232
  pageTitle: 'Page Title',
233
233
  notifications: notifications,
234
-
235
234
  };
236
235
 
@@ -28,4 +28,5 @@ export interface HeaderProps {
28
28
  notifications?: BellNotification[];
29
29
  shouldConfirmNavigation?: boolean;
30
30
  companyName?: string;
31
+ customLogoClass?: string;
31
32
  }
@@ -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
@@ -1,2 +1,3 @@
1
1
  export * from './components';
2
2
  export * from './constants/i18n';
3
+ export * from './constants/logoCompanyHelper';