mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 04:01:48 +08:00
Add auto scrolling to the selected story
This commit is contained in:
parent
ae86c53e6b
commit
f4bc7dc680
@ -8,6 +8,15 @@ import { EVENT_ID } from './';
|
|||||||
|
|
||||||
registerLanguage('jsx', jsx);
|
registerLanguage('jsx', jsx);
|
||||||
|
|
||||||
|
const styles = {
|
||||||
|
selections: {
|
||||||
|
backgroundColor: 'rgba(255, 242, 60, 0.2)',
|
||||||
|
},
|
||||||
|
panel: {
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
export default class StoryPanel extends Component {
|
export default class StoryPanel extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@ -23,9 +32,20 @@ export default class StoryPanel extends Component {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.setSelectedStoryRef = this.setSelectedStoryRef.bind(this);
|
||||||
this.lineRenderer = this.lineRenderer.bind(this);
|
this.lineRenderer = this.lineRenderer.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidUpdate() {
|
||||||
|
if (this.selectedStoryRef) {
|
||||||
|
this.selectedStoryRef.scrollIntoView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setSelectedStoryRef(ref) {
|
||||||
|
this.selectedStoryRef = ref;
|
||||||
|
}
|
||||||
|
|
||||||
createPart(rows, stylesheet, useInlineStyles) {
|
createPart(rows, stylesheet, useInlineStyles) {
|
||||||
return rows.map((node, i) =>
|
return rows.map((node, i) =>
|
||||||
createElement({
|
createElement({
|
||||||
@ -51,7 +71,9 @@ export default class StoryPanel extends Component {
|
|||||||
return (
|
return (
|
||||||
<span>
|
<span>
|
||||||
{start}
|
{start}
|
||||||
<div style={{ backgroundColor: 'rgba(255, 242, 60, 0.2)' }}>{selected}</div>
|
<div ref={this.setSelectedStoryRef} style={styles.selections}>
|
||||||
|
{selected}
|
||||||
|
</div>
|
||||||
{end}
|
{end}
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
@ -67,7 +89,7 @@ export default class StoryPanel extends Component {
|
|||||||
showLineNumbers="true"
|
showLineNumbers="true"
|
||||||
style={darcula}
|
style={darcula}
|
||||||
renderer={this.lineRenderer}
|
renderer={this.lineRenderer}
|
||||||
customStyle={{ width: '100%' }}
|
customStyle={styles.panel}
|
||||||
>
|
>
|
||||||
{this.state.source}
|
{this.state.source}
|
||||||
</SyntaxHighlighter>
|
</SyntaxHighlighter>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user