import { __ } from '@wordpress/i18n'
import classnames from 'classnames'
import React, { useState } from 'react'
import { isLicensed, shouldShowUpsell } from '../../utils/screen'
import { buildUrl, fetchQueryParam } from '../../utils/urls'
import { CommunityIcon, LibraryIcon, SettingsIcon, SnippetsIcon } from './icons/ToolbarIcons'
import { UpsellDialog } from './UpsellDialog'
import type { ReactNode } from 'react'
interface NavLink {
name: string
url?: string
label: string
external?: boolean
icon?: ReactNode
pro?: boolean
pageSlug?: string
subpage?: string
}
const UPPER_NAV_LINKS: NavLink[] = [
{
name: 'docs',
url: 'https://codesnippets.pro/docs',
label: __('Docs', 'code-snippets'),
external: true
},
{
name: 'cloud',
url: 'https://codesnippets.cloud/',
label: __('Cloud Dashboard', 'code-snippets'),
external: true
},
{
name: 'welcome',
url: window.CODE_SNIPPETS?.urls.welcome,
label: __("What's New", 'code-snippets'),
pageSlug: 'code-snippets-welcome'
}
]
const LOWER_NAV_LINKS: NavLink[] = [
{
name: 'snippets',
url: window.CODE_SNIPPETS?.urls.manage,
label: __('Snippets', 'code-snippets'),
icon: ,
pageSlug: 'snippets'
},
{
name: 'cloud-community',
label: __('Community Cloud', 'code-snippets'),
icon: ,
subpage: 'cloud-community'
},
{
name: 'cloud-library',
label: __('My Library', 'code-snippets'),
icon: ,
pro: true,
subpage: 'cloud-library'
},
{
name: 'settings',
url: window.CODE_SNIPPETS?.urls.settings,
label: __('Settings', 'code-snippets'),
icon: ,
pageSlug: 'snippets-settings'
}
]
interface NavProps {
setIsUpsellDialogOpen: (isOpen: boolean) => void
}
const UpperNav: React.FC = ({ setIsUpsellDialogOpen }) =>
{__('Code Snippets', 'code-snippets')}
const currentPage = fetchQueryParam('page')
const currentSubpage = fetchQueryParam('subpage')
const isActiveLink = ({ pageSlug, subpage }: NavLink): boolean => {
if (subpage) {
return currentSubpage === subpage
}
if (pageSlug) {
return !currentSubpage && currentPage === pageSlug
}
return false
}
const LowerNav: React.FC = ({ setIsUpsellDialogOpen }) =>
export const Toolbar = () => {
const [isUpsellDialogOpen, setIsUpsellDialogOpen] = useState(false)
return (
)
}