UNPKG

ndla-ui

Version:

UI component library for NDLA.

89 lines (77 loc) 2.54 kB
import PropTypes from 'prop-types'; import * as contentTypes from './model/ContentType'; export const LicenseRightShape = PropTypes.shape({ short: PropTypes.string.isRequired, title: PropTypes.string.isRequired, userFriendlyTitle: PropTypes.string.isRequired, description: PropTypes.string.isRequired, }); export const LicenseShape = PropTypes.shape({ short: PropTypes.string.isRequired, title: PropTypes.string.isRequired, userFriendlyTitle: PropTypes.string.isRequired, description: PropTypes.string.isRequired, rights: PropTypes.arrayOf(PropTypes.string).isRequired, }); export const SubjectShape = PropTypes.shape({ id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }); export const TopicShape = PropTypes.shape({ id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, subtopics: PropTypes.array, }); export const FootNoteShape = PropTypes.shape({ ref: PropTypes.number.isRequired, title: PropTypes.string.isRequired, year: PropTypes.string.isRequired, authors: PropTypes.arrayOf(PropTypes.string).isRequired, edition: PropTypes.string, publisher: PropTypes.string, url: PropTypes.string, }); export const ContributorShape = PropTypes.shape({ type: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }); export const ArticleShape = PropTypes.shape({ title: PropTypes.string.isRequired, content: PropTypes.string.isRequired, copyright: PropTypes.shape({ authors: PropTypes.array, creators: PropTypes.arrayOf(ContributorShape), }).isRequired, updated: PropTypes.string.isRequired, }); export const ResourceShape = PropTypes.shape({ id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, contentUri: PropTypes.string, primary: PropTypes.bool, }); export const ShortcutShape = PropTypes.shape({ tooltip: PropTypes.string.isRequired, contentType: PropTypes.string.isRequired, url: PropTypes.string.isRequired, count: PropTypes.number.isRequired, }); export const ContentTypeShape = PropTypes.oneOf([ contentTypes.SUBJECT_MATERIAL, contentTypes.TASKS_AND_ACTIVITIES, contentTypes.ASSESSMENT_RESOURCES, contentTypes.SUBJECT, contentTypes.EXTERNAL_LEARNING_RESOURCES, contentTypes.SOURCE_MATERIAL, contentTypes.LEARNING_PATH, 'beta', ]); export const ContentTypeResultShape = PropTypes.shape({ title: PropTypes.string.isRequired, resources: PropTypes.arrayOf( PropTypes.shape({ path: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }), ), });