From 5af45f16b0c5a08cb481151b643504a5806ad449 Mon Sep 17 00:00:00 2001 From: Gazook89 Date: Mon, 23 Sep 2024 14:54:24 -0500 Subject: [PATCH] remove tagInput-class This file was just the old StringArrayEditor that I kept around for easy reference. Can be deleted now. --- .../editor/tagInput/tagInput-class.jsx | 149 ------------------ 1 file changed, 149 deletions(-) delete mode 100644 client/homebrew/editor/tagInput/tagInput-class.jsx diff --git a/client/homebrew/editor/tagInput/tagInput-class.jsx b/client/homebrew/editor/tagInput/tagInput-class.jsx deleted file mode 100644 index 85b8c6a3f..000000000 --- a/client/homebrew/editor/tagInput/tagInput-class.jsx +++ /dev/null @@ -1,149 +0,0 @@ -const React = require('react'); -const createClass = require('create-react-class'); -const _ = require('lodash'); - -const TagInput = createClass({ - displayName : 'TagInput', - getDefaultProps : function() { - return { - label : '', - values : [], - valuePatterns : null, - validators : [], - placeholder : '', - notes : [], - unique : false, - cannotEdit : [], - onChange : ()=>{} - }; - }, - - getInitialState : function() { - return { - valueContext : !!this.props.values ? this.props.values.map((value)=>({ - value, - editing : false - })) : [], - temporaryValue : '', - updateValue : '' - }; - }, - - componentDidUpdate : function(prevProps) { - if(!_.eq(this.props.values, prevProps.values)) { - this.setState({ - valueContext : this.props.values ? this.props.values.map((newValue)=>({ - value : newValue, - editing : this.state.valueContext.find(({ value })=>value === newValue)?.editing || false - })) : [] - }); - } - }, - - handleChange : function(value) { - this.props.onChange({ - target : { - value - } - }); - }, - - addValue : function(value){ - this.handleChange(_.uniq([...this.props.values, value])); - this.setState({ - temporaryValue : '' - }); - }, - - removeValue : function(index){ - this.handleChange(this.props.values.filter((_, i)=>i !== index)); - }, - - updateValue : function(value, index){ - const valueContext = this.state.valueContext; - valueContext[index].value = value; - valueContext[index].editing = false; - this.handleChange(valueContext.map((context)=>context.value)); - this.setState({ valueContext, updateValue: '' }); - }, - - editValue : function(index){ - if(!!this.props.cannotEdit && this.props.cannotEdit.includes(this.props.values[index])) { - return; - } - const valueContext = this.state.valueContext.map((context, i)=>{ - context.editing = index === i; - return context; - }); - this.setState({ valueContext, updateValue: this.props.values[index] }); - }, - - valueIsValid : function(value, index) { - const values = _.clone(this.props.values); - if(index !== undefined) { - values.splice(index, 1); - } - const matchesPatterns = !this.props.valuePatterns || this.props.valuePatterns.some((pattern)=>!!(value || '').match(pattern)); - const uniqueIfSet = !this.props.unique || !values.includes(value); - const passesValidators = !this.props.validators || this.props.validators.every((validator)=>validator(value)); - return matchesPatterns && uniqueIfSet && passesValidators; - }, - - handleValueInputKeyDown : function(event, index) { - if(event.key === 'Enter') { - if(this.valueIsValid(event.target.value, index)) { - if(index !== undefined) { - this.updateValue(event.target.value, index); - } else { - this.addValue(event.target.value); - } - } - } else if(event.key === 'Escape') { - this.closeEditInput(index); - } - }, - - closeEditInput : function(index) { - const valueContext = this.state.valueContext; - valueContext[index].editing = false; - this.setState({ valueContext, updateValue: '' }); - }, - - render : function() { - const valueElements = Object.values(this.state.valueContext).map((context, i)=>context.editing - ? -
- this.handleValueInputKeyDown(e, i)} - onChange={(e)=>this.setState({ updateValue: e.target.value })}/> - {
{ e.stopPropagation(); this.closeEditInput(i); }}>
} - {this.valueIsValid(this.state.updateValue, i) ?
{ e.stopPropagation(); this.updateValue(this.state.updateValue, i); }}>
: null} -
-
- :
this.editValue(i)}>{context.value} - {!!this.props.cannotEdit && this.props.cannotEdit.includes(context.value) ? null :
{ e.stopPropagation(); this.removeValue(i); }}>
} -
- ); - - return
- -
-
- {valueElements} -
- this.handleValueInputKeyDown(e)} - onChange={(e)=>this.setState({ temporaryValue: e.target.value })}/> - {this.valueIsValid(this.state.temporaryValue) ?
{ e.stopPropagation(); this.addValue(this.state.temporaryValue); }}>
: null} -
-
- - {this.props.notes ? this.props.notes.map((n, index)=>

{n}

) : null} -
-
; - } -}); - -module.exports = TagInput; \ No newline at end of file