Sha256: 4621f65795698c487ba7736651cd09cc701ea1bb77af894b19fe87bd4913fc2b

Contents?: true

Size: 731 Bytes

Versions: 1

Compression:

Stored size: 731 Bytes

Contents

import * as PageEditor from "../../types/PageEditor";

type Props = {
  tab: string;
  tabs: PageEditor.Tab[];
  setTab: (tab: string) => void;
};

export default function Tabs(props: Props) {
  const { tab, tabs, setTab } = props;

  const handleTabChange = (tab: PageEditor.Tab) => (evt: React.MouseEvent) => {
    evt.preventDefault();
    setTab(tab.id);
  };

  return (
    <ul className="content-tabs" role="tablist">
      {tabs.map((t) => (
        <li key={t.id} className={t.id == tab ? "current" : ""}>
          {!t.enabled && t.name}
          {t.enabled && (
            <a href={`#${t.id}`} onClick={handleTabChange(t)}>
              {t.name}
            </a>
          )}
        </li>
      ))}
    </ul>
  );
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pages_core-3.15.5 app/javascript/components/PageForm/Tabs.tsx