Skip to content
Snippets Groups Projects
Select Git revision
  • 8955f355c12b46561cc4bc4b869a59cba4dfc4cf
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

webpack.config.js

Blame
  • IIIFAuthentication.js 3.14 KiB
    import { connect } from 'react-redux';
    import { compose } from 'redux';
    import { withTranslation } from 'react-i18next';
    import { Utils } from 'manifesto.js';
    import { withPlugins } from '../extend/withPlugins';
    import * as actions from '../state/actions';
    import {
      getAuth,
      getAuthProfiles,
      selectCurrentAuthServices,
      getAccessTokens,
    } from '../state/selectors';
    import { IIIFAuthentication } from '../components/IIIFAuthentication';
    
    /**
     * mapStateToProps - to hook up connect
     * @memberof FullScreenButton
     * @private
     */
    const mapStateToProps = (state, { windowId }) => {
      const services = selectCurrentAuthServices(state, { windowId });
    
      // TODO: get the most actionable auth service...
      const service = services[0];
    
      const accessTokenService = service && (
        Utils.getService(service, 'http://iiif.io/api/auth/1/token')
        || Utils.getService(service, 'http://iiif.io/api/auth/0/token')
      );
      const logoutService = service && (
        Utils.getService(service, 'http://iiif.io/api/auth/1/logout')
        || Utils.getService(service, 'http://iiif.io/api/auth/0/logout')
      );
    
      const authStatuses = getAuth(state);
      const authStatus = service && authStatuses[service.id];
      const accessTokens = getAccessTokens(state);
      const accessTokenStatus = accessTokenService && accessTokens[accessTokenService.id];
    
      let status = null;
    
      if (!authStatus) {
        status = null;
      } else if (authStatus.isFetching) {
        if (authStatus.windowId === windowId) status = 'cookie';
      } else if (accessTokenStatus && accessTokenStatus.isFetching) {
        if (authStatus.windowId === windowId) status = 'token';
      } else if (authStatus.ok) {
        status = 'ok';
      } else if (authStatus.ok === false) {
        status = 'failed';
      }
    
      const authProfiles = getAuthProfiles(state);
    
      const profile = service && service.getProfile();
    
      const isInteractive = authProfiles.some(
        config => config.profile === profile && !(config.external || config.kiosk),
      );
    
      return {
        accessTokenServiceId: accessTokenService && accessTokenService.id,
        authServiceId: service && service.id,
        confirm: service && service.getConfirmLabel(),
        description: service && service.getDescription(),
        failureDescription: service && service.getFailureDescription(),
        failureHeader: service && service.getFailureHeader(),
        header: service && service.getHeader(),
        isInteractive,
        label: service && service.getLabel()[0].value,
        logoutConfirm: logoutService
          && logoutService.getLabel()[0]
          && logoutService.getLabel()[0].value,
        logoutServiceId: logoutService && logoutService.id,
        profile,
        status,
      };
    };
    
    /**
     * mapDispatchToProps - used to hook up connect to action creators
     * @memberof ManifestListItem
     * @private
     */
    const mapDispatchToProps = {
      handleAuthInteraction: actions.addAuthenticationRequest,
      resetAuthenticationState: actions.resetAuthenticationState,
      resolveAccessTokenRequest: actions.resolveAccessTokenRequest,
      resolveAuthenticationRequest: actions.resolveAuthenticationRequest,
    };
    
    const enhance = compose(
      withTranslation(),
      connect(mapStateToProps, mapDispatchToProps),
      withPlugins('IIIFAuthentication'),
    );
    
    export default enhance(IIIFAuthentication);