import { useAuth } from '@redwoodjs/auth' import { Popover } from '@headlessui/react' import { Link, navigate, routes } from '@redwoodjs/router' import { useIdeContext } from 'src/helpers/hooks/useIdeContext' import { Tab, Tabs, TabList, TabPanel } from 'react-tabs' import FullScriptEncoding from 'src/components/EncodedUrl/FullScriptEncoding' import ExternalScript from 'src/components/EncodedUrl/ExternalScript' import Svg from 'src/components/Svg/Svg' import NavPlusButton from 'src/components/NavPlusButton' import ProfileSlashLogin from 'src/components/ProfileSlashLogin' import Gravatar from 'src/components/Gravatar/Gravatar' import EditableProjectTitle from 'src/components/EditableProjecTitle/EditableProjecTitle' import CaptureButton from 'src/components/CaptureButton/CaptureButton' const TopButton = ({ onClick, children, className, name, Tag = 'button', }: { onClick?: () => void children: React.ReactNode className?: string name: string Tag?: string }) => { const FinalTag = Tag as unknown as keyof JSX.IntrinsicElements return ( {children} {name} ) } interface IdeHeaderProps { handleRender: () => void projectTitle?: string projectOwner?: string projectOwnerId?: string projectOwnerImage?: string projectId?: string } const IdeHeader = ({ handleRender, projectOwner, projectTitle, projectOwnerImage, projectId, projectOwnerId, }: IdeHeaderProps) => { const { currentUser } = useAuth() const { project } = useIdeContext() const canEdit = (currentUser && currentUser?.sub === (project?.user?.id || projectOwnerId)) || currentUser?.roles.includes('admin') const _projectId = projectId || project?.id const _projectOwner = project?.user?.userName || projectOwner return (
{_projectId ? (
{_projectOwner}
) : (
)}
{canEdit && !projectTitle && ( ( )} /> )} {!projectTitle && ( )} {projectTitle && ( navigate(routes.ide({ userName: _projectOwner, projectTitle })) } name="Editor" > )} {({ open }) => { return ( <> {open && ( encoded script external script )} ) }} {/* Fork */}
) } export default IdeHeader