4.5.1-alpha.0 • Published 8 months ago

@hsl-fi/site-header v4.5.1-alpha.0

Weekly downloads
265
License
-
Repository
-
Last release
8 months ago

SiteHeader

Default use-case

import SiteHeader from '@hsl-fi/site-header';

// HSL.fi-url, required
const hslFiUrl="https://www.hsl.fi";

//  Url for getting search suggestions, required
const suggestionsApiUrl = "https://content.hsl.fi/api/v1/search/suggestions";

// Your notification proxy endpoints.
// Note! Language parameter is required.
const notificationApiUrls = {
  get: '/your/api/notifications', // Should fetch `<HSL_FI_URL>/user/api/v1/notifications?language=<LANG>` with `{'x-hslid-token': <ID_TOKEN>}`-header
  post: '/your/api/notifications/read' // Should post to `<HSL_FI_URL>/user/api/v1/notifications/read?language=<LANG>` with `{'x-hslid-token': <ID_TOKEN>}`-header
}

// Language, "fi", "en" or "sv", required
const lang = "fi";

// Language menu, required
const languageMenu = [
  { name: 'fi', url: '/', onClick: () => void },
  { name: 'en', url: '/en', onClick: () => void  },
  { name: 'sv', url: '/sv', onClick: () => void  }
];

// User menu, required
const userMenu = {
  isAuthenticated: true, // When true, initials and user notifications are visible
  isLoading: false, // Show spinner while fetching auth-information
  isSelected: false, // Show active-indicator for user-menu icon
  initials: 'TH', // Authenticated user's initials
  loginUrl: 'https://service-abc.hsl.fi/user/auth/login',
  menuItems: [
    {
      name: 'Omat tiedot',
      url: 'https://www.hsl.fi/omat-tiedot',
      onClick: () => void
    },
    {
      name: 'Kirjaudu ulos',
      url: 'https://service-abc.hsl.fi/user/auth/logout',
      onClick: () => void
    }
  ],
};

// Number shown on top of cart icon, optional
const cartItemCount={1}
// Link url for when click on cart, optional
const cartUrl="/cart"

return (
  <SiteHeader
    hslFiUrl={hslFiUrl}
    lang={lang}
    languageMenu={languageMenu}
    userMenu={userMenu}
    suggestionsApiUrl={suggestionsApiUrl}
    notificationApiUrls={notificationApiUrls}
    cartItemCount={3}
    cartUrl="https://www.hsl.fi/cart"
  />
);

Advanced use-case

import { useRef } from 'react';
import SiteHeader from '@hsl-fi/site-header';

const siteHeaderRed = useRef(null);

useEffect(() => {
  // Refetch notifications
  siteHeaderRed.current.fetchNotifications();
}, [yourDependency]);

return (
  <SiteHeader
    ref={siteHeaderRef}
    hslFiUrl="https://www.hsl.fi"
    lang="fi"
    languageMenu={[
      { name: 'fi', url: '/' },
      { name: 'en', url: '/en' },
      { name: 'sv', url: '/sv' }
    ]}
    userTypeMenuOverride={[
      { name: 'Henkilöasiakkaalle', url: '/', isSelected: true },
      { name: 'Yrityksille', url: '/yrityksille', isSelected: false }
    ]}
    mainMenuOverride={[
      {
        name: 'Matkustaminen',
        url: 'https://www.hsl.fi/matkustaminen',
        isSelected: false,
        onClick: () => null
      },
      {
        name: 'Liput ja hinnat',
        url: 'https://www.hsl.fi/liput-ja-hinnat',
        isSelected: false,
        onClick: () => null
      },
      {
        name: 'Asiakaspalvelu',
        url: 'https://www.hsl.fi/asiakaspalvelu',
        isSelected: false,
        onClick: () => null
      },
      {
        name: 'HSL',
        url: 'https://www.hsl.fi/hsl',
        isSelected: false,
        onClick: () => null
      }
    ]}
    userMenu={{
      isLoading: false,
      isAuthenticated: true,
      initials: 'TH',
      loginUrl: '/user/auth/login',
      onLoginClick: () => null,
      menuItems: [
        {
          name: 'Omat tiedot',
          url: 'https://www.hsl.fi/omat-tiedot',
          onClick: () => null
        },
        {
          name: 'Kirjaudu ulos',
          url: 'https://service-abc.hsl.fi/user/auth/logout',
          onClick: () => null
        }
      ],
      isSelected: true
    }}
    notificationApiUrls={{
      get: '/your/api/notifications', // Should fetch `<HSL_FI_URL>/user/api/v1/notifications?language=<LANG>` with `{'x-hslid-token': <ID_TOKEN>}`-header
      post: '/your/api/notifications/read' // Should post to `<HSL_FI_URL>/user/api/v1/notifications/read?language=<LANG>` with `{'x-hslid-token': <ID_TOKEN>}`-header
    }}
    suggestionsApiUrl="https://content.hsl.fi/api/v1/search/suggestions"
    searchSelected={false}
    banners={[
      {
        body: 'Metroliikenne pysähtynyt määrittelemättömästä syystä — <a href="/hsl/uutiset/uutinen/2020/08/joukkoliikenne-ja-koronavirus---tietoa-matkustajalle">lue lisää</a>',
        priority: 'Primary'
      },
      {
        body: 'Koronavirus — katso päivitetyt <a href="/matkustaminen/korona">matkustusohjeet</a>',
        priority: 'Secondary'
      }
    ]}
  />
);
4.5.1-alpha.0

8 months ago

4.5.0

1 year ago

4.4.2-alpha.14

2 years ago

4.4.2-alpha.15

2 years ago

4.4.2-alpha.12

2 years ago

4.4.2-alpha.13

2 years ago

4.4.2-alpha.18

2 years ago

4.4.2-alpha.19

2 years ago

4.4.2-alpha.16

2 years ago

4.4.2-alpha.17

2 years ago

4.4.0-rc10

2 years ago

4.4.0-rc11

2 years ago

4.4.2-alpha.21

2 years ago

4.4.2-alpha.22

2 years ago

4.4.2-alpha.20

2 years ago

4.4.2-alpha.10

2 years ago

4.4.2-alpha.11

2 years ago

4.5.0-alpha.0

2 years ago

4.4.2-alpha.58

2 years ago

4.4.2-alpha.59

2 years ago

4.4.2-alpha.56

2 years ago

4.4.2-alpha.57

2 years ago

4.4.2-alpha.60

2 years ago

4.4.2-alpha.47

2 years ago

4.4.2-alpha.48

2 years ago

4.4.2-alpha.45

2 years ago

4.4.2-alpha.46

2 years ago

4.4.2-alpha.49

2 years ago

4.4.0-rc1

2 years ago

4.4.0-rc7

2 years ago

4.4.0-rc6

2 years ago

4.4.0-rc9

2 years ago

4.4.0-rc8

2 years ago

4.4.0-rc3

2 years ago

4.4.0-rc2

2 years ago

4.4.0-rc5

2 years ago

4.4.0-rc4

2 years ago

4.4.2-alpha.50

2 years ago

4.4.2-alpha.51

2 years ago

4.4.2-alpha.54

2 years ago

4.4.2-alpha.55

2 years ago

4.4.2-alpha.52

2 years ago

4.4.2-alpha.53

2 years ago

4.4.2-alpha.36

2 years ago

4.4.2-alpha.37

2 years ago

4.4.2-alpha.34

2 years ago

4.4.2-alpha.35

2 years ago

4.4.2-alpha.38

2 years ago

4.4.2-alpha.39

2 years ago

4.4.2-alpha.40

2 years ago

4.4.2-alpha.43

2 years ago

4.4.2-alpha.44

2 years ago

4.4.2-alpha.41

2 years ago

4.4.2-alpha.42

2 years ago

4.4.2-alpha.25

2 years ago

4.4.2-alpha.26

2 years ago

4.4.2-alpha.23

2 years ago

4.4.2-alpha.7

2 years ago

4.4.2-alpha.24

2 years ago

4.4.2-alpha.8

2 years ago

4.4.2-alpha.29

2 years ago

4.4.2-alpha.27

2 years ago

4.4.2-alpha.28

2 years ago

4.4.2-alpha.1

2 years ago

4.4.2-alpha.2

2 years ago

4.4.2-alpha.5

2 years ago

4.4.2-alpha.6

2 years ago

4.4.2-alpha.3

2 years ago

4.4.2-alpha.4

2 years ago

4.4.2-alpha.32

2 years ago

4.4.2-alpha.33

2 years ago

4.4.2-alpha.30

2 years ago

4.4.2-alpha.31

2 years ago

4.4.4

2 years ago

4.4.3-alpha.2

2 years ago

4.4.3-alpha.0

2 years ago

4.4.3-alpha.1

2 years ago

4.4.1-alpha-1

2 years ago

4.3.2

2 years ago

4.3.3

2 years ago

4.3.3-rc

2 years ago

4.3.0-rc1

2 years ago

4.3.0-rc2

2 years ago

4.3.1

2 years ago

4.3.0

2 years ago

4.2.2

3 years ago

4.2.1

3 years ago

4.1.0-rc5

3 years ago

4.1.0-rc1

3 years ago

4.1.0-rc2

3 years ago

4.1.0-rc3

3 years ago

4.1.0-rc4

3 years ago

4.2.0

3 years ago

4.0.0-rc14

3 years ago

4.0.0-rc13

3 years ago

4.0.0-rc16

3 years ago

4.0.0-rc15

3 years ago

4.0.0-rc17

3 years ago

4.0.0-rc10

3 years ago

4.0.0-rc12

3 years ago

4.0.0-rc11

3 years ago

4.0.0-rc8

3 years ago

4.0.0-rc9

3 years ago

4.0.0-rc6

3 years ago

4.0.0-rc7

3 years ago

4.0.0-rc4

3 years ago

4.0.0-rc5

3 years ago

4.0.0-rc2

3 years ago

4.0.0-rc3

3 years ago

4.0.0-rc1

3 years ago

3.2.0-rc1

3 years ago

3.1.1

3 years ago

3.0.8-rc1

4 years ago

3.0.8-rc2

4 years ago

3.0.8-rc3

4 years ago

3.1.0

4 years ago

3.0.4

4 years ago

3.0.7

4 years ago

3.0.6

4 years ago

3.0.5

4 years ago

3.0.3-rc

4 years ago

3.0.0-rc19

4 years ago

3.0.0-rc18

4 years ago

3.0.0-rc17

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

3.0.0-rc33

4 years ago

3.0.0-rc32

4 years ago

3.0.0-rc31

4 years ago

3.0.0-rc30

4 years ago

3.0.0-rc34

4 years ago

3.0.0-rc22

4 years ago

3.0.0-rc21

4 years ago

3.0.0-rc20

4 years ago

3.0.0-rc26

4 years ago

3.0.0-rc25

4 years ago

3.0.0-rc24

4 years ago

3.0.0-rc23

4 years ago

3.0.0-rc29

4 years ago

3.0.0-rc28

4 years ago

3.0.0-rc27

4 years ago

3.0.0-rc11

4 years ago

3.0.0-rc10

4 years ago

3.0.0-rc15

4 years ago

3.0.0-rc14

4 years ago

3.0.0-rc13

4 years ago

3.0.0-rc12

4 years ago

3.0.0-rc6

4 years ago

3.0.0-rc5

4 years ago

3.0.0-rc4

4 years ago

3.0.0-rc16

4 years ago

3.0.0-rc3

4 years ago

3.0.0-rc9

4 years ago

3.0.0-rc8

4 years ago

3.0.0-rc7

4 years ago

3.0.0-rc2

4 years ago

3.0.0-rc1

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.0

5 years ago

0.3.0

5 years ago

0.4.0

5 years ago

0.3.1

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.11

5 years ago

0.1.12

5 years ago

0.1.14

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago