mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-04-19 10:57:14 +00:00
use html5 details element instead of javascript (#2531)
* use html5 details element instead of javascript Reduces reliance on JS for content. I found when the JS didn't full load (flaky connection), I couldn't open these detail blocks. * fix: remove the unused click handler --------- Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
7bb5a0746f
commit
a95afe6d29
@ -3,45 +3,27 @@ import React from 'react';
|
||||
// Styles for this element is defined in src/css/custom.css
|
||||
|
||||
export default class ApiEndpoint extends React.Component {
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state = {
|
||||
open: false
|
||||
}
|
||||
this.toggleInfo = this.toggleInfo.bind(this);
|
||||
}
|
||||
|
||||
toggleInfo(e){
|
||||
this.setState({open: !this.state.open})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="api-endpoint">
|
||||
<div
|
||||
onClick={this.toggleInfo}
|
||||
className="api-endpoint-header"
|
||||
>
|
||||
<div className={`api-endpoint-method ${ this.props.method }`}>
|
||||
<details className="api-endpoint">
|
||||
<summary className="api-endpoint-header">
|
||||
<div className={`api-endpoint-method ${this.props.method}`}>
|
||||
{this.props.method}
|
||||
</div>
|
||||
<code>{this.props.path}</code>
|
||||
<div
|
||||
className="api-endpoint-protection"
|
||||
title={this.props.unprotected ?
|
||||
"Authentication is not required for this endpoint"
|
||||
: "Authentication is required for this endpoint"
|
||||
}
|
||||
>
|
||||
{this.props.unprotected ? ("🔓") : ("🔒")}
|
||||
</div>
|
||||
<code>{this.props.path}</code>
|
||||
<div
|
||||
className="api-endpoint-protection"
|
||||
title={
|
||||
this.props.unprotected
|
||||
? 'Authentication is not required for this endpoint'
|
||||
: 'Authentication is required for this endpoint'
|
||||
}>
|
||||
{this.props.unprotected ? '🔓' : '🔒'}
|
||||
</div>
|
||||
{this.state.open ? (
|
||||
<div className="api-endpoint-content">
|
||||
{this.props.children}
|
||||
</div>
|
||||
): null}
|
||||
</div>
|
||||
</summary>
|
||||
|
||||
<div className="api-endpoint-content">{this.props.children}</div>
|
||||
</details>
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user