import { Popover, Transition } from '@headlessui/react'
import { ActionButton } from './ActionButton'
import { faHome } from '@fortawesome/free-solid-svg-icons'
import { type IndexLoaderData } from 'lib/types'
import { paths } from 'lib/paths'
import { isTauri } from '../lib/isTauri'
import { Link } from 'react-router-dom'
import { Fragment } from 'react'
import { FileTree } from './FileTree'
import { sep } from '@tauri-apps/api/path'
import { Logo } from './Logo'
import { APP_NAME } from 'lib/constants'
import { useCommandsContext } from 'hooks/useCommandsContext'
import { CustomIcon } from './CustomIcon'
import { useLspContext } from './LspProvider'
const ProjectSidebarMenu = ({
project,
file,
renderAsLink = false,
}: {
renderAsLink?: boolean
project?: IndexLoaderData['project']
file?: IndexLoaderData['file']
}) => {
const { onProjectClose } = useLspContext()
return (
{
onProjectClose(file || null, project?.path || null, false)
}}
to={paths.HOME}
className="group"
>
{renderAsLink ? (
<>
{
onProjectClose(file || null, project?.path || null, false)
}}
to={paths.HOME}
className="!no-underline"
data-testid="project-sidebar-link"
>
{project?.name ? project.name : APP_NAME}
>
) : (
)}
)
}
function ProjectMenuPopover({
project,
file,
}: {
project?: IndexLoaderData['project']
file?: IndexLoaderData['file']
}) {
const { commandBarSend } = useCommandsContext()
const { onProjectClose } = useLspContext()
return (
{isTauri() && file?.name
? file.name.slice(file.name.lastIndexOf(sep) + 1)
: APP_NAME}
{isTauri() && project?.name && (
{project.name}
)}
{({ close }) => (
<>
{project?.name ? project.name : APP_NAME}
{project?.entrypointMetadata && (
Created{' '}
{project.entrypointMetadata.createdAt.toLocaleDateString()}
)}
{isTauri() ? (
) : (
)}
commandBarSend({
type: 'Find and select command',
data: { name: 'Export', ownerMachine: 'modeling' },
})
}
>
Export Part
{isTauri() && (
{
onProjectClose(file || null, project?.path || null, true)
}}
icon={{
icon: faHome,
className: 'p-1',
size: 'sm',
}}
className="border-transparent dark:border-transparent hover:bg-energy-10/20 dark:hover:bg-chalkboard-90"
>
Go to Home
)}
>
)}
)
}
export default ProjectSidebarMenu