2.1.2 • Published 2 years ago

link-redux v2.1.2

Weekly downloads
50
License
LGPL-3.0
Repository
github
Last release
2 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

2 years ago

4.0.0-29c4944b

2 years ago

4.0.0-8d08586a

2 years ago

4.0.0-116fe7bd

2 years ago

4.0.0-b47b8e2b

2 years ago

4.0.0-ff427c1c

2 years ago

4.0.0-904aabea

2 years ago

4.0.0-37b23a4e

2 years ago

4.0.0-95f9a178

2 years ago

4.0.0-28c25352

2 years ago

0.0.0-6a1c36e8

2 years ago

0.0.0-79e21553

2 years ago

4.0.0-e79bf920

2 years ago

0.0.0-5493c69d

2 years ago

3.0.0-30

2 years ago

0.0.0-8994e43e

2 years ago

0.0.0-d9f07de1

2 years ago

0.0.0-f4796fd0

2 years ago

0.0.0-53b3c05e

2 years ago

0.0.0-54fdcd16

2 years ago

0.0.0-3442dc4b

2 years ago

3.0.0-28

3 years ago

3.0.0-29

3 years ago

3.0.0-26

3 years ago

3.0.0-27

3 years ago

3.0.0-24

3 years ago

3.0.0-25

3 years ago

3.0.0-22

3 years ago

3.0.0-23

3 years ago

3.0.0-20

3 years ago

3.0.0-21

3 years ago

3.0.0-7

3 years ago

3.0.0-6

3 years ago

3.0.0-9

3 years ago

3.0.0-8

3 years ago

3.0.0-3

3 years ago

3.0.0-5

3 years ago

3.0.0-4

3 years ago

3.0.0-19

3 years ago

3.0.0-17

3 years ago

3.0.0-18

3 years ago

3.0.0-15

3 years ago

3.0.0-16

3 years ago

3.0.0-13

3 years ago

3.0.0-14

3 years ago

3.0.0-11

3 years ago

3.0.0-12

3 years ago

3.0.0-10

3 years ago

3.0.0-2

3 years ago

3.0.0-alpha-1

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

0.0.0-380164d2

3 years ago

0.0.0-c4431892

3 years ago

0.0.0-0452814a

3 years ago

0.0.0-f304f8d8

3 years ago

0.0.0-1db1e3f5

3 years ago

0.0.0-f52a7539

3 years ago

0.0.0-44bc30c1

3 years ago

0.0.0-d2777515

3 years ago

0.0.0-83f678454

3 years ago

0.0.0-2f8a61fd

3 years ago

0.0.0-356e1799

3 years ago

0.0.0-4494c454

3 years ago

2.0.0

4 years ago

2.0.0-6

4 years ago

2.0.0-5

4 years ago

2.0.0-4

4 years ago

2.0.0-3

4 years ago

2.0.0-plain.2

4 years ago

2.0.0-2

4 years ago

2.0.0-1

4 years ago

2.0.0-0

4 years ago

1.0.0-rc4.8

5 years ago

1.0.0-rc4.7

5 years ago

1.0.0-rc4.6

5 years ago

1.0.0-rc4

5 years ago

1.0.0-rc4.5

5 years ago

1.0.0-rc4.4

5 years ago

1.0.0-rc4.3

5 years ago

1.0.0-rc4.2

5 years ago

1.0.0-rc4.1

5 years ago

1.0.0-rc3

5 years ago

1.0.0-rc2

5 years ago

1.0.0-rc1

5 years ago

1.0.0-beta33

5 years ago

1.0.0-beta32

5 years ago

1.0.0-beta31-rdx

6 years ago

1.0.0-beta31.16

6 years ago

1.0.0-beta31.15

6 years ago

1.0.0-beta31.14

6 years ago

1.0.0-beta31.13

6 years ago

1.0.0-beta31.12

6 years ago

1.0.0-beta31.11

6 years ago

1.0.0-beta31.10

6 years ago

1.0.0-beta31.9

6 years ago

1.0.0-beta31.8

6 years ago

1.0.0-beta31.7

6 years ago

1.0.0-beta31.6

6 years ago

1.0.0-beta31.5

6 years ago

1.0.0-beta31.4

6 years ago

1.0.0-beta31.3

6 years ago

1.0.0-beta31.2

6 years ago

1.0.0-beta31.1

6 years ago

1.0.0-beta31

6 years ago

1.0.0-beta30.10

6 years ago

1.0.0-beta30.9

6 years ago

1.0.0-beta30.8

6 years ago

1.0.0-beta30.7

6 years ago

1.0.0-beta30.6

6 years ago

1.0.0-beta30.5

6 years ago

1.0.0-beta30.4

6 years ago

1.0.0-beta30.3

6 years ago

1.0.0-beta30.2

6 years ago

1.0.0-beta30.1

6 years ago

1.0.0-beta30

6 years ago

1.0.0-beta29.2

6 years ago

1.0.0-beta29.1

6 years ago

1.0.0-beta29

6 years ago

1.0.0-beta28.48

6 years ago

1.0.0-beta28.47

6 years ago

1.0.0-beta28.46

6 years ago

1.0.0-beta28.45

6 years ago

1.0.0-beta28.44

6 years ago

1.0.0-beta28.43

6 years ago

1.0.0-beta28.42

6 years ago

1.0.0-beta28.41

6 years ago

1.0.0-beta28.40

6 years ago

1.0.0-beta28.39

6 years ago

1.0.0-beta28.38

6 years ago

1.0.0-beta28.37

6 years ago

1.0.0-beta28.36

6 years ago

1.0.0-beta28.35

6 years ago

1.0.0-beta28.34

6 years ago

1.0.0-beta28.33

6 years ago

1.0.0-beta28.32

6 years ago

1.0.0-beta28.31

6 years ago

1.0.0-beta28.30

6 years ago

1.0.0-beta28.29

6 years ago

1.0.0-beta28.28

6 years ago

1.0.0-beta28.27

6 years ago

1.0.0-beta28.26

6 years ago

1.0.0-beta28.25

6 years ago

1.0.0-beta28.24

6 years ago

1.0.0-beta28.23

6 years ago

1.0.0-beta28.22

6 years ago

1.0.0-beta28.21

6 years ago

1.0.0-beta28.20

6 years ago

1.0.0-beta28.19

6 years ago

1.0.0-beta28.18

6 years ago

1.0.0-beta28.17

6 years ago

1.0.0-beta28.16

6 years ago

1.0.0-beta28.15

6 years ago

1.0.0-beta28.14

6 years ago

1.0.0-beta28.13

6 years ago

1.0.0-beta28.12

6 years ago

1.0.0-beta28.11

6 years ago

1.0.0-beta28.10

6 years ago

1.0.0-beta28.9

6 years ago

1.0.0-beta28.8

6 years ago

1.0.0-beta28.7

6 years ago

1.0.0-beta28.6

6 years ago

1.0.0-beta28.5

6 years ago

1.0.0-beta28.4

6 years ago

1.0.0-beta28.3

6 years ago

1.0.0-beta28.2

6 years ago

1.0.0-beta28.1

6 years ago

1.0.0-beta28

6 years ago

1.0.0-beta27.11

6 years ago

1.0.0-beta27.10

6 years ago

1.0.0-beta27.9

6 years ago

1.0.0-beta27.8

6 years ago

1.0.0-beta27.7

6 years ago

1.0.0-beta27.6

6 years ago

1.0.0-beta27.5

6 years ago

1.0.0-beta27.4

6 years ago

1.0.0-beta27.3

6 years ago

1.0.0-beta27.2

6 years ago

1.0.0-beta27.1

6 years ago

1.0.0-beta27

6 years ago

1.0.0-beta26.11

6 years ago

1.0.0-beta26.10

6 years ago

1.0.0-beta26.9

6 years ago

1.0.0-beta26.8

6 years ago

1.0.0-beta26.7

6 years ago

1.0.0-beta26.6

6 years ago

1.0.0-beta26.5

6 years ago

1.0.0-beta26.4

6 years ago

1.0.0-beta26.3

6 years ago

1.0.0-beta26.2

6 years ago

1.0.0-beta26.1

6 years ago

1.0.0-beta26

6 years ago

1.0.0-beta25

6 years ago

1.0.0-beta24

6 years ago

1.0.0-beta23

6 years ago

1.0.0-beta22

6 years ago

1.0.0-beta21

6 years ago

1.0.0-beta20

6 years ago

1.0.0-beta19

6 years ago

1.0.0-beta18

6 years ago

1.0.0-beta17

6 years ago

1.0.0-beta16

6 years ago

1.0.0-beta15

6 years ago

1.0.0-beta14

6 years ago

1.0.0-beta13

6 years ago

1.0.0-beta12

6 years ago

1.0.0-beta11

6 years ago

1.0.0-beta10

6 years ago

1.0.0-beta9

6 years ago

1.0.0-beta8

6 years ago

1.0.0-beta7

6 years ago

1.0.0-beta6

6 years ago

1.0.0-beta5

7 years ago

1.0.0-beta4

7 years ago

1.0.0-beta3

7 years ago

1.0.0-beta2

7 years ago

1.0.0-beta1

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.2

7 years ago

0.1.2-alpha.1

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago