Skip to content
Snippets Groups Projects
Commit 63ba6844 authored by Jessie Keck's avatar Jessie Keck
Browse files

Remove unused Display component.

parent b39f8400
No related branches found
No related tags found
No related merge requests found
import React from 'react';
import { shallow } from 'enzyme';
import Display from '../../../src/components/Display';
import ManifestMetadata from '../../../src/components/ManifestMetadata';
import fixture from '../../fixtures/version-2/002.json';
describe('Display', () => {
it('renders without an error', () => {
const wrapper = shallow(<Display manifest={{}} />);
expect(wrapper.contains(<div className="Display"><div id="exampleManifest" className=""><ManifestMetadata manifest={{}} /></div></div>)).toBe(true);
});
it('sets class based on manifest state', () => {
let wrapper = shallow(<Display manifest={{ isFetching: true }} />);
expect(wrapper.find('.mirador-fetching').length).toBe(1);
wrapper = shallow(<Display manifest={{ error: true }} />);
expect(wrapper.find('.mirador-error').length).toBe(1);
});
it('displays content', () => {
let wrapper = shallow(<Display manifest={{ isFetching: true }} />);
expect(wrapper.text()).toBe('');
wrapper = shallow(<Display manifest={{ error: { message: 'bad things' } }} />);
expect(wrapper.text()).toBe('bad things');
wrapper = shallow(<Display manifest={{ json: fixture }} />);
expect(wrapper.find(ManifestMetadata).length).toBe(1);
});
});
import React from 'react';
import PropTypes from 'prop-types';
import ManifestMetadata from './ManifestMetadata';
import ns from '../config/css-ns';
/**
* Determines how to best display the content (or lack thereof) the manifest
* @private
*/
const displayContent = (manifest) => {
if (manifest) {
if (manifest.isFetching) {
return '';
}
if (manifest.error) {
return manifest.error.message;
}
return <ManifestMetadata manifest={manifest} />;
}
return 'Nothing Selected Yet';
};
/**
* Determines which classes should be used for display, based on the state of
* the manifest
* @memberof Display
* @private
*/
const stateClass = (manifest) => {
if (manifest) {
if (manifest.isFetching) {
return 'fetching';
}
if (manifest.error) {
return 'error';
}
return '';
}
return 'empty';
};
/**
* Displays a manifest
* @param {object} props
* @param {object} [props.manifest = undefined]
*/
const Display = ({ manifest }) => (
<div className="Display">
<div id="exampleManifest" className={ns(stateClass(manifest))}>
{displayContent(manifest)}
</div>
</div>
);
Display.propTypes = {
manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
};
Display.defaultProps = {
manifest: undefined,
};
export default Display;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment