import { Button, Form, Modal, Nav, Navbar, OverlayTrigger, Popover } from "react-bootstrap"; import React, { useState } from "react"; import { Link } from "react-router-dom"; import * as GQL from "src/core/generated-graphql"; import { NavUtils } from "src/utils"; interface IProps { performer?: Partial; studio?: Partial; isNew: boolean; isEditing: boolean; onToggleEdit: () => void; onSave: () => void; onDelete: () => void; onAutoTag?: () => void; onImageChange: (event: React.FormEvent) => void; // TODO: only for performers. make generic scrapers?: GQL.ListPerformerScrapersListPerformerScrapers[]; onDisplayScraperDialog?: ( scraper: GQL.ListPerformerScrapersListPerformerScrapers ) => void; } export const DetailsEditNavbar: React.FC = (props: IProps) => { const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false); function renderEditButton() { if (props.isNew) { return; } return ( ); } function renderSaveButton() { if (!props.isEditing) { return; } return ( ); } function renderDeleteButton() { if (props.isNew || props.isEditing) { return; } return ( ); } function renderImageInput() { if (!props.isEditing) { return; } return ( Choose image... ); } function renderScraperMenu() { if (!props.performer || !props.isEditing) { return; } const popover = (
{props.scrapers ? props.scrapers.map(s => ( )) : ""}
); return ( ); } function renderAutoTagButton() { if (props.isNew || props.isEditing) { return; } if (props.onAutoTag) { return ( ); } } function renderScenesButton() { if (props.isEditing) { return; } let linkSrc: string = "#"; if (props.performer) { linkSrc = NavUtils.makePerformerScenesUrl(props.performer); } else if (props.studio) { linkSrc = NavUtils.makeStudioScenesUrl(props.studio); } return Scenes; } function renderDeleteAlert() { const name = props?.studio?.name ?? props?.performer?.name; return ( Are you sure you want to delete {name}? ); } return ( <> {renderDeleteAlert()} ); };