import classnames from 'classnames'; import React from 'react'; import { Dropdown, MenuItem } from 'react-bootstrap'; import { ACTION_BUTTON_CLASS_NAME } from '../utils/defaults'; import { useLogEvent } from '../utils/logging'; import type { ICompareLinks } from '../versionMetadata/MetadataComponents'; export interface VersionAction { onClick?: () => void; href?: string; content: string; disabled?: boolean; } interface IArtifactActionsProps { actions?: VersionAction[]; version: string; buildNumber?: string; compareLinks?: ICompareLinks; className?: string; } export const ArtifactActions = ({ version, buildNumber, actions, compareLinks, className }: IArtifactActionsProps) => { const compareActions: VersionAction[] = [ { content: 'Current version', href: compareLinks?.current, disabled: !compareLinks?.current }, { content: 'Previous version', href: compareLinks?.previous, disabled: !compareLinks?.previous }, ]; return (
{actions?.map((action) => ( ))}
); }; export interface ICompareToMenuProps { id: string; actions: VersionAction[]; title: string; className?: string; pullRight?: boolean; } const CompareToMenu = ({ id, title, actions, className, pullRight }: ICompareToMenuProps) => { const logEvent = useLogEvent('ArtifactActions'); return ( {title} {actions.map((action, index) => ( { action.onClick?.(); logEvent({ action: `Compare to - ${action.content}` }); }} href={action.href} target="_blank" > {action.content} ))} ); };