/* Copyright (C) 2024 Manuel Bustillo*/

import React, { useState } from 'react';

export default function InlineTextField({ initialValue, onChange }: { initialValue: string, onChange: (value: string) => void }) {
    const [editing, setEditing] = useState(false);
    const [value, setValue] = useState(initialValue);

    const renderText = () => <span onClick={() => setEditing(true)}>{value}</span>

    const onConfirm = () => {
        onChange(value);
        setEditing(false);
    }

    function renderForm() {
        return (
            <div className="flex flex-row">
                <input
                    type="text"
                    value={value}
                    className="px-2 py-0 h-5 max-w-48"
                    onChange={(e) => setValue(e.target.value)}
                    onBlur={onConfirm}
                    autoFocus
                />
            </div>
        )
    }

    return (
        editing ? (renderForm()) : (renderText())
    );
}