From 1b2d8d46a6b9b738e75e809d83b861e3bc38fa84 Mon Sep 17 00:00:00 2001 From: Charlie Humphreys Date: Sun, 16 Jul 2023 02:16:16 -0500 Subject: [PATCH] delete field component --- .../helpers/widget-elements/field/field.jsx | 143 ------------------ .../helpers/widget-elements/field/field.less | 37 ----- 2 files changed, 180 deletions(-) delete mode 100644 shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.jsx delete mode 100644 shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.less diff --git a/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.jsx b/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.jsx deleted file mode 100644 index 8148e989d..000000000 --- a/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.jsx +++ /dev/null @@ -1,143 +0,0 @@ -require('./field.less'); -const React = require('react'); -const ReactDOM = require('react-dom'); -const createClass = require('create-react-class'); -const _ = require('lodash'); -const { NUMBER_PATTERN, HINT_TYPE } = require('../constants'); - -const DEFAULT_WIDTH = '30px'; - -const STYLE_FN = (value)=>({ - width : `calc(${value?.length ?? 0}ch + ${value?.length ? `${DEFAULT_WIDTH} / 2` : DEFAULT_WIDTH})` -}); - -const Field = createClass({ - fieldRef : {}, - - getDefaultProps : function() { - return { - field : {}, - n : 0, - value : '', - setHints : ()=>{}, - onChange : ()=>{}, - getStyleHints : ()=>{} - }; - }, - - getInitialState : function() { - return { - value : '', - style : STYLE_FN(), - id : '' - }; - }, - - componentDidUpdate : function(_, { value }) { - if(this.state.value !== this.props.value) { - this.setState({ - value : this.props.value, - style : STYLE_FN(this.props.value), - id : `${this.props.field?.name}-${this.props.n}` - }); - return; - } - - if(this.state.value !== value) { - this.props.setHints(this, this.props.getStyleHints(this.props.field, this.state.value)); - } - }, - - componentDidMount : function() { - const id = `${this.props.field?.name}-${this.props.n}`; - this.setState({ - value : this.props.value, - style : STYLE_FN(this.props.value), - id - }); - this.fieldRef[id] = React.createRef(); - }, - - componentWillUnmount : function() { - this.fieldRef = undefined; - this.fieldRef = {}; - }, - - change : function(e) { - this.props.onChange(e); - this.setState({ - value : e.target.value, - style : STYLE_FN(e.target.value) - }); - }, - - setFocus : function(e) { - const { type } = e; - this.props.setHints(this, type === 'focus' ? this.props.getStyleHints(this.props.field, this.state.value) : []); - }, - - hintSelected : function(h, e) { - let value; - if(h.type === HINT_TYPE.VALUE) { - value = h.hint; - } else if(h.type === HINT_TYPE.NUMBER_SUFFIX) { - const match = this.state.value.match(NUMBER_PATTERN); - let suffix = match?.at(4) ?? ''; - for (const char of h.hint) { - if(suffix.at(0) === char) { - suffix = suffix.slice(1); - } - } - value = `${match?.at(1) ?? ''}${match?.at(2) ?? ''}${h.hint}${suffix}`; - } - this.change({ - target : { - value - } - }); - }, - keyDown : function(e) { - const { code } = e; - const { field, value } = this.props; - const match = value.match(NUMBER_PATTERN); - if(code === 'ArrowDown') { - if(match && match[3]) { - e.preventDefault(); - this.change({ - target : { - value : `${match.at(1) ?? ''}${Number(match[2]) - field.increment}${match[3]}${match.at(4) ?? ''}` - } - }); - } - } else if(code === 'ArrowUp') { - if(match && match[3]) { - e.preventDefault(); - this.change({ - target : { - value : `${match.at(1) ?? ''}${Number(match[2]) + field.increment}${match[3]}${match.at(4) ?? ''}` - } - }); - } - } - }, - render : function() { - const { value, id } = this.state; - const { field } = this.props; - - return -
- - -
-
; - } -}); - -module.exports = Field; \ No newline at end of file diff --git a/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.less b/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.less deleted file mode 100644 index d586209a7..000000000 --- a/shared/naturalcrit/codeEditor/helpers/widget-elements/field/field.less +++ /dev/null @@ -1,37 +0,0 @@ -.widget-field { - display: inline-block; - flex: 0 0 auto; - background-color: #22d4f6; - border-radius: 10px; - padding: 4px 2px; - - >label { - display: inline; - width: 50px; - margin: 0 0; - } - - >input { - background-color: #22d4f6; - border: none; - } - - >.hints { - position: relative; - left: 30px; - max-height: 100px; - overflow-y: scroll; - background-color: white; - - >.hint { - margin: 0 0; - padding: 2px; - cursor: default; - - &:hover, - &.active { - background-color: rgba(0, 0, 0, 0.1); - } - } - } -} \ No newline at end of file