Skip to content

Commit

Permalink
docs(ffe-form-react): Document how to control focus with refs
Browse files Browse the repository at this point in the history
  • Loading branch information
Kristofer Selbekk committed Oct 2, 2018
1 parent cdc58c6 commit 998af6c
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 7 deletions.
44 changes: 40 additions & 4 deletions packages/ffe-form-react/src/Input.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Vi har tre varianter av inputfelt:
2. inline
3. text-like

_Standard_ og _inline_ er mest relevant for utviklere. De ser helt like ut, men opprører seg annerledes i samspillet
_Standard_ og _inline_ er mest relevant for utviklere. De ser helt like ut, men oppfører seg annerledes i samspillet
med andre elementer på siden, for eksempel [tooltip](#tooltip).

```js
Expand All @@ -15,7 +15,7 @@ const { Input } = require('.');
<React.Fragment>
<Label htmlFor="input-first-name">Fornavn</Label>
<Input id="input-first-name" />
</React.Fragment>
</React.Fragment>;
```

_Text-like_-varianten er designet for å kunne brukes som en del av en setning med et minimum av ramme rundt. Det er opp til en utvikler å sette bredden på dette elementet, siden det vil variere fra gang til gang hva man ønsker.
Expand All @@ -24,10 +24,46 @@ _Text-like_-varianten er designet for å kunne brukes som en del av en setning m
const { Input } = require('.');

<p className="ffe-body-paragraph">
Jeg er <Input
Jeg er{' '}
<Input
aria-label="Skriv inn alder"
style={{ width: '47px' }}
textLike={true}
/> år gammel
/>{' '}
år gammel
</p>;
```

## Styr fokus med `ref`

Du kan få en referanse til input-feltet ved å sende inn en `ref`-prop. Brukes typisk til å fokusere et felt programmatisk.

```js
const { Input } = require('.');
const { ButtonGroup, PrimaryButton } = require('../../ffe-buttons-react');

class Example extends React.Component {
constructor() {
super();
this.inputRef = React.createRef();
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.inputRef.current.focus();
}
render() {
return (
<React.Fragment>
<Input ref={this.inputRef} placeholder="Trykk på knappen" />
<ButtonGroup>
<PrimaryButton onClick={this.handleClick}>
Klikk for å fokusere input
</PrimaryButton>
</ButtonGroup>
</React.Fragment>
);
}
}

<Example />;
```
41 changes: 38 additions & 3 deletions packages/ffe-form-react/src/TextArea.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,47 @@
```js
<React.Fragment>
<Label htmlFor="textarea-example">
Beskriv skaden
</Label>
<Label htmlFor="textarea-example">Beskriv skaden</Label>
<TextArea
defaultValue="Dette er et tekstfelt for lengre tekster."
id="textarea-example"
rows="8"
/>
</React.Fragment>
```

## Styr fokus med `ref`

Du kan få en referanse til textarea-feltet ved å sende inn en `ref`-prop. Brukes typisk til å fokusere et felt programmatisk.

```js
const { TextArea } = require('.');
const { ButtonGroup, PrimaryButton } = require('../../ffe-buttons-react');

class Example extends React.Component {
constructor() {
super();
this.inputRef = React.createRef();
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.inputRef.current.focus();
}
render() {
return (
<React.Fragment>
<TextArea
ref={this.inputRef}
placeholder="Trykk på knappen for fokus"
/>
<ButtonGroup>
<PrimaryButton onClick={this.handleClick}>
Klikk for å fokusere input
</PrimaryButton>
</ButtonGroup>
</React.Fragment>
);
}
}

<Example />;
```

0 comments on commit 998af6c

Please sign in to comment.