/**
 * Project Code dropdown (issue #124) — a native <select name="projectCode">
 * sourced from the admin-managed project codes, plus an empty "— none —" option
 * (the field stays optional). Plain HTML so it works with the forms' native
 * FormData submission (no client state needed), matching DeliveryLocationField.
 *
 * `options` are the active project-code strings (also the stored value).
 * `current` is the PO's existing project code; if it isn't one of the active
 * options (legacy / imported / a since-removed code) it is preserved as a
 * leading "(current)" option so an edit never silently drops it.
 */
export function ProjectCodeField({
  options,
  current,
  className,
}: {
  options: string[];
  current?: string | null;
  className?: string;
}) {
  const cur = (current ?? "").trim();
  const currentMissing = cur.length > 0 && !options.includes(cur);

  return (
    <select name="projectCode" defaultValue={cur} className={className}>
      <option value="">— none —</option>
      {currentMissing && <option value={cur}>{cur} (current)</option>}
      {options.map((code) => (
        <option key={code} value={code}>
          {code}
        </option>
      ))}
    </select>
  );
}
