diff --git a/.storybook/Center.js b/.storybook/Center.js new file mode 100644 index 0000000000000000000000000000000000000000..ea67597be6764007dc9abf7c89e3c03273d59a31 --- /dev/null +++ b/.storybook/Center.js @@ -0,0 +1,12 @@ +import React from 'react' + +const styles = { + width: '100%', + height: '100%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' +} +const Center = ({ children }) => <div style={styles}>{children}</div> + +export default Center \ No newline at end of file diff --git a/.storybook/PaperContainer.js b/.storybook/PaperContainer.js new file mode 100644 index 0000000000000000000000000000000000000000..8d2694fca5cfedf9cf33f9a791ac7bc6db967477 --- /dev/null +++ b/.storybook/PaperContainer.js @@ -0,0 +1,9 @@ +import React from 'react' +import Paper from '@material-ui/core/Paper' + +const styles = { + padding: 8 +} +const PaperContainer = ({ children }) => <Paper style={styles}>{children}</Paper> + +export default PaperContainer \ No newline at end of file diff --git a/src/client/components/facet_bar/ChipsArray.js b/src/client/components/facet_bar/ChipsArray.js index 74dc4c4796606e10126ce814d8d9f216850d3f5a..b9d1f60045e7b1ad9516ca368591d1f8a24085e6 100644 --- a/src/client/components/facet_bar/ChipsArray.js +++ b/src/client/components/facet_bar/ChipsArray.js @@ -115,4 +115,6 @@ ChipsArray.propTypes = { fetchFacet: PropTypes.func.isRequired } +export const ChipsArrayComponent = ChipsArray + export default withStyles(styles)(ChipsArray) diff --git a/src/client/components/facet_bar/ChipsArray.stories.js b/src/client/components/facet_bar/ChipsArray.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..50de044585926df627f7de1f0e0cec9535a57f54 --- /dev/null +++ b/src/client/components/facet_bar/ChipsArray.stories.js @@ -0,0 +1,91 @@ +import React from 'react' +import ChipsArray, { ChipsArrayComponent } from './ChipsArray' +import Center from '../../../../.storybook/Center' +import PaperContainer from '../../../../.storybook/PaperContainer' + +export default { + component: ChipsArrayComponent, + title: 'Sampo-UI/facet_bar/ChipsArray', + decorators: [storyFn => <Center><PaperContainer>{storyFn()}</PaperContainer></Center>] +} + +const facetValues = [ + { + facetID: 'author', + facetLabel: 'Author', + filterType: 'uriFilter', + value: { + node: { + id: 'http://ldf.fi/mmm/actor/bodley_person_78769600', + prefLabel: 'Cicero, Marcus Tullius', + selected: 'false', + parent: null, + instanceCount: '2575' + }, + parentNode: null, + path: [3], + lowerSiblingCounts: [8527], + treeIndex: 3, + isSearchMatch: false, + isSearchFocus: false, + added: true + } + }, + { + facetID: 'author', + facetLabel: 'Author', + filterType: 'uriFilter', + value: { + node: { + id: 'http://ldf.fi/mmm/actor/bodley_person_95147024', + prefLabel: 'Jerome, Saint, -419 or 420', + selected: 'false', + parent: null, + instanceCount: '3240', + parentNode: null, + path: [2], + lowerSiblingCounts: [8528], + treeIndex: 2, + isSearchMatch: false, + isSearchFocus: false, + added: true + } + } + }, + { + facetID: 'productionPlace', + facetLabel: 'Production place', + filterType: 'uriFilter', + value: { + node: { + id: 'http://ldf.fi/mmm/place/tgn_7024097', + prefLabel: 'Flanders', + selected: 'false', + parent: 'http://ldf.fi/mmm/place/tgn_1000003', + instanceCount: '28', + totalInstanceCount: 28 + }, + parentNode: { + id: 'http://ldf.fi/mmm/place/tgn_1000003', + prefLabel: 'Europe', + selected: 'false', + parent: 'http://ldf.fi/mmm/place/tgn_7029392', + instanceCount: '1' + } + } + } +] + +export const basic = props => { + return ( + <div style={{ width: 400 }}> + <ChipsArray + data={facetValues} + facetClass='perspective1' + updateFacetOption={() => null} + someFacetIsFetching={false} + fetchFacet={() => null} + /> + </div> + ) +} diff --git a/src/client/components/facet_bar/FacetBar.stories.js b/src/client/components/facet_bar/FacetBar.stories.js index 9e863f1c7f64228cf471551145db90893679bc3f..1f8ce7f980274a3f1e10717877cce1ebd8224404 100644 --- a/src/client/components/facet_bar/FacetBar.stories.js +++ b/src/client/components/facet_bar/FacetBar.stories.js @@ -14,20 +14,22 @@ export const basic = props => { const perspective1Facets = useSelector(state => state.perspective1Facets) const perspective1FacetsConstrainSelf = useSelector(state => state.perspective1FacetsConstrainSelf) return ( - <FacetBar - facetedSearchMode='serverFS' - facetData={perspective1Facets} - facetDataConstrainSelf={perspective1FacetsConstrainSelf} - facetClass={perspective.id} - resultClass={perspective.id} - fetchingResultCount={facetResults.fetchingResultCount} - resultCount={facetResults.resultCount} - fetchFacet={() => null} - fetchFacetConstrainSelf={() => null} - fetchResultCount={() => null} - updateFacetOption={() => null} - defaultActiveFacets={perspective.defaultActiveFacets} - rootUrl='' - /> + <div style={{ width: 500 }}> + <FacetBar + facetedSearchMode='serverFS' + facetData={perspective1Facets} + facetDataConstrainSelf={perspective1FacetsConstrainSelf} + facetClass={perspective.id} + resultClass={perspective.id} + fetchingResultCount={facetResults.fetchingResultCount} + resultCount={facetResults.resultCount} + fetchFacet={() => null} + fetchFacetConstrainSelf={() => null} + fetchResultCount={() => null} + updateFacetOption={() => null} + defaultActiveFacets={perspective.defaultActiveFacets} + rootUrl='' + /> + </div> ) } diff --git a/src/client/components/facet_bar/FacetHeader.js b/src/client/components/facet_bar/FacetHeader.js index 2c3276ea4a35242f77afea9b96480da2c45b4599..0722f267e7e5f0301749630521eab4284edaa4c9 100644 --- a/src/client/components/facet_bar/FacetHeader.js +++ b/src/client/components/facet_bar/FacetHeader.js @@ -213,4 +213,6 @@ FacetHeader.propTypes = { rootUrl: PropTypes.string.isRequired } +export const FacetHeaderComponent = FacetHeader + export default withStyles(styles)(FacetHeader) diff --git a/src/client/components/facet_bar/FacetHeader.stories.js b/src/client/components/facet_bar/FacetHeader.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..3f55be4a6bd61a8697c9beb7a9992fb17a56d91d --- /dev/null +++ b/src/client/components/facet_bar/FacetHeader.stories.js @@ -0,0 +1,38 @@ +import React from 'react' +import FacetHeader, { FacetHeaderComponent } from './FacetHeader' +import Paper from '@material-ui/core/Paper' +import { useSelector } from 'react-redux' +import intl from 'react-intl-universal' +import Center from '../../../../.storybook/Center' + +export default { + component: FacetHeaderComponent, + title: 'Sampo-UI/facet_bar/FacetHeader', + decorators: [storyFn => <Center>{storyFn()}</Center>] +} + +export const basic = props => { + const facetID = 'language' + const label = intl.get(`perspectives.perspective1.properties.${facetID}.label`) + const description = intl.get(`perspectives.perspective1.properties.${facetID}.description`) + const facet = useSelector(state => state.perspective1Facets.facets[facetID]) + const facetConstrainSelf = useSelector(state => state.perspective1FacetsConstrainSelf.facets[facetID]) + return ( + <Paper style={{ width: 500, paddingLeft: 8 }}> + <FacetHeader + facetID={facetID} + facetLabel={label} + facet={facet} + facetConstrainSelf={facetConstrainSelf} + isActive + facetClass='perspective1' + resultClass='perspective1' + fetchFacet={() => null} + fetchFacetConstrainSelf={() => null} + updateFacetOption={() => null} + facetDescription={description} + rootUrl='' + /> + </Paper> + ) +} diff --git a/src/client/components/facet_bar/RangeFacet.js b/src/client/components/facet_bar/RangeFacet.js index 7dcfaf8477d9457b399ce594cecbbed16a51f8ad..7a2f19386b76d4a5e90c3780166a8637c5e02873 100644 --- a/src/client/components/facet_bar/RangeFacet.js +++ b/src/client/components/facet_bar/RangeFacet.js @@ -168,4 +168,6 @@ RangeFacet.propTypes = { updatedFacet: PropTypes.string } +export const RangeFacetComponent = RangeFacet + export default withStyles(styles)(RangeFacet) diff --git a/src/client/components/facet_bar/RangeFacet.stories.js b/src/client/components/facet_bar/RangeFacet.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..52ce84d4f743243227669c70fef155ddec628dd3 --- /dev/null +++ b/src/client/components/facet_bar/RangeFacet.stories.js @@ -0,0 +1,31 @@ +import React from 'react' +import RangeFacet, { RangeFacetComponent } from './RangeFacet' +import { useSelector } from 'react-redux' +import Center from '../../../../.storybook/Center' +import PaperContainer from '../../../../.storybook/PaperContainer' + +export default { + component: RangeFacetComponent, + title: 'Sampo-UI/facet_bar/RangeFacet', + decorators: [storyFn => <Center><PaperContainer>{storyFn()}</PaperContainer></Center>] +} + +export const basic = props => { + const facetID = 'width' + const facet = useSelector(state => state.perspective1Facets.facets[facetID]) + return ( + <div style={{ width: 400 }}> + <RangeFacet + facetID={facetID} + facet={facet} + facetClass='perspective1' + resultClass='perspective1' + facetUpdateID={0} + fetchFacet={() => null} + someFacetIsFetching={false} + updateFacetOption={() => null} + dataType='integer' + /> + </div> + ) +} diff --git a/src/client/components/facet_bar/TextFacet.js b/src/client/components/facet_bar/TextFacet.js index fa760123608468a00d948cc0763c8a7c82177429..cff72f36f19fb2265105f80d397d05b210d7c7ff 100644 --- a/src/client/components/facet_bar/TextFacet.js +++ b/src/client/components/facet_bar/TextFacet.js @@ -121,4 +121,6 @@ TextFacet.propTypes = { facetUpdateID: PropTypes.number } +export const TextFacetComponent = TextFacet + export default withStyles(styles)(TextFacet) diff --git a/src/client/components/facet_bar/TextFacet.stories.js b/src/client/components/facet_bar/TextFacet.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..dc8e766e81b9b785920a3610bce35c1e0e5c3d5c --- /dev/null +++ b/src/client/components/facet_bar/TextFacet.stories.js @@ -0,0 +1,49 @@ +import React from 'react' +import TextFacet, { TextFacetComponent } from './TextFacet' +import { useSelector } from 'react-redux' +import Center from '../../../../.storybook/Center' +import PaperContainer from '../../../../.storybook/PaperContainer' + +export default { + component: TextFacetComponent, + title: 'Sampo-UI/facet_bar/TextFacet', + decorators: [storyFn => <Center><PaperContainer>{storyFn()}</PaperContainer></Center>] +} + +export const basic = props => { + const facetID = 'prefLabel' + const facet = useSelector(state => state.perspective1Facets.facets[facetID]) + return ( + <div style={{ width: 400 }}> + <TextFacet + facetID={facetID} + facet={facet} + facetClass='perspective1' + resultClass='perspective1' + facetUpdateID={0} + fetchFacet={() => null} + someFacetIsFetching={false} + updateFacetOption={() => null} + /> + </div> + ) +} + +export const loading = props => { + const facetID = 'prefLabel' + const facet = useSelector(state => state.perspective1Facets.facets[facetID]) + return ( + <div style={{ width: 400 }}> + <TextFacet + facetID={facetID} + facet={facet} + facetClass='perspective1' + resultClass='perspective1' + facetUpdateID={0} + fetchFacet={() => null} + someFacetIsFetching + updateFacetOption={() => null} + /> + </div> + ) +} diff --git a/src/client/components/facet_results/ObjectListItemEvent.stories.js b/src/client/components/facet_results/ObjectListItemEvent.stories.js index 3196703d5d6147052a95deb0abe5f55db03bed06..d6f09ecef6c31c5276fc62834e1087f05c98fd56 100644 --- a/src/client/components/facet_results/ObjectListItemEvent.stories.js +++ b/src/client/components/facet_results/ObjectListItemEvent.stories.js @@ -1,9 +1,13 @@ import React from 'react' +import Center from '../../../../.storybook/Center' +import PaperContainer from '../../../../.storybook/PaperContainer' + import ObjectListItemEvent, { ObjectListItemEventComponent } from './ObjectListItemEvent' export default { component: ObjectListItemEventComponent, - title: 'Sampo-UI/facet_results/ObjectListItemEvent' + title: 'Sampo-UI/facet_results/ObjectListItemEvent', + decorators: [storyFn => <Center><PaperContainer>{storyFn()}</PaperContainer></Center>] } export const basic = () =>