odoo.define('point_of_sale.TextAreaPopup', function(require) { 'use strict'; const { useState, useRef } = owl.hooks; const AbstractAwaitablePopup = require('point_of_sale.AbstractAwaitablePopup'); const Registries = require('point_of_sale.Registries'); // formerly TextAreaPopupWidget // IMPROVEMENT: This code is very similar to TextInputPopup. // Combining them would reduce the code. class TextAreaPopup extends AbstractAwaitablePopup { /** * @param {Object} props * @param {string} props.startingValue */ constructor() { super(...arguments); this.state = useState({ inputValue: this.props.startingValue }); this.inputRef = useRef('input'); } mounted() { this.inputRef.el.focus(); } getPayload() { return this.state.inputValue; } } TextAreaPopup.template = 'TextAreaPopup'; TextAreaPopup.defaultProps = { confirmText: 'Ok', cancelText: 'Cancel', title: '', body: '', }; Registries.Component.add(TextAreaPopup); return TextAreaPopup; });