forked from CringeStudios/gamja
Add shouldComponentUpdate to member list
This commit is contained in:
parent
b40fc76e82
commit
f284468aa6
@ -1,25 +1,43 @@
|
||||
import { html, Component } from "/lib/index.js";
|
||||
|
||||
function MemberItem(props) {
|
||||
function handleClick(event) {
|
||||
event.preventDefault();
|
||||
props.onClick();
|
||||
class MemberItem extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.handleClick = this.handleClick.bind(this);
|
||||
}
|
||||
|
||||
var url = "irc:///" + encodeURIComponent(props.nick) + ",isnick";
|
||||
return html`
|
||||
<li>
|
||||
<a href=${url} class="nick" onClick=${handleClick}>${props.nick}</a>
|
||||
</li>
|
||||
`;
|
||||
shouldComponentUpdate(nextProps) {
|
||||
return this.props.nick !== nextProps.nick;
|
||||
}
|
||||
|
||||
handleClick(event) {
|
||||
event.preventDefault();
|
||||
this.props.onClick();
|
||||
}
|
||||
|
||||
render() {
|
||||
var url = "irc:///" + encodeURIComponent(this.props.nick) + ",isnick";
|
||||
return html`
|
||||
<li>
|
||||
<a href=${url} class="nick" onClick=${this.handleClick}>${this.props.nick}</a>
|
||||
</li>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
export default function MemberList(props) {
|
||||
return html`
|
||||
<ul>
|
||||
${Array.from(props.members.entries()).sort().map(([nick, membership]) => html`
|
||||
<${MemberItem} key=${nick} nick=${nick} membership=${membership} onClick=${() => props.onNickClick(nick)}/>
|
||||
`)}
|
||||
</ul>
|
||||
`;
|
||||
export default class MemberList extends Component {
|
||||
shouldComponentUpdate(nextProps) {
|
||||
return this.props.members !== nextProps.members;
|
||||
}
|
||||
|
||||
render() {
|
||||
return html`
|
||||
<ul>
|
||||
${Array.from(this.props.members.entries()).sort().map(([nick, membership]) => html`
|
||||
<${MemberItem} key=${nick} nick=${nick} membership=${membership} onClick=${() => this.props.onNickClick(nick)}/>
|
||||
`)}
|
||||
</ul>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user