Sha256: 3d4cb87eea6ca1a06aab1e072c6b113e1944010edc66bd546ac183d4ad8d157b

Contents?: true

Size: 874 Bytes

Versions: 5

Compression:

Stored size: 874 Bytes

Contents

import React, { ChangeEvent, useState } from "react";

interface AddTagFormProps {
  addTag: (string) => void;
}

export default function AddTagForm(props: AddTagFormProps) {
  const [tag, setTag] = useState("");

  const submit = (evt: Event) => {
    evt.preventDefault();
    props.addTag(tag);
    setTag("");
  };

  const handleKeyDown = (evt: Event) => {
    if (evt.which === 13) {
      submit(evt);
    }
  };

  const handleChange = (evt: ChangeEvent<HTMLInputElement>) => {
    setTag(evt.target.value);
  };

  return (
    <div className="add-tag-form">
      <input
        name="add-tag"
        type="text"
        className="add-tag"
        value={tag}
        onKeyDown={handleKeyDown}
        onChange={handleChange}
        placeholder="Add tag..."
      />
      <button onClick={submit} disabled={!tag}>
        Add
      </button>
    </div>
  );
}

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pages_core-3.14.0 app/javascript/components/TagEditor/AddTagForm.tsx
pages_core-3.13.0 app/javascript/components/TagEditor/AddTagForm.tsx
pages_core-3.12.7 app/javascript/components/TagEditor/AddTagForm.tsx
pages_core-3.12.6 app/javascript/components/TagEditor/AddTagForm.tsx
pages_core-3.12.5 app/javascript/components/TagEditor/AddTagForm.tsx