import classnames from 'classnames' import { __ } from '@wordpress/i18n' import React from 'react' import { isLicensed } from '../../utils/screen' import { useHorizontalScrollOverflow } from '../../hooks/useHorizontalScrollOverflow' import { fetchQueryParam, updateQueryParams } from '../../utils/urls' export interface SubnavTab { name: T label: string pro?: boolean } export const getTabFromQuery = >( tabs: Tab[], queryParamName: string ): Tab => { const tabParam = fetchQueryParam(queryParamName) for (const tab of tabs) { if (tab.name === tabParam) { return tab } } return tabs[0] } interface SubnavTabItemProps> { tab: Tab currentTab: Tab getTabCount?: (tab: Tab) => number | undefined setCurrentTab: (tab: Tab) => void queryParamName?: string } const SubnavTabItem = >({ tab, currentTab, getTabCount, setCurrentTab, queryParamName }: SubnavTabItemProps) => { const count = getTabCount?.(tab) return (
  • ) } export interface SubnavTabsProps> { tabs: readonly Tab[] ariaLabel: string className?: string currentTab: Tab getTabCount?: (tab: Tab) => number | undefined setCurrentTab: (tab: Tab) => void queryParamName?: string } export const SubnavTabs = >({ tabs, ariaLabel, className, currentTab, getTabCount, setCurrentTab, queryParamName }: SubnavTabsProps) => { const { atStart, atEnd, scrollRef } = useHorizontalScrollOverflow() return (
    ) }