2.0.1 • Published 3 years ago

@agderposten/organization-provider v2.0.1

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
3 years ago

Organization Provider

HOC that provides the organization object to its children if given either an environmentId or a hostname. Attempts to use Next.js getInitialProps. You probably need @babel/polyfill for this to work.

Installation

npm install @agderposten/organization-provider

Usage

Preferably use this HOC only once and on the root component.

import React from 'react';
import organizationProvider from '@agderposten/organization-provider';

export default () => organizationProvider({
    environmentId: '4d63d444-d418-4981-8c0e-f5d26ea334db'
}, ({organization}) => (
    <div>{organization.name}</div>
));

// ... or:

export default () => organizationProvider({
    hostname: 'agderposten.no'
}, ({organization}) => (
    <div>{organization.name}</div>
));

// ... or implicit, where it tries to read the current hostname

export default () => organizationProvider(({organization}) => (
    <div>{organization.name}</div>
));

Override the implicit hostname by providing it through query string with key __hostname__: ?__hostname__=agderposten.no.

You can also provide an optional LoaderComponent as the last function argument that will be rendered when loading organization information:

export default () => organizationProvider({
    environmentId: '4d63d444-d418-4981-8c0e-f5d26ea334db'
}, ({organization}) => (
    <div>{organization.name}</div>
), () => (
    <div>Loading organization information...</div>
));

organization

The organization object looks something like this:

{
    id: '4d63d444-d418-4981-8c0e-f5d26ea334db',
    name: 'Agderposten',
    code: 'AG',
    color: '#1a6cbb',
    locale: 'nb-NO',
    urls: {
        home: 'http://www.agderposten.no',
        user: 'https://les.agderposten.no',
        paywall: 'http://www.agderposten.no/kjop-tilgang',
        login: 'https://les.agderposten.no/logg-inn',
        registration: 'https://les.agderposten.no/registrering'
    },
    images: {
        favicon: 'https://api.agderposten.no/static/8105276e-4493-4b3c-8aa6-e99514a16a17.png',
        logo: {
            white: 'https://api.agderposten.no/static/49bc22fc-64a2-4abc-abea-778909f1c6d9.png',
            black: 'https://api.agderposten.no/static/9b476c35-64fa-4254-8d39-7b43c189ecf2.png'
        }
    }
}

Encountering an error, the organization object is given an error property:

{
    error: {
        code: 'unable_to_fetch',
        message: 'Unable to fetch.'
    }
}
2.0.1

3 years ago

2.0.0

3 years ago

1.2.0

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago