nodebb-plugin-embed
Version:
Embed media and rich content in posts: youtube, vimeo, twitch etc. All embeds are based on the rules. You are encouraged to build your own rules to embed everything what is embeddable.
61 lines (51 loc) • 1.7 kB
JavaScript
/**
* Created by Nicolas on 10/21/15.
*/
import Actions from '../actions';
import classNames from 'classnames';
import FormActions from './form-actions';
import React from 'react';
import Rule from '../models/rule';
import RuleForm from './rule-form';
export default class RuleDetails extends React.Component {
constructor(props) {
super(props);
}
actionDelete() {
Actions.deleteRule(this.props.rule);
}
actionSave() {
Actions.saveRule(this.props.rule);
}
fieldDidChange(field, value) {
Actions.updateRule(this.props.rule, field, value);
}
getName(rule) {
return 'Rule: ' + rule.displayName;
}
render() {
return (
<div className="panel panel-default">
<div className="panel-heading">{this.getName(this.props.rule)}</div>
<div className="panel-body">
<RuleForm
name={this.props.rule.name}
displayName={this.props.rule.displayName}
regex={this.props.rule.regex}
replacement={this.props.rule.replacement}
propDidChange={this.fieldDidChange.bind(this)}/>
<FormActions
okButton="Save"
okButtonClick={this.actionSave.bind(this)}
okValid={true}
dangerButton="Delete"
dangerButtonClick={this.actionDelete.bind(this)}
dangerValid={true}/>
</div>
</div>
);
}
}
RuleDetails.propTypes = {
rule: React.PropTypes.object
};