'use client' import { Popover, Transition } from '@headlessui/react' import { ChevronDownIcon, FolderArrowDownIcon, FolderOpenIcon, FolderPlusIcon } from '@heroicons/react/20/solid' import { Fragment, useEffect, useState } from 'react' import { useNavigation } from '../../context/Navigation/provider' import { mainPages } from '../../context/Navigation/types' // import { useProject } from '../../context/Project/provider' import { GetAllLocalProjects } from '../../wailsjs/wailsjs/go/ipc/Channel' import { entities } from '../../wailsjs/wailsjs/go/models' import NewProjectModal from './NewProjectModal' import ProjectListModal from './ProjectListModal' import { useDispatch, useSelector } from 'react-redux' import { RootState } from '../../redux/store' import { createNewProject, requestSelectProjectByName } from '../../redux/features/session/sessionSlice' const MainProject = () => { const dispatch = useDispatch() const { currentSession } = useSelector((state: RootState) => state.session) const [isNewProjectModalOpen, setIsNewProjectModalOpen] = useState(false) const [isProjectListModal, setIsProjectListModal] = useState(false) const [canPopoverBeOpen, setCanPopoverBeOpen] = useState(true) const [availableProjects, setAvailableProjects] = useState([]) // const { createNewProject, requestSelectProjectByName } = useProject() const { setSelectedMainPage } = useNavigation() const buttonOptions = [ { name: 'New', description: 'Create a new Project', icon: , onClick: () => { setIsNewProjectModalOpen(true) setCanPopoverBeOpen(false) }, }, { name: 'Open', description: 'Open a local Project', icon: , onClick: () => { setCanPopoverBeOpen(false) GetAllLocalProjects().then(response => { console.log(response) setAvailableProjects(response) setIsProjectListModal(true) }) }, }, { name: 'Connect', description: 'Connected to a hosted Project', icon: , onClick: () => { setCanPopoverBeOpen(false) }, }, ] const onCreateNewProjectHandler = async (projectName: string) => { setIsNewProjectModalOpen(false) setCanPopoverBeOpen(true) dispatch(createNewProject(projectName)) // setSelectedMainPage(mainPages.WORKSPACE) } const onSelectProjectHandler = async (name: string) => { // const successfulResponse = await requestSelectProjectByName(name) dispatch(requestSelectProjectByName(name)) setIsProjectListModal(false) setCanPopoverBeOpen(true) // if (successfulResponse) setSelectedMainPage(mainPages.WORKSPACE) // setSelectedMainPage(mainPages.WORKSPACE) } useEffect(() => { console.log('useEffect: ', currentSession?.project?.id) if (currentSession?.project?.id) setSelectedMainPage(mainPages.WORKSPACE) }, [currentSession?.project?.id]) return
{isNewProjectModalOpen ? : ''} {isProjectListModal ? : '' }
T

extualize

Digitize, Translate, and Manage
Your Physical Documents

Incididunt sint fugiat pariatur cupidatat consectetur sit cillum anim id veniam aliqua proident excepteur commodo do ea.

{({ open }) => <> Select Project {canPopoverBeOpen ? ( ) : } } Learn More
} export default MainProject