2.1.2 • Published 3 years ago

link-redux v2.1.2

Weekly downloads
50
License
LGPL-3.0
Repository
github
Last release
3 years ago

Link Redux

A Link to the Web

Build Status

Use this to enable Link in React. It provides components to build data-independent semantic applications for the human consumption of linked data with React and Redux.

To transform your Rails application into a linked-data serving beast, see our Active Model Serializers plugin.

This was built at Argu, if you like what we do, these technologies or open data, send us a mail.

Road to 1.0

We're busy building the next version of link lib/redux, since there are a lot of changes, the documentation is generally outdated, so the tests are a good place to look for the current API.

Basic Usage

Wrap the main React tree with a LinkedRenderStore:

import configureStore from './configureStore';
import LinkedRenderStore from './configureRenderStore';
import { RenderStoreProvider } from 'link-redux';

export default () => (
  <Provider store={configureStore()}>
    <RenderStoreProvider linkedRenderStore={LinkedRenderStore}>
      <Router history="" />
    </RenderStoreProvider>
  </Provider>
);

Displaying properties

You can now use the provided Property component anywhere to render properties of the displayed object:

const SomeTypeRenderer = () => (
  <div>
    <Property label="http://schema.org/name" />
    <Property label="http://schema.org/text" />
  </div>
);

Custom Type renderer

Register your view with the render store so it knows that it can use your view to render a certain type with it:

const Thing = () => (
  <Card>
    <Property label="http://schema.org/name" />
    <Property label="http://schema.org/description" />
  </Card>
);

LinkedRenderStore.registerRenderer(Thing, 'http://schema.org/Thing');

Custom Property renderer

When using a function to render properties, the attribute is passed as the linkedProp property.

const Name = ({ linkedProp }) => (
  <Heading size="2">
    {linkedProp.value}
  </Heading>
);

To retrieve the correct property value from the state is no easy task, so when creating complex components that need raw access to a property, it is advisable to extend from the PropertyBase component which provides some useful methods to interact with the underlying properties:

class ComplexName extends PropertyBase {
  render() {
    return (
      <Heading size="2">
        {processSpecialName(this.getLinkedObjectPropertyRaw())}
      </Heading>
    );
  }
}

Since a Property renderer is just a special-case type renderer, we need to register it as well, but with an additional argument; the property which it is designed to render:

LinkedRenderStore.registerRenderer(
  Name,
  'http://schema.org/CreativeWork',
  'http://schema.org/name'
);

Further usage

IRI expansion

Since writing out the entire IRI every time is quite some work, the system also accepts the short-form notation (compact terms):

  LinkedRenderStore.registerRenderer(Thing, 'schema:Thing');
  <Property label="schema:name" />

See the link-lib documentation for a list of preincluded shorthand definitions.

Multi-IRI

Most components wouldn't be very useful if they can only render one type of term. Therefore, most of the methods accept an array of terms as well:

LinkedRenderStore.registerRenderer(Thing, ['http://schema.org/Thing', 'owl:Thing']);
<Property label={['schema:name', 'rdfs:label']} />
3.0.0-116fe7bd

3 years ago

4.0.0-29c4944b

3 years ago

4.0.0-8d08586a

3 years ago

4.0.0-116fe7bd

3 years ago

4.0.0-b47b8e2b

3 years ago

4.0.0-ff427c1c

3 years ago

4.0.0-904aabea

3 years ago

4.0.0-37b23a4e

3 years ago

4.0.0-95f9a178

3 years ago

4.0.0-28c25352

3 years ago

0.0.0-6a1c36e8

3 years ago

0.0.0-79e21553

3 years ago

4.0.0-e79bf920

3 years ago

0.0.0-5493c69d

3 years ago

3.0.0-30

3 years ago

0.0.0-8994e43e

3 years ago

0.0.0-d9f07de1

3 years ago

0.0.0-f4796fd0

3 years ago

0.0.0-53b3c05e

3 years ago

0.0.0-54fdcd16

3 years ago

0.0.0-3442dc4b

3 years ago

3.0.0-28

4 years ago

3.0.0-29

4 years ago

3.0.0-26

4 years ago

3.0.0-27

4 years ago

3.0.0-24

4 years ago

3.0.0-25

4 years ago

3.0.0-22

4 years ago

3.0.0-23

4 years ago

3.0.0-20

4 years ago

3.0.0-21

4 years ago

3.0.0-7

4 years ago

3.0.0-6

4 years ago

3.0.0-9

4 years ago

3.0.0-8

4 years ago

3.0.0-3

4 years ago

3.0.0-5

4 years ago

3.0.0-4

4 years ago

3.0.0-19

4 years ago

3.0.0-17

4 years ago

3.0.0-18

4 years ago

3.0.0-15

4 years ago

3.0.0-16

4 years ago

3.0.0-13

4 years ago

3.0.0-14

4 years ago

3.0.0-11

4 years ago

3.0.0-12

4 years ago

3.0.0-10

4 years ago

3.0.0-2

4 years ago

3.0.0-alpha-1

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

0.0.0-380164d2

4 years ago

0.0.0-c4431892

4 years ago

0.0.0-0452814a

4 years ago

0.0.0-f304f8d8

4 years ago

0.0.0-1db1e3f5

4 years ago

0.0.0-f52a7539

4 years ago

0.0.0-44bc30c1

4 years ago

0.0.0-d2777515

4 years ago

0.0.0-83f678454

4 years ago

0.0.0-2f8a61fd

4 years ago

0.0.0-356e1799

4 years ago

0.0.0-4494c454

5 years ago

2.0.0

5 years ago

2.0.0-6

5 years ago

2.0.0-5

5 years ago

2.0.0-4

5 years ago

2.0.0-3

5 years ago

2.0.0-plain.2

5 years ago

2.0.0-2

5 years ago

2.0.0-1

5 years ago

2.0.0-0

5 years ago

1.0.0-rc4.8

6 years ago

1.0.0-rc4.7

6 years ago

1.0.0-rc4.6

6 years ago

1.0.0-rc4

6 years ago

1.0.0-rc4.5

6 years ago

1.0.0-rc4.4

6 years ago

1.0.0-rc4.3

6 years ago

1.0.0-rc4.2

6 years ago

1.0.0-rc4.1

6 years ago

1.0.0-rc3

6 years ago

1.0.0-rc2

6 years ago

1.0.0-rc1

6 years ago

1.0.0-beta33

6 years ago

1.0.0-beta32

7 years ago

1.0.0-beta31-rdx

7 years ago

1.0.0-beta31.16

7 years ago

1.0.0-beta31.15

7 years ago

1.0.0-beta31.14

7 years ago

1.0.0-beta31.13

7 years ago

1.0.0-beta31.12

7 years ago

1.0.0-beta31.11

7 years ago

1.0.0-beta31.10

7 years ago

1.0.0-beta31.9

7 years ago

1.0.0-beta31.8

7 years ago

1.0.0-beta31.7

7 years ago

1.0.0-beta31.6

7 years ago

1.0.0-beta31.5

7 years ago

1.0.0-beta31.4

7 years ago

1.0.0-beta31.3

7 years ago

1.0.0-beta31.2

7 years ago

1.0.0-beta31.1

7 years ago

1.0.0-beta31

7 years ago

1.0.0-beta30.10

7 years ago

1.0.0-beta30.9

7 years ago

1.0.0-beta30.8

7 years ago

1.0.0-beta30.7

7 years ago

1.0.0-beta30.6

7 years ago

1.0.0-beta30.5

7 years ago

1.0.0-beta30.4

7 years ago

1.0.0-beta30.3

7 years ago

1.0.0-beta30.2

7 years ago

1.0.0-beta30.1

7 years ago

1.0.0-beta30

7 years ago

1.0.0-beta29.2

7 years ago

1.0.0-beta29.1

7 years ago

1.0.0-beta29

7 years ago

1.0.0-beta28.48

7 years ago

1.0.0-beta28.47

7 years ago

1.0.0-beta28.46

7 years ago

1.0.0-beta28.45

7 years ago

1.0.0-beta28.44

7 years ago

1.0.0-beta28.43

7 years ago

1.0.0-beta28.42

7 years ago

1.0.0-beta28.41

7 years ago

1.0.0-beta28.40

7 years ago

1.0.0-beta28.39

7 years ago

1.0.0-beta28.38

7 years ago

1.0.0-beta28.37

7 years ago

1.0.0-beta28.36

7 years ago

1.0.0-beta28.35

7 years ago

1.0.0-beta28.34

7 years ago

1.0.0-beta28.33

7 years ago

1.0.0-beta28.32

7 years ago

1.0.0-beta28.31

7 years ago

1.0.0-beta28.30

7 years ago

1.0.0-beta28.29

7 years ago

1.0.0-beta28.28

7 years ago

1.0.0-beta28.27

7 years ago

1.0.0-beta28.26

7 years ago

1.0.0-beta28.25

7 years ago

1.0.0-beta28.24

7 years ago

1.0.0-beta28.23

7 years ago

1.0.0-beta28.22

7 years ago

1.0.0-beta28.21

7 years ago

1.0.0-beta28.20

7 years ago

1.0.0-beta28.19

7 years ago

1.0.0-beta28.18

7 years ago

1.0.0-beta28.17

7 years ago

1.0.0-beta28.16

7 years ago

1.0.0-beta28.15

7 years ago

1.0.0-beta28.14

7 years ago

1.0.0-beta28.13

7 years ago

1.0.0-beta28.12

7 years ago

1.0.0-beta28.11

7 years ago

1.0.0-beta28.10

7 years ago

1.0.0-beta28.9

7 years ago

1.0.0-beta28.8

7 years ago

1.0.0-beta28.7

7 years ago

1.0.0-beta28.6

7 years ago

1.0.0-beta28.5

7 years ago

1.0.0-beta28.4

7 years ago

1.0.0-beta28.3

7 years ago

1.0.0-beta28.2

7 years ago

1.0.0-beta28.1

7 years ago

1.0.0-beta28

7 years ago

1.0.0-beta27.11

7 years ago

1.0.0-beta27.10

7 years ago

1.0.0-beta27.9

7 years ago

1.0.0-beta27.8

7 years ago

1.0.0-beta27.7

7 years ago

1.0.0-beta27.6

7 years ago

1.0.0-beta27.5

7 years ago

1.0.0-beta27.4

7 years ago

1.0.0-beta27.3

7 years ago

1.0.0-beta27.2

7 years ago

1.0.0-beta27.1

7 years ago

1.0.0-beta27

7 years ago

1.0.0-beta26.11

7 years ago

1.0.0-beta26.10

7 years ago

1.0.0-beta26.9

7 years ago

1.0.0-beta26.8

7 years ago

1.0.0-beta26.7

7 years ago

1.0.0-beta26.6

7 years ago

1.0.0-beta26.5

7 years ago

1.0.0-beta26.4

7 years ago

1.0.0-beta26.3

7 years ago

1.0.0-beta26.2

7 years ago

1.0.0-beta26.1

7 years ago

1.0.0-beta26

7 years ago

1.0.0-beta25

7 years ago

1.0.0-beta24

7 years ago

1.0.0-beta23

7 years ago

1.0.0-beta22

7 years ago

1.0.0-beta21

7 years ago

1.0.0-beta20

7 years ago

1.0.0-beta19

7 years ago

1.0.0-beta18

7 years ago

1.0.0-beta17

7 years ago

1.0.0-beta16

7 years ago

1.0.0-beta15

7 years ago

1.0.0-beta14

7 years ago

1.0.0-beta13

7 years ago

1.0.0-beta12

7 years ago

1.0.0-beta11

7 years ago

1.0.0-beta10

7 years ago

1.0.0-beta9

7 years ago

1.0.0-beta8

8 years ago

1.0.0-beta7

8 years ago

1.0.0-beta6

8 years ago

1.0.0-beta5

8 years ago

1.0.0-beta4

8 years ago

1.0.0-beta3

8 years ago

1.0.0-beta2

8 years ago

1.0.0-beta1

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.2

9 years ago

0.1.2-alpha.1

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago