CodebaseForm

tcmts.hub.pages.CodebaseForm · #7in6df2m · term · runs in the browser

uses location

The codebase whose libraries are "Libraries I use", as the visitor gave it: a tcm serve URL.

import { codebaseHere } from "#codebase/tcmts/hub/session";
import { useState } from "react";

export function CodebaseForm({ url }: { url: string }) {
  const [value, setValue] = useState(url);
  const [error, setError] = useState<string | undefined>();
  return (
    <form
      className="codebaseform"
      onSubmit={(e) => {
        e.preventDefault();
        setError(undefined);
        codebaseHere(value).then(
          () => location.reload(),
          (err: Error) => setError(err.message),
        );
      }}
    >
      <label>
        Your codebase{" "}
        <input
          name="codebase"
          type="url"
          placeholder="https://tcm.example.dev"
          value={value}
          onChange={(e) => setValue(e.target.value)}
        />
      </label>{" "}
      <button type="submit">Use it</button>
      {error && (
        <span className="error" role="alert">
          {" "}
          {error}
        </span>
      )}
    </form>
  );
}

uses

used by